需求上需要iframe嵌入台州天气网的界面,于是配置了反向代理,源地址:http://www.tz121.com/index.php
nginx配置:
server {
# 【*】部署端口 - 注意不要和别的端口冲突
listen 20005;
# 【*】应用名称 - 注意不要和别的应用冲突
server_name tzyj_web;
root D:/strongsoft/02_main/Web;
# 【*】防止页面嵌套
#add_header X-Frame-Options SAMEORIGIN;
#large_client_header_buffers 4 10m;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
#文件最大大小
client_max_body_size 1000m;
# 天气信息
location /tztq/ {
proxy_set_header Accept-Encoding '';
proxy_pass http://www.tz121.com/;
sub_filter http://www.tz121.com/ /tztq/;
sub_filter https://hm.baidu.com/ /hm_baidu/;
sub_filter "http://webrd0{1-4}.is.autonavi.com/" "/webrd_0{1-4}/";
sub_filter http://news.weather.com.cn /weather/;
sub_filter_once off;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 后台管理
rewrite ^/admin /pages/admin.html;
# 展示页面
rewrite ^[^\.]+$ /pages/index.html;
# 默认定向
#try_files $uri $uri/ /index.html;
}
# 以下用于进行重定向
set $flag_second "0";
# 判断请求是否从webapps.shui00.com/second这个地址发出的
if ($http_referer ~* "http://122.226.177.37:8899/second/") {
set $flag_second "${flag_second}1";
}
# 判断页面是否已经包含second这个虚拟目录了
if ($request_uri !~* "second/") {
set $flag_second "${flag_second}2";
}
# 如果请求不是get,不能用rewrite重定向,否则会导致请求变成get
if ($request_method != GET) {
set $flag_second "${flag_second}3";
}
# 将请求指向second这个虚拟目录
if ($flag_second = "012") {
rewrite ^(.*) $scheme://$host/second$1;
}
# 状态码307表示请求方法不变,页面会再次以post、delete、put发起请求
if ($flag_second = "0123") {
return 307 $scheme://$host/second$request_uri;
}
出现的问题:
隔二十分钟左右,该代理就会失效,重启就能解决。
nginx报错:
2022/01/26 17:18:40 [error] 20296#19024: *473 connect() failed (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream, client: 172.26.222.122, server: tzyj_web, request: "GET /tztq/index.php HTTP/1.1", upstream: "http://36.134.58.187:80/index.php", host: "10.49.146.68:20005", referrer: "http://10.49.146.68:20005/17eh%22