Nginx在Linux中的配置及維護(hù)全教程
一、Nginx 簡(jiǎn)介
Nginx 是一款高性能的開(kāi)源 HTTP 和反向代理服務(wù)器,以其高并發(fā)處理能力和低資源消耗而聞名。它支持多種功能,包括負(fù)載均衡、反向代理、靜態(tài)文件服務(wù)等。Nginx 的配置文件基于文本,易于理解和修改,使其成為 Web 開(kāi)發(fā)和運(yùn)維人員的首選工具之一。
二、Nginx 的安裝
1. 安裝前的準(zhǔn)備
在安裝 Nginx 之前,確保你的 Linux 系統(tǒng)已經(jīng)安裝了必要的編譯工具和庫(kù)。如果未安裝,可以使用以下命令安裝:
yum -y install gcc gcc-c++ autoconf automake make
2. 安裝 Nginx
以下是基于源碼安裝 Nginx 的步驟:
- 下載 Nginx 源碼包:
wget http://nginx.org/download/nginx-1.24.0.tar.gz
- 解壓源碼包:
tar -zxvf nginx-1.24.0.tar.gz
- 進(jìn)入解壓后的目錄:
cd nginx-1.24.0
- 配置 Nginx,指定安裝路徑:
./configure --prefix=/usr/local/nginx
- 編譯并安裝:
make && make install
- 啟動(dòng) Nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- 檢查 Nginx 是否啟動(dòng)成功:
ps -ef | grep nginx
- 如果看到
nginx: master process
和nginx: worker process
,則表示 Nginx 已成功啟動(dòng)。
3. 設(shè)置 Nginx 開(kāi)機(jī)自啟
將 Nginx 添加到系統(tǒng)的啟動(dòng)腳本中:
vim /etc/rc.d/rc.local
在文件末尾添加以下內(nèi)容:
/usr/local/nginx/sbin/nginx
保存并退出。
三、Nginx 配置文件詳解
Nginx 的配置文件位于 /usr/local/nginx/conf/nginx.conf
,以下是配置文件的主要部分及其說(shuō)明:
1. 全局配置
user nobody; # 指定運(yùn)行 Nginx 的用戶 worker_processes 1; # 工作進(jìn)程數(shù),建議設(shè)置為 CPU 核心數(shù)
2. events 塊
events { worker_connections 1024; # 每個(gè)工作進(jìn)程的最大連接數(shù) }
3. http 塊
http { include mime.types; # 包含文件類型定義 default_type application/octet-stream; # 默認(rèn)文件類型 sendfile on; # 開(kāi)啟高效文件傳輸模式 keepalive_timeout 65; # 長(zhǎng)連接超時(shí)時(shí)間 server { listen 80; # 監(jiān)聽(tīng)端口 server_name localhost; # 服務(wù)器名稱 location / { root html; # 網(wǎng)站根目錄 index index.html index.htm; # 默認(rèn)首頁(yè)文件 } error_page 500 502 503 504 /50x.html; # 錯(cuò)誤頁(yè)面 location = /50x.html { root html; } } }
以上是一個(gè)簡(jiǎn)單的 Nginx 配置文件示例。
四、Nginx 的常用命令
啟動(dòng) Nginx:
/usr/local/nginx/sbin/nginx
停止 Nginx:
/usr/local/nginx/sbin/nginx -s stop
平滑重啟 Nginx:
/usr/local/nginx/sbin/nginx -s reload
檢查配置文件語(yǔ)法:
/usr/local/nginx/sbin/nginx -t
五、Nginx 的維護(hù)與優(yōu)化
1. 日志管理
Nginx 的日志默認(rèn)存儲(chǔ)在 /usr/local/nginx/logs
目錄下??梢酝ㄟ^(guò)配置文件中的 access_log
和 error_log
指令指定日志文件的位置和格式。例如:
access_log /usr/local/nginx/logs/access.log main; error_log /usr/local/nginx/logs/error.log warn;
2. 性能優(yōu)化
調(diào)整工作進(jìn)程數(shù): 將
worker_processes
設(shè)置為 CPU 核心數(shù)。優(yōu)化連接數(shù): 增大
worker_connections
的值以支持更多并發(fā)連接。啟用 Gzip 壓縮: 在
http
塊中添加以下配置:
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_types text/plain application/javascript application/json;
3. 安全配置
限制訪問(wèn): 使用 allow
和 deny
指令限制對(duì)特定資源的訪問(wèn)。例如:
location /admin { allow 192.168.1.0/24; deny all; }
隱藏版本信息: 在 http
塊中添加以下配置:
server_tokens off;
六、Nginx 的高級(jí)應(yīng)用
1. 反向代理
Nginx 可以作為反向代理服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器。例如:
server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
2. 負(fù)載均衡
Nginx 可以實(shí)現(xiàn)簡(jiǎn)單的負(fù)載均衡功能。例如:
upstream backend { server 192.168.1.10:8080; server 192.168.1.11:8080; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } }
七、常見(jiàn)問(wèn)題及解決方案
502 Bad Gateway 錯(cuò)誤:
原因:后端服務(wù)未啟動(dòng)或 Nginx 無(wú)法連接到后端服務(wù)。
解決方法:檢查后端服務(wù)是否正常運(yùn)行,并確保 Nginx 的
proxy_pass
配置正確。
403 Forbidden 錯(cuò)誤:
原因:文件權(quán)限不足或
root
指令配置錯(cuò)誤。解決方法:檢查文件權(quán)限,并確保
root
指令指向正確的目錄。
Nginx 無(wú)法啟動(dòng):
原因:配置文件語(yǔ)法錯(cuò)誤。
解決方法:使用
/usr/local/nginx/sbin/nginx -t
檢查配置文件語(yǔ)法。
八、總結(jié)
Nginx 是一款功能強(qiáng)大的 Web 服務(wù)器和反向代理工具。通過(guò)合理配置和維護(hù),可以實(shí)現(xiàn)高性能、高可用的 Web 服務(wù)。本教程介紹了 Nginx 的安裝、配置、優(yōu)化和維護(hù)方法,希望能幫助你更好地使用 Nginx。
以上就是Nginx在Linux中的配置及維護(hù)全教程的詳細(xì)內(nèi)容,更多關(guān)于Nginx Linux配置及維護(hù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
centos7下基于nginx+uwsgi部署Django項(xiàng)目的實(shí)現(xiàn)
Django是一個(gè)開(kāi)源的Web應(yīng)用框架,使用Python語(yǔ)言編寫,主要用于搭建Web項(xiàng)目,本教程介紹如何在centos7下基于nginx+uwsgi部署Django項(xiàng)目的實(shí)現(xiàn),感興趣的可以了解一下2024-04-04基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制
Nginx自帶的模塊支持對(duì)并發(fā)請(qǐng)求數(shù)進(jìn)行限制, 還有對(duì)請(qǐng)求來(lái)源進(jìn)行限制??梢杂脕?lái)防止DDOS攻擊。這篇文章主要介紹了基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制的相關(guān)資料,需要的朋友可以參考下2019-11-11基于Nginx的衍生版服務(wù)器Tengine簡(jiǎn)介
這篇文章主要介紹了基于Nginx的衍生版服務(wù)器Tengine簡(jiǎn)介,本文講解了Nginx的特性、Tengine的特性、架構(gòu)和擴(kuò)展性等內(nèi)容,需要的朋友可以參考下2015-03-03nginx中封禁ip和允許內(nèi)網(wǎng)ip訪問(wèn)的實(shí)現(xiàn)示例
Nginx不僅僅只是一款反向代理和負(fù)載均衡服務(wù)器,本文主要介紹了nginx中封禁ip和允許內(nèi)網(wǎng)ip訪問(wèn)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03nginx高可用集群的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了nginx高可用集群的實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10nginx 開(kāi)啟 pathinfo的過(guò)程詳解
這篇文章主要介紹了nginx 開(kāi)啟 pathinfo的過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08centos7系統(tǒng)下nginx安裝并配置開(kāi)機(jī)自啟動(dòng)操作
這篇文章主要介紹了centos7系統(tǒng)下nginx安裝并配置開(kāi)機(jī)自啟動(dòng)操作方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02通過(guò)Nginx反向代理實(shí)現(xiàn)IP訪問(wèn)分流的示例代碼
本篇文章主要介紹了通過(guò)Nginx反向代理實(shí)現(xiàn)IP訪問(wèn)分流的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11