利用 Nginx 反向代理使得可在 Windows 主机访问 Linux 虚拟机的 http 服务

利用 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

  1. How to Install Nginx on CentOS 7, https://www.tecmint.com/install-nginx-on-centos-7/
  2. 本地浏览器如何访问虚拟机下nginx启动页(2),https://jingyan.baidu.com/article/8ebacdf00bb81749f65cd5ac.html
  3. CentOS 7.X 关闭SELinux,https://www.cnblogs.com/activiti/p/7552677.html

Contributor

  1. 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 激活配置。

你可能感兴趣的:(利用 Nginx 反向代理使得可在 Windows 主机访问 Linux 虚拟机的 http 服务)