Ubuntu下Nginx1.28.0源碼編譯安裝與systemd管理方式解讀
一、環(huán)境與依賴準(zhǔn)備
為確保編譯順利,我們首先更新系統(tǒng)并安裝必要的編譯工具和庫:
sudo apt update sudo apt install -y build-essential \ libpcre3 libpcre3-dev \ zlib1g zlib1g-dev \ libssl-dev \ wget
build-essential
:提供gcc
、make
等基礎(chǔ)編譯工具libpcre3
/libpcre3-dev
:支持正則匹配(如rewrite
模塊)zlib1g
/zlib1g-dev
:提供 gzip 壓縮功能libssl-dev
:開啟 HTTPS/SSL 支持wget
:用于下載源碼包
二、下載并解壓 Nginx 源碼
- 切換到用戶主目錄(或其他工作目錄)
- 下載并解壓源碼包
cd ~ wget http://nginx.org/download/nginx-1.28.0.tar.gz tar zxvf nginx-1.28.0.tar.gz cd nginx-1.28.0
若你已將源碼包 nginx-1.28.0.tar.gz
放在本地目錄,同樣執(zhí)行 tar zxvf
并進(jìn)入解壓后的目錄即可。
三、配置編譯選項
使用 ./configure
腳本為編譯過程指定安裝路徑和所需模塊。
本例中啟用了 HTTP、SSL、HTTP/2、gzip、狀態(tài)監(jiān)控、異步 I/O、線程以及 Stream 模塊等常用功能:
./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-http_realip_module \ --with-threads \ --with-file-aio \ --with-stream \ --with-stream_ssl_module \ --with-stream_realip_module
--prefix
:指定安裝目錄--with-http_stub_status_module
:開啟運(yùn)行狀態(tài)頁(可用于監(jiān)控)- 其余模塊可根據(jù)實(shí)際需求增刪。執(zhí)行
./configure --help
可查看所有可選項。
四、編譯與安裝
- 編譯:根據(jù)機(jī)器性能,執(zhí)行時間通常在幾分鐘左右
- 安裝:將編譯成果復(fù)制到指定目錄
make sudo make install
- 編譯完成后,可執(zhí)行文件位于
/usr/local/nginx/sbin/nginx
- 默認(rèn)主配置文件:
/usr/local/nginx/conf/nginx.conf
- 日志目錄:
/usr/local/nginx/logs/
五、創(chuàng)建 systemd 服務(wù)單元
為了方便開機(jī)自啟及系統(tǒng)統(tǒng)一管理,建議新建一個 systemd 服務(wù)文件:
sudo tee /etc/systemd/system/nginx.service > /dev/null << 'EOF' [Unit] Description=NGINX HTTP and reverse proxy server After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PIDFile=/usr/local/nginx/logs/nginx.pid PrivateTmp=true [Install] WantedBy=multi-user.target EOF
隨后執(zhí)行:
sudo systemctl daemon-reload sudo systemctl enable nginx
六、啟動、重載與狀態(tài)檢查
- 啟動 Nginx
sudo systemctl start nginx
- 查看運(yùn)行狀態(tài)
sudo systemctl status nginx
- 平滑重載配置(修改
nginx.conf
后)
sudo systemctl reload nginx
- 停止 Nginx
sudo systemctl stop nginx
七、防火墻設(shè)置與訪問驗證
如果系統(tǒng)啟用了 UFW 防火墻,請放行 HTTP/HTTPS 端口:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
在瀏覽器中訪問服務(wù)器 IP 或綁定的域名,若出現(xiàn)默認(rèn) Nginx 歡迎頁,即代表安裝部署成功。
八、常見故障排查
端口被占用
sudo lsof -i:80
如有其他服務(wù)占用,需停止或修改 Nginx 監(jiān)聽端口。
配置文件語法錯誤
/usr/local/nginx/sbin/nginx -t
檢查并修正錯誤后再重載。
日志查看
- 訪問日志:
/usr/local/nginx/logs/access.log
- 錯誤日志:
/usr/local/nginx/logs/error.log
總結(jié)
本文詳細(xì)介紹了在 Ubuntu 上從源碼編譯安裝 Nginx 1.28.0 的全流程,涵蓋依賴環(huán)境準(zhǔn)備、源碼下載解壓、配置編譯選項、make 安裝、systemd 服務(wù)管理及常見排錯方法。
通過這種方式,你可以根據(jù)業(yè)務(wù)需求靈活定制 Nginx 功能,并更好地集成到生產(chǎn)運(yùn)維體系中。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx中的正則表達(dá)式及l(fā)ocation和rewrite總結(jié)
rewrite功能就是,使用nginx提供的全局變量或自己設(shè)置的變量,結(jié)合正則表達(dá)式和標(biāo)記位實(shí)現(xiàn)URL重寫以及重定向,這篇文章主要介紹了nginx中的正則表達(dá)式及l(fā)ocation和rewrite總結(jié),需要的朋友可以參考下2023-12-12Nginx的核心功能--正向代理、反向代理、緩存和Rewrite
Nginx作為一款高性能的開源Web服務(wù)器和反向代理工具,在負(fù)載均衡、緩存加速、安全防護(hù)等場景中扮演著關(guān)鍵角色,本文聚焦Nginx的四大核心功能--反向代理(七層/四層)、正向代理、緩存機(jī)制和正則表達(dá)式匹配,通過理論解析與場景化案例,深入掌握其設(shè)計思想與實(shí)踐技巧2025-05-05nginx實(shí)現(xiàn)透轉(zhuǎn)的方法步驟
本文主要介紹了nginx實(shí)現(xiàn)透轉(zhuǎn)的方法步驟,實(shí)現(xiàn)HTTP與HTTPS請求的客戶端IP地址透傳,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05Nginx基礎(chǔ)配置(main、events、http、server、location)
本文主要介紹了Nginx基礎(chǔ)配置(main、events、http、server、location),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程
這篇文章主要介紹了windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12Jenkins實(shí)現(xiàn)集群化管理以及流水線項目配置
這篇文章主要為大家介紹了Jenkins基本概念,配置實(shí)現(xiàn)集群化管理以及配置流水線項目的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Nginx?Proxy?Manager的具體實(shí)現(xiàn)
Nginx?Proxy?Manager?就是一個?Nginx?的代理管理器,本文主要介紹了Nginx?Proxy?Manager的具體實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-05-05