nginx部署相关配置

发布时间:2023年12月21日

单项目部署

server {
                listen               5175;
                ## listen               [::]:80;
                server_name          bigmathone.com;
                client_max_body_size        50m; # 文件最大不能超过50MB
                ## root                 /usr/share/nginx/html/dist;
                ## include              /etc/nginx/default.d/*.conf;
                location / {
                        root         /var/www/html/docMainManage/dist;
                        index        index.html;
                        try_files    $uri $uri/ /index.html;
                }
                location /IntegratedManagement/ {
                        proxy_pass   http://127.0.0.1:2334/;
                        proxy_cache off;               # 关闭缓存
                        proxy_buffering off;           # 关闭代理缓冲
                        chunked_transfer_encoding on;  # 开启分块传输编码
                        tcp_nopush on;               # 开启TCP NOPUSH选项,禁止Nagle算法
                        tcp_nodelay on;                # 开启TCP NODELAY选项,禁止延迟ACK算法
                        keepalive_timeout 300;         # 设定keep-alive超时时间为65秒
                }
        }

多项目部署

 server {
                listen               9001;
                ## listen               [::]:80;
                server_name          bigmathone.com,locahost;
                ## root                 /usr/share/nginx/html/dist;
                ## include              /etc/nginx/default.d/*.conf;
                client_max_body_size        50m; # 文件最大不能超过50MB
                # 用户登录管理平台
                location /commons {
                        alias         /var/www/html/adminManagement/dist/;
                        index        index.html index.html;
                        try_files    $uri $uri/ /commons/index.html;
                }
                #通用接口后台
                location /common/ {
                        proxy_pass   http://127.0.0.1:2334/common/;
                        proxy_cache off;               # 关闭缓存
                        proxy_buffering off;           # 关闭代理缓冲
                        chunked_transfer_encoding on;  # 开启分块传输编码
                        tcp_nopush on;               # 开启TCP NOPUSH选项,禁止Nagle算法
                        tcp_nodelay on;                # 开启TCP NODELAY选项,禁止延迟ACK算法
                        keepalive_timeout 300;         # 设定keep-alive超时时间为65秒
                }
                # 用户登录管理后台
                location /admins/ {
                        proxy_pass   http://127.0.0.1:2334/admins/;
                        proxy_cache off;               # 关闭缓存
                        proxy_buffering off;           # 关闭代理缓冲
                        chunked_transfer_encoding on;  # 开启分块传输编码
                        tcp_nopush on;               # 开启TCP NOPUSH选项,禁止Nagle算法
                        tcp_nodelay on;                # 开启TCP NODELAY选项,禁止延迟ACK算法
                        keepalive_timeout 300;         # 设定keep-alive超时时间为65秒
                }
                # 图文搜索平台
                 location /readPaper {
                        alias         /var/www/html/readPaper/dist;
                        index        index.html index.html;
                        try_files    $uri $uri/ /readPaper/index.html;
                }
                # 图文搜索平台后台
                location /readPapers/ {
                        proxy_pass   http://127.0.0.1:2333/;
                        proxy_cache off;               # 关闭缓存
                        proxy_buffering off;           # 关闭代理缓冲
                        chunked_transfer_encoding on;  # 开启分块传输编码
                        tcp_nopush on;                 # 开启TCP NOPUSH选项,禁止Nagle算法
                        tcp_nodelay on;                # 开启TCP NODELAY选项,禁止延迟ACK算法
                        keepalive_timeout 300;         # 设定keep-alive超时时间为65秒
                }
                 # 帮助文档平台
                 location /IntegratedManagement {
                        alias         /var/www/html/docMainManage/dist;
                        index        index.html index.html;
                        try_files    $uri $uri/ /IntegratedManagement/index.html;
                }
                # 帮助文档平台后台
                location /IntegratedManagements/ {
                        proxy_pass   http://127.0.0.1:2334/;
                        proxy_cache off;               # 关闭缓存
                        proxy_buffering off;           # 关闭代理缓冲
                        chunked_transfer_encoding on;  # 开启分块传输编码
                        tcp_nopush on;               # 开启TCP NOPUSH选项,禁止Nagle算法
                        tcp_nodelay on;                # 开启TCP NODELAY选项,禁止延迟ACK算法
                        keepalive_timeout 300;         # 设定keep-alive超时时间为65秒
                }
        }

- 遇到的问题
1. 文件下载时,不显示进度条

> proxy_cache off;               # 关闭缓存
>          proxy_buffering off;           # 关闭代理缓冲
>          chunked_transfer_encoding on;  # 开启分块传输编码
>          tcp_nopush on;               # 开启TCP NOPUSH选项,禁止Nagle算法
>          tcp_nodelay on;                # 开启TCP NODELAY选项,禁止延迟ACK算法
> 
> 		nginx在默认传输时会默认进行缓存,等请求完成后统一返回。     
  1. 文件上传时大小限制

client_max_body_size 50m; # 文件最大不能超过50MB 设置默认上传大小

  1. local 带 / 不带/ 区别
  1. location和proxy_pass都带/,则真实地址不带location匹配目录
    local /api/ { proxy_pass http://127.0.0.1:8000/ }
    访问地址:www.test.com/api/upload–>http://127.0.0.1:8080/upload
  1. location不带/,proxy_pass带/,则真实地址会带/
    local /api { proxy_pass http://127.0.0.1:8000/ }
    访问地址:www.test.com/api/upload–>http://127.0.0.1:8080//upload

总结: 后缀带 / 会被匹配去除 , 不带/ 则显示真实路径

  1. root 跟 alias 区别

root
root指令定义了NGINX服务器上的默认文件夹。当请求的URI与服务器上的文件夹中的文件匹配时,NGINX将使用root指令定义的路径来定位文件。
alias
alias指令则用于替换URI中的一部分。与root不同的是,alias将URI中的部分替换为指令中定义的路径,并使用新的路径定位文件。这个功能使得您可以将客户端请求中的某个特定目录映射到另一个目录。

  1. try_files:设置文件查找规则为 $uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从 $uri/ 目录中查找,最后查找 /index.html。
文章来源:https://blog.csdn.net/weixin_43245286/article/details/135132962
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。