Nginx转发http到https和开机自动启动
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
场景
以下都是基于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服务中。
参考以下配置