目錄
- 簡介
- 常用指令
- 功能
- 代理
- 反向代理
- 叢集
- HTTP叢集
- TCP叢集
- 重定向
- 靜态檔案
- HTTPS配置
- 常見問題
簡介
Nginx ("engine x") 是一款輕量級,高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。
傳輸層的負載均衡有LVS(Linux) 和 NLB(Windows)
常用指令
-
// nginx 版本nginx -v
-
// 啟動nginx,不阻塞指令視窗start 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 ^/(.*)$ http://www.xx.com/$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端口)沖突
- 被System占用
- 找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP下的Start修改其值為0,重新開機電腦即可
- 被IIS占用
- 停用IIS 80端口的網站
- 被System占用
- nginx群集
- 如果nginx伺服器挂了,那我們的站點就直接挂了,可以通過keepalived元件來搭建多台nginx服務提供服務。
- error.log 錯誤日志:signal process started
- 并非錯誤,隻要執行-s reload就會發出
轉載于:https://www.cnblogs.com/neverc/p/7027274.html