常用 nginx 配置片段参考。
极简配置
参考:申请泛域名证书
反向代理(HTTP)
upstream backend {
server 127.0.0.1:8089;
}
server {
listen 80;
server_name www.example.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://backend;
}
# 静态资源由 nginx 直接处理
location ~* ^/(images|js|css|media|static)/ {
root /var/www/html;
expires 30d;
}
location ~ /\.ht {
deny all;
}
}
反向代理(HTTPS)
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/cert/example.com.fullchain.pem;
ssl_certificate_key /etc/nginx/cert/example.com.key.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html index.htm;
}
}
负载均衡
轮询(默认)
upstream backend {
server 192.168.1.11:80;
server 192.168.1.12:80;
server 192.168.1.13:80;
}
加权轮询
upstream backend {
server 192.168.1.11:80 weight=3;
server 192.168.1.12:80;
server 192.168.1.13:80;
}
最少连接
upstream backend {
least_conn;
server 192.168.1.11:80;
server 192.168.1.12:80;
server 192.168.1.13:80;
}
IP Hash
upstream backend {
ip_hash;
server 192.168.1.11:80;
server 192.168.1.12:80;
server 192.168.1.13:80;
}
URI Hash
upstream backend {
hash $request_uri;
server 192.168.1.11:80;
server 192.168.1.12:80;
server 192.168.1.13:80;
}
静态站点(SPA)
server {
listen 80;
server_name example.com;
root /app/dist;
index index.html;
gzip on;
gzip_types text/plain text/css application/javascript application/xml image/jpeg image/png;
location / {
try_files $uri $uri/ /index.html;
}
}
文件服务器
server {
listen 9050;
server_name _;
charset utf-8;
root /share/fs;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}