当您想要通过内网穿透(如使用frp、ngrok等工具)实现公网访问多个本地Web站点,并且这些站点都由Nginx进行反向代理或负载均衡时,您需要做几个关键的配置步骤。以下是一个基本的指南:
![图片[1]_通过Nginx配置与内网穿透技术实现多个本地Web站点的公网访问_知途无界](https://zhituwujie.com/wp-content/uploads/2024/05/d2b5ca33bd20240508114721.png)
1. 设置本地Nginx
首先,确保您的Nginx已经安装并配置好以代理多个本地Web站点。这通常涉及在Nginx配置文件中(通常是/etc/nginx/nginx.conf
、/etc/nginx/sites-available/
或/etc/nginx/conf.d/
目录下的某个文件)为每个站点设置一个server
块。
例如:
server {listen 80;server_name site1.local;location / {proxy_pass http://localhost:8080; # 假设这是第一个站点的本地端口proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}server {listen 80;server_name site2.local;location / {proxy_pass http://localhost:8081; # 假设这是第二个站点的本地端口# ... 其他proxy_set_header指令 ...}}server { listen 80; server_name site1.local; location / { proxy_pass http://localhost:8080; # 假设这是第一个站点的本地端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name site2.local; location / { proxy_pass http://localhost:8081; # 假设这是第二个站点的本地端口 # ... 其他proxy_set_header指令 ... } }server { listen 80; server_name site1.local; location / { proxy_pass http://localhost:8080; # 假设这是第一个站点的本地端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name site2.local; location / { proxy_pass http://localhost:8081; # 假设这是第二个站点的本地端口 # ... 其他proxy_set_header指令 ... } }
2. 配置内网穿透
使用您选择的内网穿透工具(如frp)在本地和远程服务器上设置穿透。您需要为每个想要穿透的本地服务配置一个单独的穿透规则。
本地(frpc配置文件示例):
[web1]type = httplocal_port = 8080custom_domains = site1.yourdomain.com[web2]type = httplocal_port = 8081custom_domains = site2.yourdomain.com[web1] type = http local_port = 8080 custom_domains = site1.yourdomain.com [web2] type = http local_port = 8081 custom_domains = site2.yourdomain.com[web1] type = http local_port = 8080 custom_domains = site1.yourdomain.com [web2] type = http local_port = 8081 custom_domains = site2.yourdomain.com
注意:这里的custom_domains
是您为每个站点在公网上设置的域名。您需要在DNS提供商处设置这些域名以解析到您的远程服务器IP。
远程(frps配置文件示例):
确保您的远程服务器(frps)允许来自本地的连接,并监听正确的端口。
3. 在远程服务器上设置反向代理(可选)
如果您的远程服务器也运行Nginx,并且您希望在那里设置反向代理以将请求转发到本地穿透的服务,您可以为每个站点设置一个server
块。但请注意,这通常不是必需的,因为frp等工具已经处理了请求转发。
4. 测试配置
在修改了任何配置文件后,确保重新加载或重启Nginx和frp服务以使更改生效。然后,使用公网上的域名访问您的站点,并检查它们是否按预期工作。
5. 注意事项
- 确保您的本地防火墙和网络设置允许Nginx和frp服务监听所需的端口。
- 如果您的站点使用HTTPS,请确保您的证书和配置在Nginx和frp中都设置正确。
- 始终备份您的配置文件,以便在出现问题时可以轻松还原。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
暂无评论内容