nginx.conf总体配置讲解

[root@VM-12-15-centos nginx]# cat nginx.conf 
# nginx用户及组:用户、组。window下不指定
# 语法:user username [groupname]
# 默认:user nobody nobody
# 按照你服务器名字赋值[root@VM-12-15-centos nginx]
user  root;
 
# 工作进程:数目。根据硬件调整,一般不改变,设置为1
# 通常等于服务器CPU数量。
worker_processes  1;
 
# 一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。
# 但是由于nginx负载并不是完全均衡的,所以这个值最好等于最多能打开的文件数。
# LINUX系统可以执行 sysctl -a | grep fs.file 可以看到linux文件描述符。
# 根据fs.file-max的值设置
worker_rlimit_nofile 199007;
​
events {
  # nginx采用最新的epoll和kqueue网络IO模型,而Apache使用的是select模式。
  # 目前Linux下能承受高并发访问的squid、Memcached 都采用的是epoll网络IO模型。
  # 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
  use epoll;
​
  # 单个进程最大连接数(默认1024)
  # 根据你服务器cpu、worker_processes对应去配置
  # linux下输入ulimit -n查看你的最大连接数
  # worker_processes是1,worker_connections最大为10,000
  worker_connections  1024;
  
  # 可以不设置
  # 客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,
  # 一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
  # client_header_buffer_size 4k;
}
​
http {
  # 设定mime类型,类型由mime.type文件定义
  include       mime.types;
  default_type  application/octet-stream;
​
  # 服务器名字的hash表大小
  server_names_hash_bucket_size 128;
​
  # 客户端请求头缓冲大小。
  # nginx默认会用client_header_buffer_size这个buffer来读取header值,
  # 如果header过大,它会使用large_client_header_buffers来读取。
  # 如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request
  # 如果超过buffer,就会报HTTP 414错误(URI Too Long)
  # nginx接受最长的HTTP头部大小必须比其中一个buffer大
  # 否则就会报400的HTTP错误(Bad Request)
  # client_header_buffer_size 32k;
  # large_client_header_buffers 4 32k;
​
  # 隐藏ngnix版本号
  # server_tokens off;
​
  # 忽略不合法的请求头
  # ignore_invalid_headers   on;
​
  # 让nginx在处理自己内部重定向时不默认使用server_name设置中的第一个域名
  # server_name_in_redirect off;
​
  # 客户端请求体的大小
  # client_body_buffer_size    8m;
​
  # 开启文件传输,一般应用都应设置为on;
  # 若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载
  sendfile        on;
​
  # 告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。
  # tcp_nopush     on;
​
  # tcp_nodelay off 会增加通信的延时,但是会提高带宽利用率。在高延时、数据量大的通信场景中应该会有不错的效果
  # tcp_nodelay on,会增加小包的数量,但是可以提高响应速度。在及时性高的通信场景中应该会有不错的效果
  tcp_nodelay on;
​
  # 长连接超时时间,单位是秒
  keepalive_timeout  65;
  
  # server块记得listen的端口去开放防火墙
  # http转发到https
  # 如果用户输入www.xxx.com会自动转到https://www.xxx.com
  server {
    listen 80;
    server_name www.xxx.com;
      return 301 https://$server_name$request_uri;
  }
    
  # nuxt ssr渲染项目,需要使用Dockerfile
  # 配置docker并在服务器yarn start此项目
  # 这里只是让nginx代理转发
  server {
    # 监听端口并切有证书的带ssl,没有的就不填
    listen 443 ssl;
    # 填写绑定证书的域名
    server_name www.xxx.com;
    # 配置ssl证书
    # 证书文件名称 此为docker映射目录
    ssl_certificate /etc/nginx/cert/xxx_bundle.crt; 
    # 私钥文件名称 此为docker映射目录
    ssl_certificate_key /etc/nginx/cert/xxx.key; 
    ssl_session_timeout 5m;
    #请按照以下套件配置,配置加密套件,写法遵循openssl标准
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    # 表示使用的TLS协议的类型
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    
    # 网站主页路径
    # 因为这里是ssr渲染,blog为docker容器名
    location / {
      proxy_pass http://blog:3000;
      proxy_set_header Host $host;
      proxy_set_header X-Forward-For $remote_addr;         
    }
    
    # 配置反向代理,解决请求后端接口跨域问题
    # 访问:https://xxx/api/xxxxxx
    location /api/ {
      # 待转发后端接口地址
      proxy_pass http://xxx:7020/;
      # 重定义发往后端服务器的请求头,常见配置使用
      proxy_set_header  X-Real-IP  $remote_addr;
      proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
      # 配置status为405时,转200状态码并重定向
      error_page 405 =200  $request_uri;
    }
    
    # 配置动静分离
    # 访问静态数据:https://xxx/img/xxxxxx.jpg
    location /img/ {
      # docker映射的目录路径
      root /usr/share/static;
      index index.html index.htm;
    }
  }
​
  # vue项目,直接yarn build打包后放入服务器并docker映射
  server{
    listen 8886 ssl;
    # 填写绑定证书的域名
    server_name www.xxx.com;
    # 配置ssl证书
    # 证书文件名称 此为docker映射目录
    ssl_certificate /etc/nginx/cert/xxx_bundle.crt; 
    # 私钥文件名称 此为docker映射目录
    ssl_certificate_key /etc/nginx/cert/xxx.key; 
    ssl_session_timeout 5m;
    #请按照以下套件配置,配置加密套件,写法遵循openssl标准
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    # 表示使用的TLS协议的类型
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    
    # 网站主页路径
    location / {
      try_files $uri $uri/index.html /index.html;
      # docker容器下的地址
      root   /usr/share/nginx/html/ange-blog-administration/dist; 
      index  index.html index.htm;
      error_page 405 =200  $request_uri;
    }
​
    # 配置反向代理,解决请求后端接口跨域问题
    # 访问:https://xxx/api/xxxxxx
    location /api/ {
      # 待转发后端接口地址
      proxy_pass http://xxx:7020/;
      # 重定义发往后端服务器的请求头,常见配置使用
      proxy_set_header  X-Real-IP  $remote_addr;
      proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
      # 配置status为405时,转200状态码并重定向
      error_page 405 =200  $request_uri;
    }
     
    # 配置动静分离
    # 访问静态数据:https://xxx/img/xxxxxx.jpg
    location /img-log/ {
      # docker映射的目录路径
      root /usr/share/nginx/html/spring-boot;
      index index.html index.htm;
    }         
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值