目錄
-
簡介
-
常用命令
-
功能
-
HTTP集群
-
TCP集群
-
代理
-
反向代理
-
集群
-
重定向
-
靜態文件
-
HTTPS配置
-
常見問題
簡介
nginx (“engine x”) 是一款輕量級,高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。
傳輸層的負載均衡有LVS(Linux) 和 NLB(Windows)
常用命令
-
nginx -v // nginx 版本
-
start nginx // 啟動nginx,不阻塞命令窗口
-
nginx -s stop | nginx -s quit // 快速停止 | 有序退出
-
nginx -s reload // 加載配置重新啟動
功能
代理
server?{????listen?8080;????????????????#?監聽8080端口????resolver?114.114.114.114;???#?dns解析地址??????location?/?{????????proxy_pass??$scheme://$host$request_uri;?#?代理到哪個地址????????proxy_set_header?Host?$http_host;????????#allow?127.0.0.1;???????#?允許127.0.0.1地址訪問????????#deny?all;??????????????#?禁止所有地址訪問(allow位置在上面,所以127.0.0.1仍能訪問)????}}
反向代理
server?{????listen?8081;????????????????????#?監聽8080端口????server_name??localhost;?????????#?虛擬hostName????location?/?{????????proxy_pass???http://127.0.0.1:8081;?#?反向代理到的服務器????}}
集群
HTTP集群
upstream?clusterName?{????#?通過weight設置每臺服務器分配請求站的權重,值越高分配的越多。????server??127.0.0.1:9000?weight=4;?????server??127.0.0.1:8082?weight=1;?????#?ip_hash會計算ip對應hash值,然后分配到固定服務器????ip_hash;?}location?/?{????proxy_pass???http://clusterName;?#?反向代理到群集服務器????#?設置主機頭和客戶端真實地址,以便服務器獲取客戶端真實IP????proxy_set_header???Host?????????????$host;?????proxy_set_header???X-Real-IP????????$remote_addr;?????proxy_set_header???X-Forwarded-For??$proxy_add_x_forwarded_for;}
TCP集群
-
和http同級
stream?{server?{????listen?1034;????proxy_pass?app;}upstream?app?{????server?192.168.0.111:5672;????server?192.168.0.112:5672;}}
重定向
location?/?{????rewrite?^/(.*)$?$1?permanent;}
-
flag
-
last – 基本上都用這個Flag。
-
break – 中止Rewirte,不在繼續匹配
-
redirect – 返回臨時重定向的HTTP狀態302
-
permanent – 返回永久重定向的HTTP狀態301
靜態文件
location?/^(.*)?{????root???html;????????????????????#?根目錄為html文件夾????index??$1?index.html?index.htm;?#?$1表示正則匹配第一項}
綁定證書
# HTTPS server # server { listen 443 ssl; server_name localhost; ssl_certificate /nginx/server.cer; # 公鑰(一般為公鑰證書 + 中級證書) ssl_certificate_key /nginx/server.key; # 私鑰 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; }
常見問題
-
與IIS(80端口)沖突
-
停用IIS 80端口的網站
-
找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP下的Start修改其值為0,重啟電腦即可
-
被System占用
-
被IIS占用
-
nginx群集
-
如果nginx服務器掛了,那我們的站點就直接掛了,可以通過keepalived組件來搭建多臺nginx服務提供服務。
-
error.log 錯誤日志:signal process started
-
并非錯誤,只要執行-s reload就會發出
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END