Nginx 是一种开源工具,用于 Web 服务、反向代理、缓存、负载平衡、媒体流等,本文将提到一些经常使用的 Nginx 配置。
Nginx Cheat Sheet
监听端口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server { listen 80;
listen 443 ssl;
listen 443 ssl http2;
listen [::]:80;
listen [::]:80 ipv6only=on; }
|
访问日志
1 2 3 4 5 6 7 8
| server { access_log /path/to/file.log;
access_log on; }
|
域名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server { server_name yourdomain.com;
server_name yourdomain.com www.yourdomain.com;
server_name *.yourdomain.com;
server_name yourdomain.*;
server_name "";
}
|
静态资源
1 2 3 4 5 6 7 8
| server { listen 80; server_name yourdomain.com;
location / { root /path/to/website; } }
|
重定向
1 2 3 4 5
| server { listen 80; server_name www.yourdomain.com; return 301 http://yourdomain.com$request_uri; }
|
1 2 3 4 5 6 7 8
| server { listen 80; server_name www.yourdomain.com;
location /redirect-url { return 301 http://otherdomain.com; } }
|
反向代理
1 2 3 4 5 6 7 8 9 10
| server { listen 80; server_name yourdomain.com;
location / { proxy_pass http://0.0.0.0:3000; } }
|
负载均衡
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| upstream node_js { server 0.0.0.0:3000; server 0.0.0.0:4000; server 123.131.121.122; }
server { listen 80; server_name yourdomain.com;
location / { proxy_pass http://node_js; } }
|
HTTPS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| server { listen 443 ssl; server_name yourdomain.com;
ssl on;
ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/privatekey.pem;
ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/fullchain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_timeout 1h; ssl_session_cache shared:SSL:50m; add_header Strict-Transport-Security max-age=15768000; }
server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; }
|