在Ubuntu上安裝Nginx的實(shí)現(xiàn)過程
在Ubuntu系統(tǒng)中從源碼安裝Nginx可以讓您自定義Nginx的編譯選項(xiàng)和模塊,以滿足特定需求。
以下是詳細(xì)的步驟指南:
前提條件
更新系統(tǒng)包列表
sudo apt update sudo apt upgrade -y
安裝必要的依賴包
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget
- build-essential: 包含編譯工具如gcc、make等。
- libpcre3 & libpcre3-dev: 用于正則表達(dá)式支持。
- zlib1g & zlib1g-dev: 用于壓縮功能。
- libssl-dev: 提供SSL支持。
- wget: 用于下載源碼。
步驟一:下載Nginx源碼
訪問Nginx官方主頁,獲取最新的穩(wěn)定版本下載鏈接。
使用wget下載源碼包(以Nginx 1.24.0為例,請(qǐng)根據(jù)最新版本替換):
cd /usr/local/src sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz
解壓源碼包
sudo tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0
步驟二:配置編譯選項(xiàng)
配置編譯選項(xiàng)可以自定義Nginx的功能和模塊。以下是一個(gè)常用的配置示例:
sudo ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-pcre --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module
說明:
--sbin-path: 指定Nginx可執(zhí)行文件的安裝路徑。--conf-path: 指定Nginx配置文件的位置。--error-log-path&--http-log-path: 指定日志文件的位置。--with-pcre: 啟用PCRE支持(正則表達(dá)式)。--with-http_ssl_module: 啟用SSL模塊。--with-http_v2_module: 啟用HTTP/2支持。--with-http_gzip_static_module: 啟用Gzip靜態(tài)壓縮模塊。--with-stream&--with-stream_ssl_module: 啟用TCP/UDP流支持及其SSL模塊。
您可以根據(jù)需求添加或刪除配置選項(xiàng)。運(yùn)行./configure --help可以查看所有可用的配置選項(xiàng)。
步驟三:編譯和安裝
編譯源碼
sudo make
編譯過程可能需要幾分鐘,具體時(shí)間取決于系統(tǒng)性能。
安裝Nginx
sudo make install
默認(rèn)情況下,Nginx將被安裝到之前指定的路徑(如 /usr/local/nginx/)。
步驟四:創(chuàng)建Nginx用戶和目錄
創(chuàng)建一個(gè)專用用戶運(yùn)行Nginx
sudo useradd -r -s /sbin/nologin nginx
設(shè)置正確的權(quán)限
sudo chown -R nginx:nginx /usr/local/nginx
步驟五:配置Nginx為系統(tǒng)服務(wù)
為了方便管理Nginx,建議將其配置為systemd服務(wù)。
創(chuàng)建Systemd服務(wù)文件
sudo nano /etc/systemd/system/nginx.service
在文件中添加以下內(nèi)容
[Unit] Description=The NGINX HTTP and reverse proxy server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit User=nginx Group=nginx [Install] WantedBy=multi-user.target
重新加載Systemd守護(hù)進(jìn)程
sudo systemctl daemon-reload
啟動(dòng)Nginx服務(wù)
sudo systemctl start nginx
設(shè)置開機(jī)自啟動(dòng)
sudo systemctl enable nginx
檢查Nginx狀態(tài)
sudo systemctl status nginx
您應(yīng)該看到Nginx正在運(yùn)行的狀態(tài)。
步驟六:配置防火墻
確保防火墻允許HTTP和HTTPS流量。
如果使用UFW防火墻
sudo ufw allow 'Nginx Full'
重新加載防火墻規(guī)則
sudo ufw reload
步驟七:驗(yàn)證安裝
訪問Nginx默認(rèn)頁面
打開瀏覽器,訪問服務(wù)器的IP地址(例如 http://your_server_ip/),您應(yīng)該看到Nginx的默認(rèn)歡迎頁面。
檢查Nginx版本
/usr/local/nginx/sbin/nginx -v
輸出類似于:
nginx version: nginx/1.24.0
步驟八:管理Nginx
啟動(dòng)Nginx
sudo systemctl start nginx
停止Nginx
sudo systemctl stop nginx
重啟Nginx
sudo systemctl restart nginx
重新加載配置
sudo systemctl reload nginx
附加步驟:配置Nginx
Nginx的主配置文件位于 /usr/local/nginx/conf/nginx.conf。
您可以根據(jù)需要編輯該文件進(jìn)行進(jìn)一步配置。
sudo nano /usr/local/nginx/conf/nginx.conf
編輯完成后,重新加載Nginx以應(yīng)用更改:
sudo systemctl reload nginx
注意事項(xiàng)
更新Nginx
由于是源碼安裝,Nginx不會(huì)自動(dòng)更新。要更新Nginx,需要手動(dòng)下載新版本源碼,編譯并安裝,或使用包管理工具。
卸載Nginx
源碼安裝的Nginx通常位于 /usr/local/nginx/。要卸載,只需刪除該目錄:
sudo rm -rf /usr/local/nginx/
以及刪除Systemd服務(wù)文件:
sudo rm /etc/systemd/system/nginx.service sudo systemctl daemon-reload
日志管理
確保定期輪轉(zhuǎn)Nginx日志以防止日志文件過大??梢允褂?logrotate 工具進(jìn)行配置。
總結(jié)
通過以上步驟,您已經(jīng)成功在Ubuntu系統(tǒng)中從源碼編譯并安裝了Nginx。源碼安裝提供了更高的靈活性,使您能夠根據(jù)具體需求自定義Nginx的功能。請(qǐng)確保在生產(chǎn)環(huán)境中仔細(xì)測(cè)試配置,并定期維護(hù)Nginx以保持系統(tǒng)安全和穩(wěn)定。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js站點(diǎn)使用Nginx作反向代理時(shí)配置GZip壓縮的教程
這篇文章主要介紹了Node.js站點(diǎn)使用Nginx作反向代理時(shí)配置GZip壓縮的教程,文中演示了Node使用Express框架時(shí)的HTTP傳輸壓縮配置,需要的朋友可以參考下2016-04-04
NGINX服務(wù)器配置404錯(cuò)誤頁面轉(zhuǎn)向的方法
這篇文章主要為大家詳細(xì)介紹了NGINX服務(wù)器配置404錯(cuò)誤頁面轉(zhuǎn)向的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
詳解Nginx服務(wù)器的配置中開啟文件Gzip壓縮的方法
這篇文章主要介紹了Nginx服務(wù)器的配置中開啟文件Gzip壓縮的方法,可以對(duì)CSS和JavaScript以及各種圖片等web傳輸?shù)奈募M(jìn)行壓縮,需要的朋友可以參考下2016-01-01
Nginx 502 bad gateway和Nginx 504 Gateway Time-out錯(cuò)誤解決方法 錯(cuò)誤解決辦
Nginx 502 Bad Gateway的含義是請(qǐng)求的PHP-CGI已經(jīng)執(zhí)行,但是由于某種原因(一般是讀取資源的問題)沒有執(zhí)行完畢而導(dǎo)致PHP-CGI進(jìn)程終止2012-09-09
Nginx設(shè)置響應(yīng)超時(shí)配置的實(shí)現(xiàn)
本文詳細(xì)介紹了如何查找和修改Nginx的配置文件,包括全局配置文件、站點(diǎn)配置文件、包含文件的查找,以及客戶端超時(shí)設(shè)置、代理超時(shí)設(shè)置、FastCGI超時(shí)設(shè)置的修改方法,最后還介紹了如何在Linux系統(tǒng)中重啟Nginx服務(wù),通過這些步驟,可以有效提高Nginx的性能和穩(wěn)定性2024-10-10
Nginx安裝后/etc/nginx/conf.d下沒有default.conf的解決
nginx.conf是nginx默認(rèn)加載的配置文件 通過nginx -V可以看nginx默認(rèn)配置文件路徑,本文主要介紹了Nginx安裝后/etc/nginx/conf.d下沒有default.conf的解決,感興趣的可以了解一下2023-11-11
解決Nginx網(wǎng)關(guān)超時(shí)出現(xiàn)504 GATEWAY TIMEOUT的問題
這篇文章主要給大家介紹了如何解決Nginx網(wǎng)關(guān)超時(shí)出現(xiàn)504 GATEWAY TIMEOUT的問題,文章通過代碼示例和圖文結(jié)合介紹的非常詳細(xì),有遇到相同問題的朋友可以參考閱讀本文2023-11-11
nginx部署前端vue項(xiàng)目完整詳細(xì)指南
在使用Nginx部署前端Vue項(xiàng)目時(shí),需要確保項(xiàng)目的生產(chǎn)環(huán)境版本已經(jīng)打包,并且Nginx已經(jīng)安裝并配置在服務(wù)器上,下面我們來看看具體步驟吧2025-09-09

