windows server 2008 R2使用nginx代理https访问,外网访问失败
问题:因为公司固定了ip,在公司服务器Windows server 2008 R2部署项目后,使用nginx代理了https,出现 使用公司的网络(局域网内)访问正常,使用外网(自己手机移动数据)访问就失败。外网映射端口也开了
ping 域名 正常
用固定的外网 ip + 端口号 访问正常
nginx配置
server {
listen 8443 ssl; #原来是 443
server_name xxx.com;
error_page 497 https:/xxx.com:8443;
ssl_certificate xxx.pem;
ssl_certificate_key xxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 上述端口指向的根目录
root xxx;
# 项目根目录中指向项目首页
index index.html;
# 根请求会指向的页面
location / {
# 此处的 @router 实际上是引用下面的转发,否则在 Vue 路由刷新时可能会抛出 404
try_files $uri $uri/ @router;
# 请求指向的首页
index index.html;
}
# 由于路由的资源不一定是真实的路径,无法找到具体文件
# 所以需要将请求重写到 index.html 中,然后交给真正的 Vue 路由处理请求资源
location @router {
rewrite ^.*$ /index.html last;
}
location /api {
# 后端的真实接口
proxy_pass http://localhost:10001;
#保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
#保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
#这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
#如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
#proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_buffering off;
}
}
最后判断是不是运营商是不是没有给开 默认的443端口,把默认的443端口改成8443 就解决了。。。
至于到底是不是运营商没有给通443端口还是其他愿意就不晓得了,总之是解决了。知情的大佬还望不吝赐教~