Ubuntu環(huán)境下安裝部署Nginx并設(shè)置自啟動過程
通過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.通過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
#對應(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 的編譯選項。
- 在運(yùn)行 make 和 make install 之前,需要先運(yùn)行 ./configure 來定義 Nginx 的安裝路徑和需要包含的模塊。
--prefix=/usr/local/nginx
- 這個選項指定 Nginx 的安裝目錄為 /usr/local/nginx。
- 編譯完成后,Nginx 的二進(jìn)制文件、配置文件、日志文件等都會被安裝在這個目錄中。
--with-http_stub_status_module
- 這個選項啟用 http_stub_status_module 模塊。
- 該模塊提供一個簡易接口,展示當(dāng)前 Nginx 的一些統(tǒng)計信息,如活動連接數(shù)、已處理的請求數(shù)等。
- 這個功能常用于監(jiān)控和調(diào)試。
--with-http_ssl_module
- 這個選項啟用 http_ssl_module 模塊。
- 該模塊允許 Nginx 支持 SSL/TLS,用于安全的 HTTPS 連接。
- 這個模塊是必須的,如果你打算使用 HTTPS 來保護(hù)你的網(wǎng)站或應(yīng)用。
7. 編譯
sudo make
8. 安裝
sudo make install
啟動命令:
打開文件夾
cd /usr/local/nginx/sbin #打開文件夾 sudo ./nginx #啟動nginx sudo ./nginx -s stop # 強(qiáng)制停止 Nginx sudo ./nginx -s quit # 優(yōu)雅停止 Nginx,會等待所有請求處理完成后再關(guān)閉 sudo ./nginx -s reload # 重新加載 Nginx 配置,而不會中斷現(xiàn)有的連接 sudo ./nginx -t # 檢查配置文件是否有語法錯誤 sudo ./nginx -v # 顯示 Nginx 的版本號
使用 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 然后會提示你是否確認(rèn)保存 按Y 然后回車就行了。
2.重新加載 systemd 守護(hù)進(jìn)程:
sudo systemctl daemon-reload
3. 啟用并啟動 Nginx 服務(wù):
sudo systemctl enable nginx # 設(shè)置開機(jī)自啟動 sudo systemctl start nginx # 啟動 Nginx 服務(wù)
systemctl操作nginx命令:
sudo systemctl start nginx #啟動 Nginx sudo systemctl stop nginx #停止 Nginx sudo systemctl restart nginx #重啟 Nginx sudo systemctl reload nginx #重新加載配置 sudo systemctl status nginx #檢查 Nginx 狀態(tài)
報錯解決方式:
如果運(yùn)行 sudo systemctl start nginx啟動命令報錯的話
錯誤提示:
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.
這個可能就是 /run/nginx.pid 這個文件沒有創(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 然后會提示你是否確認(rèn)保存 按Y 然后回車就行了。
重新加載下 sudo systemctl daemon-reload 然后啟動就行了
配置文件解析
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
說明
- Description:對服務(wù)的描述信息。
- After=network.target:確保網(wǎng)絡(luò)啟動后才啟動 Nginx。
- Type=forking:指明 Nginx 采用的是
forking模式(啟動時會創(chuàng)建一個主進(jìn)程和多個子進(jìn)程)。 - PIDFile=/run/nginx.pid:指定 Nginx 進(jìn)程的 PID 文件路徑。如果你的系統(tǒng)使用不同的 PID 路徑,請調(diào)整該行。
- ExecStartPre:在啟動 Nginx 前驗證配置文件是否正確。
- ExecStart:啟動 Nginx 服務(wù)。
- ExecReload:重新加載配置而不中斷服務(wù)。
- ExecStop:停止 Nginx 服務(wù)。
- WantedBy=multi-user.target:指明服務(wù)應(yīng)該在多用戶模式下啟動。
如果 Nginx 安裝路徑不同
- 如果你的 Nginx 可執(zhí)行文件不在 /usr/local/nginx/sbin
/nginx,請根據(jù)實(shí)際路徑修改ExecStartPre、ExecStart和ExecReload的值。 - 你可以使用
which nginx命令查找 Nginx 的安裝路徑。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
對Nginx支持SSL的性能進(jìn)行優(yōu)化的方法
這篇文章主要介紹了對Nginx支持SSL的性能進(jìn)行優(yōu)化的方法,作者分別以不同方法進(jìn)行了8個優(yōu)化實(shí)驗,需要的朋友可以參考下2015-06-06
Nginx配置真實(shí)IP地址轉(zhuǎn)發(fā)的實(shí)現(xiàn)示例
在許多web應(yīng)用程序中,獲取客戶端的真實(shí) IP 地址非常重要,本文就來介紹一下Nginx配置真實(shí)IP地址轉(zhuǎn)發(fā)的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-11-11
騰訊云服務(wù)器記錄nginx配置cloudflare證書的實(shí)現(xiàn)步驟
本文主要介紹了騰訊云服務(wù)器記錄nginx配置cloudflare證書的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
在Nginx服務(wù)器上配置Google反向代理的基本方法
這篇文章主要介紹了在Nginx服務(wù)器上配置Google反向代理的基本方法,文中使用到了SSL來加密反向代理,需要的朋友可以參考下2015-12-12
nginx中狀態(tài)統(tǒng)計的實(shí)現(xiàn)
本文主要介紹了nginx中狀態(tài)統(tǒng)計的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Nginx高可用配置實(shí)戰(zhàn)教程之負(fù)載均衡?+?健康檢查?+?動態(tài)擴(kuò)展
本文通過電商商品服務(wù)集群的實(shí)戰(zhàn)案例,詳細(xì)介紹了從零搭建Nginx高可用架構(gòu)的全過程,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2017-08-08
Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn)
本文主要介紹了Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

