腾讯云主机上的Nginx代理阿里云主机上的接口时,出现403 forbidden

上线有段时间的网站,突然出现问题,静态文件可以访问,但是所有接口不能访问,响应状态码:403。以下是nginx配置

    server {
        listen       80;
        server_name  wb.xxx.com;
        location /api/ {
        proxy_pass http://xxx.xxx.xxx.xxx:9901/;
        proxy_redirect default;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 10m; 
        client_body_buffer_size 128k; 
        proxy_connect_timeout 90;
        proxy_read_timeout 90;
        proxy_buffer_size 4k; 
        proxy_buffers 8 64k; 
        proxy_busy_buffers_size 128k; 
        proxy_temp_file_write_size 1024k; 
        }
        
        location / {
           root web-view/wb/;
           try_files $uri $uri/ /index.html;
           index index.html;
        }
    }

百度两小时后,毫无进展。而且,使用 curl http://xxx.xxx.xxx.xxx:9901/ 直接访问接口地址却是可以访问的。
正在无限纠结的时候,无意间点开接口响应,发现如下内容:
在这里插入图片描述
访问上面的地址 http://batit.aliyun.com/alww.html
在这里插入图片描述
然后又百度了 TestPage184 :出现TestPage184主要有3种情况:一、没有备案;二、不是在阿里云备案的;三、备案号刚下来,数据还没有同步。

然后反应过来,接口可能是被阿里云墙掉了,因为域名解析的IP地址和网站的备案的地址是在腾讯云上,只有业务接口是部署在阿里云的主机上的。
但是CURL 又是可以访问,所以问题应该还是出在Nginx的配置上,最后测试发现,注释掉 :

proxy_set_header Host $host;
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐