nginx作為使用最為廣泛的http服務(wù)器妙色,本文系統(tǒng)介紹了其在Linux的最常用操作新娜,為大家提供了相關(guān)功能速查手冊赵辕。內(nèi)容主要包括了,日常操作概龄、常見配置匆帚、常見錯誤、相關(guān)資源三部分內(nèi)容旁钧。
Nginx整體介紹
NGINX是一個免費吸重、開源、高性能的HTTP服務(wù)器和反向代理歪今,以及IMAP/POP3代理服務(wù)器嚎幸。NGINX以其高性能、穩(wěn)定性寄猩、豐富的功能集嫉晶、簡單的配置和低的資源消耗而聞名。
本文相關(guān)前提條件
本文所有操作指令均以已經(jīng)獲得系統(tǒng)管理員權(quán)限為前提田篇。由于不同的Linux發(fā)行版使用的軟件依賴管理工具替废、系統(tǒng)服務(wù)配置工具差異較大,需要根據(jù)不同操作系統(tǒng)選擇相應(yīng)的指令泊柬。
其中不同發(fā)行版軟件依賴管理工具映射關(guān)系如下:
- yum椎镣,適用于Centos7
其中不同發(fā)行版使用的服務(wù)管理工具映射關(guān)系如下:
- systemctl,適用于Centos7
Nginx日常操作
通過軟件源進行安裝
- 添加EPEL軟件源兽赁,如果已經(jīng)安裝EPEL倉庫請?zhí)^該步驟状答。
yum
yum install epel-release
- 安裝Nginx軟件
yum
yum install nginx
啟動與停止
- 設(shè)置開機啟動
systemctl
systemctl enable nginx
- 啟動nginx
systemctl
systemctl start nginx
- 停止nginx
systemctl
systemctl stop nginx
- 查看當前狀態(tài)
systemctl
systemctl status nginx
- 重啟nginx
systemctl
systemctl restart nginx
- 重新加載配置
systemctl
systemctl reload nginx
查看nginx運行日志
nginx的默認日志路徑配置為 /var/log/nginx/,該章節(jié)默認指令操作目錄為日志路徑刀崖。根據(jù)日志的操作目的不同惊科,一般會使用cat、grep亮钦、tail等命令查看日志馆截,該章節(jié)默認查看操作為實時滾動查看。
- 查看訪問日志
tail -f access.log
- 查看錯誤日志
tail -f error.log
Nginx常見配置
一般性操作
在進行配置文件改動后蜂莉,需要使用執(zhí)行重新加載使得配置信息生效蜡娶,還有少數(shù)情況需要重新啟動nginx服務(wù)堪唐。
配置文件結(jié)構(gòu)
- 一般nginx相關(guān)的配置文件都在 /etc/nginx/ 目錄中。
- 主配置文件為上述目錄的 nginx.conf 翎蹈,其中定義了nginx的默認配置信息。
- 根據(jù)主配置文件默認定義男公,每一個獨立的nginx服務(wù)配置文件應(yīng)放在配置目錄的 conf.d/ 子目錄當中荤堪。
- 一般子配置文件以域名進行命名方便運維人員檢索,例如 dm2box.com.conf 枢赔。
主配置文件
主配置文件作用主要為定義軟件公共配置信息澄阳,包括日志路徑配置、子配置文件配置等關(guān)鍵信息踏拜。/etc/nginx/nginx.conf
user nginx;worker_processes auto;# 錯誤日志路徑配置error_log /var/log/nginx/error.log;pid /run/nginx.pid;# 加載動態(tài)模塊配置include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 訪問日志路徑配置 access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # 加載服務(wù)器子配置文件 include /etc/nginx/conf.d/*.conf;}
https服務(wù)反向代理本地JAVA應(yīng)用示例
該示例是JAVA網(wǎng)站的典型配置示例碎赢,其中包括了反向代理配置、http全部重定向至本域https服務(wù)速梗、SSL證書與安全配置等關(guān)鍵配置肮塞。/etc/nginx/conf.d/dm2box.com.conf
# 代理節(jié)點配置upstream dm2box { # 本地dm2box服務(wù)java應(yīng)用服務(wù)端口 server 127.0.0.1:8080;}# 80端口服務(wù)server { listen 80; server_name dm2box.com; # 全部重定向至https協(xié)議 return 301 https://$server_name$request_uri;}# 443端口服務(wù)server { listen 443 ssl; listen [::]:443; server_name dm2box.com; client_max_body_size 1024m; # ssl證書地址 ssl_certificate /dm2box/full_chain.pem; # 私鑰地址 ssl_certificate_key /dm2box/private.key; # 緩存有效期 ssl_session_timeout 5m; # 加密算法 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 安全鏈接可選的加密協(xié)議 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 使用服務(wù)器端的首選算法 ssl_prefer_server_ciphers on; #Gzip相關(guān) gzip on; gzip_buffers 4 16k; gzip_comp_level 6; gzip_vary on; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; location / { # 反向代理配置 proxy_pass http://dm2box; proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
相關(guān)學(xué)習資源
- 官方網(wǎng)站知識庫,https://www.nginx.com/resources/wiki/
版權(quán)聲明姻锁,本文首發(fā)于 數(shù)字魔盒 https://www.dm2box.com/ 歡迎轉(zhuǎn)載枕赵。