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端口还是其他愿意就不晓得了,总之是解决了。知情的大佬还望不吝赐教~

更多推荐