Ubuntu環(huán)境下安裝部署Nginx并設(shè)置自啟動(dòng)過(guò)程
通過(guò)wget下載安裝包的方式部署nginx
1. 下載nginx相關(guān)依賴包
sudo apt-get install gcc
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g zlib1g-dev
sudo sudo apt-get install openssl
sudo apt-get install libssl-dev2. 進(jìn)入想下載安裝包位置
cd /usr/local
3.通過(guò)wget下載nginx安裝包
sudo wget https://nginx.org/download/nginx-1.24.0.tar.gz
##需要什么版本的就改成自己想要的版本就行
4. 解壓nginx的安裝包
sudo tar -zvxf nginx-1.24.0.tar.gz
#對(duì)應(yīng)所下載的版本
5.進(jìn)入解壓好的nginx文件夾里面
cd nginx-1.24.0
6. 配置自己所需要的模塊
sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
解釋:
./configure
- 這條命令用于配置 Nginx 的編譯選項(xiàng)。
- 在運(yùn)行 make 和 make install 之前,需要先運(yùn)行 ./configure 來(lái)定義 Nginx 的安裝路徑和需要包含的模塊。
--prefix=/usr/local/nginx
- 這個(gè)選項(xiàng)指定 Nginx 的安裝目錄為 /usr/local/nginx。
- 編譯完成后,Nginx 的二進(jìn)制文件、配置文件、日志文件等都會(huì)被安裝在這個(gè)目錄中。
--with-http_stub_status_module
- 這個(gè)選項(xiàng)啟用 http_stub_status_module 模塊。
- 該模塊提供一個(gè)簡(jiǎn)易接口,展示當(dāng)前 Nginx 的一些統(tǒng)計(jì)信息,如活動(dòng)連接數(shù)、已處理的請(qǐng)求數(shù)等。
- 這個(gè)功能常用于監(jiān)控和調(diào)試。
--with-http_ssl_module
- 這個(gè)選項(xiàng)啟用 http_ssl_module 模塊。
- 該模塊允許 Nginx 支持 SSL/TLS,用于安全的 HTTPS 連接。
- 這個(gè)模塊是必須的,如果你打算使用 HTTPS 來(lái)保護(hù)你的網(wǎng)站或應(yīng)用。
7. 編譯
sudo make
8. 安裝
sudo make install
啟動(dòng)命令:
打開文件夾
cd /usr/local/nginx/sbin #打開文件夾 sudo ./nginx #啟動(dòng)nginx sudo ./nginx -s stop # 強(qiáng)制停止 Nginx sudo ./nginx -s quit # 優(yōu)雅停止 Nginx,會(huì)等待所有請(qǐng)求處理完成后再關(guān)閉 sudo ./nginx -s reload # 重新加載 Nginx 配置,而不會(huì)中斷現(xiàn)有的連接 sudo ./nginx -t # 檢查配置文件是否有語(yǔ)法錯(cuò)誤 sudo ./nginx -v # 顯示 Nginx 的版本號(hào)
使用 systemctl 管理 Nginx
如果需要使用systemctl管理nginx就先停止nginx
sudo ./nginx -s stop
1.創(chuàng)建或編輯 nginx.service 文件:
sudo nano /etc/systemd/system/nginx.service
nginx.service 配置文件內(nèi)容: 復(fù)制內(nèi)容粘貼
[Unit] Description=A high performance web server and a reverse proxy server After=network.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
保存方法退出方法:CTRL + X 然后會(huì)提示你是否確認(rèn)保存 按Y 然后回車就行了。
2.重新加載 systemd 守護(hù)進(jìn)程:
sudo systemctl daemon-reload
3. 啟用并啟動(dòng) Nginx 服務(wù):
sudo systemctl enable nginx # 設(shè)置開機(jī)自啟動(dòng) sudo systemctl start nginx # 啟動(dòng) Nginx 服務(wù)
systemctl操作nginx命令:
sudo systemctl start nginx #啟動(dòng) Nginx sudo systemctl stop nginx #停止 Nginx sudo systemctl restart nginx #重啟 Nginx sudo systemctl reload nginx #重新加載配置 sudo systemctl status nginx #檢查 Nginx 狀態(tài)
報(bào)錯(cuò)解決方式:
如果運(yùn)行 sudo systemctl start nginx啟動(dòng)命令報(bào)錯(cuò)的話
錯(cuò)誤提示:
ubuntu@ip-ubuntu:/usr/local/nginx/sbin$ sudo systemctl start nginx
Job for nginx.service failed because a timeout was exceeded.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
這個(gè)可能就是 /run/nginx.pid 這個(gè)文件沒有創(chuàng)建權(quán)限可以把配置文件改為
運(yùn)行命令:
sudo nano /etc/systemd/system/nginx.service
[Unit] Description=A high performance web server and a reverse proxy server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
保存方法退出方法:CTRL + X 然后會(huì)提示你是否確認(rèn)保存 按Y 然后回車就行了。
重新加載下 sudo systemctl daemon-reload 然后啟動(dòng)就行了
配置文件解析
nginx.service 文件名 [Unit] Description=A high performance web server and a reverse proxy server After=network.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
說(shuō)明
- Description:對(duì)服務(wù)的描述信息。
- After=network.target:確保網(wǎng)絡(luò)啟動(dòng)后才啟動(dòng) Nginx。
- Type=forking:指明 Nginx 采用的是
forking模式(啟動(dòng)時(shí)會(huì)創(chuàng)建一個(gè)主進(jìn)程和多個(gè)子進(jìn)程)。 - PIDFile=/run/nginx.pid:指定 Nginx 進(jìn)程的 PID 文件路徑。如果你的系統(tǒng)使用不同的 PID 路徑,請(qǐng)調(diào)整該行。
- ExecStartPre:在啟動(dòng) Nginx 前驗(yàn)證配置文件是否正確。
- ExecStart:?jiǎn)?dòng) Nginx 服務(wù)。
- ExecReload:重新加載配置而不中斷服務(wù)。
- ExecStop:停止 Nginx 服務(wù)。
- WantedBy=multi-user.target:指明服務(wù)應(yīng)該在多用戶模式下啟動(dòng)。
如果 Nginx 安裝路徑不同
- 如果你的 Nginx 可執(zhí)行文件不在 /usr/local/nginx/sbin
/nginx,請(qǐng)根據(jù)實(shí)際路徑修改ExecStartPre、ExecStart和ExecReload的值。 - 你可以使用
which nginx命令查找 Nginx 的安裝路徑。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)Nginx支持SSL的性能進(jìn)行優(yōu)化的方法
這篇文章主要介紹了對(duì)Nginx支持SSL的性能進(jìn)行優(yōu)化的方法,作者分別以不同方法進(jìn)行了8個(gè)優(yōu)化實(shí)驗(yàn),需要的朋友可以參考下2015-06-06
Nginx配置真實(shí)IP地址轉(zhuǎn)發(fā)的實(shí)現(xiàn)示例
在許多web應(yīng)用程序中,獲取客戶端的真實(shí) IP 地址非常重要,本文就來(lái)介紹一下Nginx配置真實(shí)IP地址轉(zhuǎn)發(fā)的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-11-11
騰訊云服務(wù)器記錄nginx配置cloudflare證書的實(shí)現(xiàn)步驟
本文主要介紹了騰訊云服務(wù)器記錄nginx配置cloudflare證書的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
在Nginx服務(wù)器上配置Google反向代理的基本方法
這篇文章主要介紹了在Nginx服務(wù)器上配置Google反向代理的基本方法,文中使用到了SSL來(lái)加密反向代理,需要的朋友可以參考下2015-12-12
nginx中狀態(tài)統(tǒng)計(jì)的實(shí)現(xiàn)
本文主要介紹了nginx中狀態(tài)統(tǒng)計(jì)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Nginx高可用配置實(shí)戰(zhàn)教程之負(fù)載均衡?+?健康檢查?+?動(dòng)態(tài)擴(kuò)展
本文通過(guò)電商商品服務(wù)集群的實(shí)戰(zhàn)案例,詳細(xì)介紹了從零搭建Nginx高可用架構(gòu)的全過(guò)程,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2017-08-08
Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn)
本文主要介紹了Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

