Skip to content

Nginx常见使用技巧

HTTPS 代理

txt
server
{
  listen 443 ssl;
  # IP或域名
  server_name  www.you-domain.cn;
  # 证书地址
  ssl_certificate /ssl/git/cert.pem;
  # 证书私钥地址
  ssl_certificate_key /ssl/git/cert.key;
  location / {
    # 代理地址, 这里我转发到本机的8080端口
    proxy_pass http://0.0.0.0:8080;
    proxy_set_header Host $host;
    # 转发请求的IP
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # 代理连接超时设置
    proxy_connect_timeout 60;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
  }
}
  • proxy_pass 指令将请求转发到上游服务器。
  • proxy_set_header 指令用于设置转发给上游服务器时的请求头。

强制 HTTPS

多用于 http 强制转向 https

txt
server
{
  listen 80;
  # IP或域名
  server_name www.you-domain.cn;
  rewrite ^(.*)$ https://$host$1 permanent;
}

代理以/api/开头的请求

location /api/ 块表示所有到 /api/ 路径的请求都会被代理到 http://192.168.0.1 上。

txt
server {
  listen 80;

  location /api/ {
    proxy_pass http://192.168.0.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

个人收集整理, MIT License