场景:
以下都是基于windows系统(ip为虚构)
1.ip:172.16.54.55需要访问172.16.54.57的接口服务,来查看机械臂的运行状况
2.存在网络隔离,172.16.54.55无法直接访问172.16.54.57
3.172.16.54.56与172.16.54.57是机械臂厂商搞得内部网络,彼此可以互通
4.172.16.54.55与172.16.54.56是外部网络,彼此可以互通
需求设计:

在172.16.54.56装一个nginx服务,进行请求转发
实操:
1.nginx服务的nginx.conf配置
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen       80;
        server_name  172.16.54.56;
		
        location / {
            proxy_pass https://172.16.54.57;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET,POST';
			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 REMOTE-HOST        $remote_addr;
			proxy_set_header X-Forwarded-Proto  $scheme;
			proxy_redirect off;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}以上两个问题需要解决:
1.跨域 因为访问172.16.54.56的是http请求,转发到172.16.54.57是https请求。存在跨域问题。
什么是跨域? http:ip:port(协议/ip(域名)/端口 三者只要有一个不一致,即存在跨域问题)
可以添加配置:
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
说明: *针对所有的ip请求 也可以指定某个例如:
add_header Access-Control-Allow-Origin http://172.16.54.56; #不写端口默认是80
2. proxy_pass https://172.16.54.57: #https请求默认端口是443 一定不要写默认端口 如果是非443端口,可以填 例如:proxy_pass https://172.16.54.57:8893
补充:
因为nginx必须要开机自动启动,可以将nginx加入到windows服务中。
参考以下配置:
windows下快速安装nginx 并配置 开机自启动 - 腾讯云开发者社区-腾讯云 (tencent.com)



















