nginx配置文件简单说明

# 处理请求的进程个数(干活的进程数),线上服务建议设置为1,设置大于1不能提升nginx的代理性能,甚至性能会更低,但nginx如果要进行大量cpu运算工作,则可以设置为cpu核心数
worker_processes 1;
events {
  # 每一个worker的最大连接数,如果设置大于操作系统最大文件打开数量,则需要修改ulimit
  worker_connections 1024;
}
http {
  # 存储server_name的大小,出现“could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32”后再进行修改即可
  server_names_hash_bucket_size 64;
  # mime.types包含了绝大部分的“Content-type”,没必要修改
  include mime.types;
  # 访问io流编码(本地文件或接口),线上环境设置为utf-8
  charset gbk,utf-8;

  # 是否采用sendfile方式传输,启用就完了,默认会采用read/wirte模式
  sendfile on;
  # 接口存活时长,单位秒
  keepalive_timeout 65;

  # 下面这些是把当前request中的一些请求头传入下一层
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  # 获取用户真实ip
  set_real_ip_from 0.0.0.0/0;
  real_ip_header X-Forwarded-For;

  # 服务器组定义,建议都加上权值
  upstream websocket {
    # 默认启用的服务ip,max_fails和fail_timeout表示再10秒内错误一次,则表示服务不可用,启用backup服务
    server 192.168.0.11:8080 weight=100 max_fails=1 fail_timeout=10s;
    # backup标记代表是备用服务器,如果主服务器不可用,则会分发到备用服务器
    # websocket可以先采用这个方式,保证用户只会连接到一台服务器上
    server 192.168.0.12:8080 weight=100 backup;
  }

  server {
    # 监听的端口号
    listen 8089;
    # 需要证书认证,如果不需要,删掉即可
    # 如果配置了需要证书,那么需要配置证书的公钥和私钥
    ssl on;
    server_name localhost;

    # 证书公钥
    ssl_certificate      4480050_www.baidu.com.pem;
    # 证书私钥
    ssl_certificate_key  4480050_www.baidu.com.key;

    proxy_read_timeout 100;
    location /ws {
      # 这个是websocket代理的配置 如果是websocket的代理,则必须加上下面三条
      proxy_http_version 1.1;
      proxy_set_header Upgrade "websocket";
      proxy_set_header Connection "Upgrade";

      #error             # 与服务器建立连接,向其传递请求或读取响应头时发生错误;
      #timeout           # 在与服务器建立连接,向其传递请求或读取响应头时发生超时;
      #invalid_header    # 服务器返回空的或无效的响应;
      #http_500          # 服务器返回代码为500的响应;
      #http_502          # 服务器返回代码为502的响应;
      #http_503          # 服务器返回代码为503的响应;
      #http_504          # 服务器返回代码504的响应;
      #http_403          # 服务器返回代码为403的响应;
      #http_404          # 服务器返回代码为404的响应;
      #http_429          # 服务器返回代码为429的响应(1.11.13);
      #non_idempotent    # 通常,请求与 非幂等 方法(POST,LOCK,PATCH)不传递到请求是否已被发送到上游服务器(1.9.13)的下一个服务器; 启用此选项显式允许重试此类请求;
      #off               # 禁用将请求传递给下一个服务器。

      # upstream触发规则配置,满足指定后面的情况才会执行执行upstream规则
      # 不建议其它状态进行重试,可能只是服务出现错误,如果重试会造成多次执行,比如多次派车,多次发短信等
      # 如果是400系列错误,无论访问多少次也是一样,也不建议添加400系列
      proxy_next_upstream error http_502 http_503 http_504;

      # 使用服务器组进行访问,会根据权值分配对应服务器
      # 注意,如果以"/"结尾,nginx会忽略掉location配置的地址
      # 例如:https://www.baidu.com/ws/123,忽略掉后,访问到服务的地址为:https://192.168.0.17:8080/123,不忽略的地址为:https://192.168.0.17:8080/ws/123
      proxy_pass http://websocket;        
    }
  }
}

 

 
posted @ 2020-10-19 18:27  飛言緋語  阅读(107)  评论(0编辑  收藏  举报