1:现场服务器是使用负载均衡链接了一个外网地址,刚开始项目部署使用是没有问题的,用了一段时间报错,发现通过前端的程序访问后端,报错,访问不通,但是直接浏览器访问,或者通过postman工具都是可以的。
这个问题可能是因为 ,外网之间两个端口访问达到了一定的安全限制数量,就不让访问了,就产生了跨域,为了解决这个问题,我用了nginx反向代理,代理前端的程序,和后端的程序,请求统一从nginx进行转发。同一个端口的请求就不会产生跨域问题了
nginx 配置如下:
server {
listen 8001;
server_name 101.39.152.197;
#charset koi8-r;
#access_log logs/host.access.log main;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#代理后端的程序请求 101.39.152.197:8001/api/login 就可以访问到后端程序的接口,所以前端访问后端地址要改成这个
location ^~/api/ {
proxy_pass http://127.0.0.1:8888/;
proxy_set_header Host $host;
}
#加载对应的静态文件 101.39.152.197:8001/*.括号的静态文件
location ~*.(png|gif|vue|css|js|jpg|woff|tff)$ {
proxy_pass http://101.39.152.197:8000;
}
#代理前端程序的请求101.39.152.197:8001/#/ 访问这个
location / {
proxy_pass http://101.39.152.197:8000;
proxy_set_header Host $host;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}