利用 Nginx 反向代理使得可在 Windows 主机访问 Linux 虚拟机的 http 服务
1. 前置信息
假设虚拟机 IP 地址为 192.168.56.101。
在虚拟机上,下列命令可获得对应输出。
curl http://localhost:8888/v1/chain/get_info
现在,想在 Windows 主机上通过浏览器访问 http://localhost:808/v1/chain/get_info 获得输出。
注意,这里将 808 端口映射为 8888。
2. 设置反向代理
这可以通过在虚拟机上配置 nginx 反向代理来实现。如:把反向代理的端口设置为 808,就可以通过 http://192.168.56.101:808 来访问。
nginx.conf
server {
listen 808;
location / {
proxy_pass http://localhost:8888
}
}
3. 打开防火墙的对应端口 808
sudo firewall-cmd --zone=public --add-port=808/tcp --permanent
sudo firewall-cmd --reload
4. 在 Windows 上通过浏览器访问
在 Windows 上通过浏览器访问 http://localhost:808/v1/chain/get_info,即可获得对应输出。
Reference
- How to Install Nginx on CentOS 7, https://www.tecmint.com/install-nginx-on-centos-7/
- 本地浏览器如何访问虚拟机下nginx启动页(2),https://jingyan.baidu.com/article/8ebacdf00bb81749f65cd5ac.html
- CentOS 7.X 关闭SELinux,https://www.cnblogs.com/activiti/p/7552677.html
Contributor
- Windstamp, https://github.com/windstamp
附录 1. Nginx
1.1 Nginx 安装
1.2 Nginx 的启动
1.2.1 启动
nginx
1.2.2 重启
nginx -s reload
1.2.3 状态
nginx -s status
附录 2. 防火墙配置
防火墙的具体配置命令什么的和 Linux 系统分支及其版本有关。这里是 CentOS 7.
2.1 关闭防火墙和 SELinux
2.1.1 查看状态
setstatus
2.1.2 临时关闭
setenforce 0
2.1.3 永久关闭
sudo vim /etc/selinux/config
SELINUX=disabled
关闭之后,需要 reboot 重启之后才能生效。
2.2 打开对应端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=808/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
注意,打开对应端口之后,需要执行 sudo firewall-cmd --reload
激活配置。
网友评论