nginx 反向代码后,验证码不显示

问题描述:A服务做反向代码服务器,需求是代码B的访问,配置完成后,验证码没有显示

nginx 配置如下:

##http 代码段
upstream reports{server B服务IP加端口 weight=4 max_fails=2 fail_timeout=30s;ip_hash;
}server {listen 80;server_name **;   //A服务IP   location /report {proxy_pass http://reports;proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host:$server_port;proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;proxy_http_version 1.1;}

初次配置如上,验证码无法访问。

查看验证码的访问方式

是BASE64编码,前台获取到编码后,再转图片。此时的路径是 B服务IP/api**,而不是B服务IP/report*,所以无法请求到对应编码,方法调用不通。查看nginx 错误日志也可以发现此问题。

2020/05/12 14:26:10 [error] 21601#0: *150 open() "/usr/local/nginx/api/app/b/v1/user/login/get/image/code" failed (2: No such file or directory), client: 10.25.11.10, server: B服务IP, request: "GET /api/app/b/v1/user/login/get/image/code?_t=1589264769 HTTP/1.1", host: "B服务IP", referrer: "B服务IP/report/"

因为nginx中没有配置B服务/api*  ,所以NGINX在本地查找相关文件,是找不到的。

所以只需要在配置中新增一个B服务/api*的访问代码即可。

 location /api {proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass B服务IP加端口;}

至此,问题解决。

注:本地文件代理;root和alias 远程代理:proxy_pass

 

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部