单项目部署
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在默认传输时会默认进行缓存,等请求完成后统一返回。
client_max_body_size 50m; # 文件最大不能超过50MB 设置默认上传大小
- 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
- 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
总结: 后缀带 / 会被匹配去除 , 不带/ 则显示真实路径
root
root指令定义了NGINX服务器上的默认文件夹。当请求的URI与服务器上的文件夹中的文件匹配时,NGINX将使用root指令定义的路径来定位文件。
alias
alias指令则用于替换URI中的一部分。与root不同的是,alias将URI中的部分替换为指令中定义的路径,并使用新的路径定位文件。这个功能使得您可以将客户端请求中的某个特定目录映射到另一个目录。