配置代码片
CORS允许跨域
用于前端请求后端时接口报错 CORS
跨域,快速便捷一刀切。更推荐前端工程化开发,如(Vue/React)使用 proxy 代理请求。
可能被跨域攻击,所以更推荐用前端代理解决。
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
}
反向代理
常用于如你的后端是 node
服务,而通过 nginx
转发你的请求。
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8004;
}
反向代理CSRF验证失败
常见于反向代理中,后端是 HTTP
协议,而 Nginx
是 SSL
协议 导致的 CSRF
验证失败。
location / {
proxy_set_header Host $host;
# 表示请求是通过 SSL/TLS 传输的
proxy_set_header X-Forwarded-Ssl on;
proxy_pass http://localhost:8000;
}
上传限制 (413 ...too large)
413 request entity too large
请求体太大,超出限制
# 1. 在 http、server、location 中放
client_max_body_size 1024m
# 2. 增加连接超时时间(秒)
keepalive_timeout 120
Tip
http、server、location
是不同的作用域,按需求填入即可。
- http:全局
- server:单网站
- location:单应用