线上代理本地

线上代理本地是通过网络将本地服务器或应用公开给互联网访问的过程,通常用于开发和调试目的。通过这种方式,开发者可以让远程用户或其他线上服务直接访问本地运行的服务。

技术方案

  • Ngrok 是最流行的工具之一,它通过创建一个安全的隧道,将本地服务器公开到互联网上。
  • Nginx 高级负载均衡器、Web服务器、反向代理

Ngrok

ngrok 是最流行的工具之一,它通过创建一个安全的隧道,将本地服务器公开到互联网上

使用 ngrok 暴露本地端口 启动 ngrok,将本地 8080 端口暴露给外网。

1
2
3
ngrok http 8080 # 8080 是你本地启动服务的端口

# 启动后会提供一个公网 URL,例如 https://abc.ngrok.io,其他人或服务可以通过这个地址访问你的本地服务

Nginx

安装:

1
2
sudo apt update
sudo apt install nginx

nginx 基础命令:

1
2
3
4
5
6
7
8
9
10
11
# 启动命令
sudo nginx

# 重启命令
sudo nginx -s reload

# 停止
sudo nginx -s quit 或者直接: killall nginx.

# 检查是否已经启动成功
ps -ef | grep nginx

nginx.conf

修改 nginx.conf : sudo nano /usr/local/etc/nginx/nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name example.com;

location / {
proxy_pass http://<本地IP>:8080; # 指向本地服务的IP和端口
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Host

修改 host 命令: sudo nano /etc/hosts

清除 DNS缓存 命令: sudo killall -HUP mDNSResponder

1
2
#127.0.0.1         example.com
127.0.0.1 localhost

配置完之后,浏览器上 http://example.com 就是访问的 http://<本地IP>:8080