子域名解析到通用外网服务器,再由Nginx 代理到内网IP的服务器上
不能用 rewrite 、 return
location /h5/ {
#rewrite ^/h5(.*)$ http://192.168.21.4:9006$1 permanent;
rewrite ^/h5(.*)$ http://219.148.59.51:9006$1 permanent;
}
和
location /h6/ {
return 301 http://192.168.21.4:9006$request_uri;
}
会改变 浏览器地址栏,
- 是会改变地址栏,会把定向后的内网IP ,直接替换地址栏,访问不通,
- 是 如果是微信扫描二维码 ,会有微信提示框。
得用代理 proxy_pass
location / {
proxy_pass http://192.168.21.4:9006/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 添加 CORS 头
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
# 重定向 貌似不行,会改变地址栏,会把定向后的内网IP ,直接替换地址栏,访问不通
#return 301 http://192.168.21.4:9006$request_uri;
}
location /h7/ {
proxy_pass http://192.168.21.4:9006/;
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_set_header X-Forwarded-Proto $scheme;
proxy_redirect default;
# 添加 CORS 头 如果是H5页面,代理后的192.168.21.4:9006/xxx/abc.css 会跨域, F12 控制台
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}