上线有段时间的网站,突然出现问题,静态文件可以访问,但是所有接口不能访问,响应状态码: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;
网站便恢复了正常了。