Nginx外网访问内网如何实现

1、背景

        项目要求:将甲方内网的项目能够对外访问,甲方提供一个中间过渡服务器,中间过渡服务器与外网互通,且中间服务器可以访问内网;

        外网客户端->中间过渡服务器开放端口:80

        中间过渡服务器->内网服务器开放端口:80、9095

2、系统环境

        系统架构:Vue + SpringBoot 

        服务器:

                1、外网可以访问的服务器且此服务器可以访问到外网;

                2、内网3台服务器,1台跳转服务器【用于做负载】,2台应用服务器;

3、配置步骤

        1、这样配置的必要性

        外网浏览器与内网是不通的,但是外网与中间过渡服务器是通的,中间过渡服务器与内网服务器是通的,这样在外网访问过渡服务器时,过渡服务器再跳转到后台服务器,相当于外网浏览器给内网后台服务器发送的请求,这样肯定是不通的,所以当外网浏览器访问中间过渡服务器时,中间过渡服务器做了一个代理,然后跳转到内网服务器,相当于中间过渡服务器发送的请求,这样就可以实现外网访问内网的功能了!

        2、nginx.conf

server {
        listen       8282;
        server_name  127.0.0.1;
        charset utf-8;

        location / {
            root  dist/;                                       #前端配置路径,自行修改
            try_files $uri $uri/ /index.html last;   
            index index.html;
        }
        
        location /dev-api/ {                              #后台配置的代理服务器
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:9095/;   #配置的是后台内网的API地址
        }


  

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现Nginx外网访问内网API,可以采用反向代理的方式。 首先,需要在内网中启动API服务器,并确保其能够在内网环境中正常访问和运行。可以使用任何喜欢的编程语言或框架来编写和部署API服务。 接下来,在位于外网的服务器上安装和配置NginxNginx是一个高性能的HTTP和反向代理服务器,可以将外部请求转发到内部API服务器。 首先,需要配置Nginx的基本设置。可以在Nginx的主配置文件中定义服务器的监听端口、域名和其他相关设置。 然后,在Nginx的配置文件中定义反向代理规则,将外网请求转发到内网API服务器的相应地址和端口。可以使用下面的配置示例: ``` server { listen 80; server_name api.example.com; location / { proxy_pass http://内网API服务器的IP地址:端口号; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 在这个配置示例中,Nginx会监听80端口,并将来自api.example.com域名的请求转发到内网API服务器的对应地址和端口。同时,还设置了一些代理服务器的头信息,以确保内网API服务器能够正确获取客户端的信息。 最后,保存并重新加载Nginx的配置文件,使其生效。可以使用以下命令: ``` sudo nginx -s reload ``` 完成上述步骤后,就可以通过外网访问api.example.com来访问内网API了。Nginx会将外部请求转发到内网API服务器,然后将响应返回给客户端。 需要注意的是,为了确保安全性,可以考虑在Nginx中启用SSL证书,配置HTTPS访问。这样可以对外网访问内网API的通信进行加密,提高数据的安全性。 ### 回答2: Nginx 是一个高性能的开源Web服务器软件和负载均衡器,它通常用于将外部请求转发到内部服务器上的应用程序。要使用Nginx实现外网访问内网API,可以通过以下几个步骤完成。 首先,您需要在内网中部署一个API服务器。这个服务器可以是运行在本地计算机上,也可以是运行在局域网中的某台服务器上。确保API服务器已经配置并可以从内部网络访问。 然后,您需要在具有公网IP的服务器上安装和配置Nginx。这台服务器可以是专门为此目的购买的,或者是您已经拥有并且可以从互联网访问的服务器。 接下来,您需要在Nginx的配置文件中添加一个代理配置,将外部请求转发到内网API服务器。在Nginx的配置文件中,您可以使用`proxy_pass`参数指定内网API服务器的IP地址和端口号,如下所示: ``` location /api { proxy_pass http://内网API服务器的IP地址:端口号; } ``` 保存并重启Nginx,使配置生效。 最后,您可以通过使用Nginx服务器的公网IP地址和端口号来访问内网API。只需在浏览器中输入`http://公网IP地址:端口号/api`即可访问。 需要注意的是,在实际部署过程中,还需要根据具体情况进行一些其他配置,例如负载均衡、安全认证等。这样才能确保外网访问内网API的安全和稳定性。 总结来说,使用Nginx实现外网访问内网API是一种常见的解决方案,它可以帮助实现外网的互通,方便外部用户访问内部的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值