nginx配置教程:外网访问内网Vue+SpringBoot站点

11 下载量 71 浏览量 更新于2023-05-11 1 收藏 43KB PDF 举报
"本文主要介绍如何配置Nginx以实现外网访问内网的站点,包括Vue前端和SpringBoot后端API。同时提供了一个反向代理的示例,以允许外网通过特定域名访问内网的Jenkins服务。" 在进行Nginx的外网访问内网站点配置时,首先需要理解站点的架构。在这个例子中,站点采用前后端分离的方式,前端由Vue构建,运行在内网地址192.168.1.10的81端口,而后端API由SpringBoot提供,运行在192.168.1.12的8080端口。外网用户将通过域名abc.ab.com(对应的外网IP为10.114.X.X)来访问整个站点。 **方案一:** 1. 配置Nginx监听外网域名abc.ab.com,将所有来自这个域名的请求转发到前端Vue应用的内网地址192.168.1.10:81。这可以通过在Nginx的配置文件中添加一个`server`块来实现,如下所示: ```nginx server { listen 80; server_name abc.ab.com; location / { proxy_pass http://192.168.1.10:81; } } ``` 2. 关键在于,前端应用中的API请求URL也需要从内网地址192.168.1.12:8080修改为使用外网域名abc.ab.com:8080。这通常需要在前端Vue项目中修改配置或代码,确保所有API调用指向正确的位置。 3. 修改完成后,重启Nginx服务以应用新的配置。 **补充知识:Nginx反向代理实现外网访问内网服务** 在某些场景下,如本例中的Jenkins服务,可能需要通过内网服务器B上的服务对外提供访问。这里假设服务器A有公网IP并运行Nginx,而Jenkins在服务器B的内网IP192.168.3.12的8080端口上运行。 1. 在服务器A上安装Nginx,使用`sudo apt-get install nginx`命令。 2. 编辑Nginx配置,通常在`/etc/nginx/sites-enabled`目录下的配置文件,将默认端口改为8085。 3. 在`/etc/nginx/conf.d`目录下创建`jenkins.conf`文件,内容如下: ```nginx server { listen 8085; server_name 61.174.×.×; # 替换为服务器A的公网IP location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://192.168.3.12:8080; proxy_redirect off; } } ``` 4. 检查配置文件语法正确性:`sudo nginx -t`,然后重新加载配置:`sudo nginx -s reload`。 如果在重新加载配置时遇到`nginx: [error] invalid PID number "" in "/run/nginx.pid"`的错误,可能是因为Nginx服务未正常启动或已关闭,可以尝试以root权限执行相关命令,或者先启动Nginx服务。 通过以上配置,Nginx不仅能作为Web服务器提供静态资源,还能作为反向代理,将外网请求转发到内网服务,实现内外网的通信。这种配置方法对于多个内网服务需要对外提供访问时特别有用,能够集中管理并提供安全保护。同时,Nginx还可以用于负载均衡、SSL终止等多种功能,是现代Web架构中不可或缺的一部分。