前言:记录nginx
配置时出现的问题及解决方法
禁止重定向
访问的nginx配置为/api/ 后端接口时,还有一个是访问到主页 ,如果我们通过浏览器发送get请求 /api/***时,请求接口找不到后,他在第一个找不到的时候会按顺序找下面的,按下方的写法,这样他会跳转至首页页面,但是我们需要让他返回/api/对应的接口值
未修改前的配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| # HTTPS server # server { #小程序接口 location /api/ { rewrite ^/api/(.*) /$1 break; proxy_pass http://ip:端口/; } #主页 location / { proxy_pass http://ip:端口/home/; } }
|
修改之后的配置,在对应的转发里添加proxy_redirect off;
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # HTTPS server # server { #小程序接口 location /api/ { rewrite ^/api/(.*) /$1 break; proxy_pass http://ip:端口/; proxy_redirect off; } #主页 location / { proxy_pass http://ip:端口/home/; } }
|
这样的话,当请求https://changruyi.com/api/word/getRandomWord 不会跳转到https://changruyi.com/
将客户端的真实 IP 地址传递给后端应用程序
在请求后端接口的时候,接口由客户端发送到服务器通过nginx,转发到后端接口,后端获取ip会直接获取到服务器的ip地址,需要将客户端的真实ip传递给后端
修改前
1 2 3 4 5
| location /api/ { rewrite ^/api/(.*) /$1 break; proxy_pass http://ip:端口/; proxy_redirect off; }
|
修改后
1 2 3 4 5 6 7 8 9
| location /api/ { rewrite ^/api/(.*) /$1 break; proxy_pass http://ip:端口/; proxy_redirect off; # 将客户端的真实 IP 地址传递给后端应用程序 proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; }
|