Linux系统Bug 报权限不足错误
user root;
解决server_name太长时报错的问题
#解决server_name太长时报错的问题
server_names_hash_bucket_size 64;
解决文件上传默认限制1M的问题
#解决文件上传默认限制1M的问题
client_max_body_size 100m;
监听所有端口
server_name _;
alias 静态资源 别名
#Web前端静态资源
location / {
#注意:这里的路径指的是Docker内部的路径 而非外部宿主机的挂载路径
root /html;
index index.html index.htm;
}
#图片静态资源
location /image-xxx/ {
alias /data/image_xxx/;
}
接口服务 文件上传
#接口服务
location /prod-api/ { #注意:巨坑 这里的尾部也要加斜杠/才行 否则是直接替换 路径会是双斜杠// 如://oauth/token
# 解决“nginx转发后ip地址变为127.0.0.1”的问题
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
#注意:巨坑 尾部必须加斜杠/ 否者登录有问题
proxy_pass http://com.xx.xxx/; #使用负载均衡
}
#通用文件上传服务
location /prod-api/upload-service/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://xxx-upload:3099/;
}
https
ssl_certificate xxx.xxxx.com_bundle.crt;
ssl_certificate_key xxx.xxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
负载均衡
#负载均衡
upstream com.xx.xxx {
server xxx:3031 weight=2;
server 10.1.0.225:3031 weight=1;
server 10.1.0.28:3031 weight=1;
}
proxy_pass http://com.xx.xxx/; #使用负载均衡
允许跨域
#Nginx配置允许跨域(解决APP端文件下载跨域问题)
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' '*';
add_header 'Access-Control-Allow-Headers' '*';
保留原始IP
# 解决“nginx转发后ip地址变为127.0.0.1”的问题
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;