MENU

Nginx 常用配置文件片段

2022 年 05 月 24 日 • 开发

负载均衡

upstream example_servers {
  server 192.168.1.101:8080 weight=30;
  server 192.168.1.102:8080 weight=20;
  server 192.168.1.103:8080 weight=10;
  # weight 可选,表示权重,值越大则被分配到的几率越大
}

server {  
  listen 80;
  server_name www.example.com;
  location / {
    proxy_pass http://example_servers;
  }
}

添加跨域响应头

location / {  
  # add_header 'Access-Control-Allow-Origin' '$http_origin';
  add_header 'Access-Control-Allow-Origin' '*';
  add_header 'Access-Control-Allow-Methods' 'OPTIONS, GET, POST';
  add_header 'Access-Control-Allow-Headers' 'Cache-Control, Content-Type, User-Agent, X-Requested-With';

  if ($request_method = 'OPTIONS') {
    return 204;
  }
}

一个 server 配置多个域名

server_name 中以空格分隔多个域名:

server {
  listen 80;
  server_name a.frost-zx.top b.frost-zx.top;
  ...
}

一个 server 配置多个类型的 SSL 证书

参考:Module ngx_http_ssl_module
注意:只有 OpenSSL 1.0.2 及以上版本支持

ssl_certificatessl_certificate_key,复制多一份,然后把路径修改为其他类型证书的路径:

server {
  listen              443 ssl;
  server_name         example.com;

  ssl_certificate     example.com.rsa.crt;
  ssl_certificate_key example.com.rsa.key;

  ssl_certificate     example.com.ecdsa.crt;
  ssl_certificate_key example.com.ecdsa.key;

  ...
}

域名重定向

server {

  ...

  if ($host ~ '^www.example.com') {
    return 301 https://test.example.com/;
  }

  ...

}
最后编辑于: 2022 年 07 月 24 日
返回文章列表 打赏
本页链接的二维码
打赏二维码