是否可以在同一个域中的ngrok中打开多个端口?
类似的东西:
Fowarding http://example.ngrok.com:50001 - > 127.0.0.1:50001
Fowarding http://example.ngrok.com:50002 - > 127.0.0.1:50002
我在Windows中工作,它对于使用IIS Express
答案 0 :(得分:24)
是的,可以在hostname
!
您需要做的就是在配置文件中声明它们,如下所示:
authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p
tunnels:
first-app:
addr: 50001
proto: http
hostname: example.ngrok.com
host_header: first-app.example.ngrok.com
second-app:
addr: 50002
proto: http
hostname: example.ngrok.com
host_header: second-app.example.ngrok.com
用以下方式运行它们:
ngrok start --all
查看文档中的选项,例如hostname
,subdomain
,authtoken
和host_header
。希望这能帮到你!
P.S 对于免费计划,请删除自定义主机和标题部分 像这样它将是不同的领域,仅供参考。
authtoken: 6yMXA63qefMZqCWSCHaaYq_5LufcciP1rG4LCZETjC6V
tunnels:
first:
addr: 3002
proto: http
second:
addr: 8080
proto: http
要查找默认配置文件,请阅读https://ngrok.com/docs#default-config-location所有计划都会获得一个身份验证令牌,您可以在网络信息中心https://dashboard.ngrok.com/get-started
找到您的令牌答案 1 :(得分:2)
因此,我遇到了一个问题,我需要相同域的源策略才能在不同的端口上工作,但是由于最终ngrok不支持此操作,所以我停了下来。它们支持自定义子域或自定义域,但不支持不同的端口,因为所有都必须通过端口80 。
而不是退出,我不得不像这样在本地使用nginx 一起入侵:
http {
server {
listen 7777;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:5000;
}
location /api {
proxy_pass http://127.0.0.1:8000;
}
}
}
我很幸运api服务器在所有调用前面都加上了“ api”,因此我可以将api调用路由到特定端口,并且仍然在另一台Web服务器上提供其他流量,因此您可能不太幸运。
然后我将公共Web服务器配置为将所有api调用路由到相同的ngrok地址,并让ngnix对其进行排序。
我希望这可以帮助您考虑到解决方案的组合,因为只有一种方法可能会使您陷入困境。
答案 2 :(得分:2)
我在ngrok进程(在保留域上)上使用了本地端口80。
ngrok http 80
在本地,我让nginx运行以下配置。对我而言唯一重要的是2个位置/ admin和/ api,因为这是我以前使用多个ngrok过程的位置。 nginx允许您将同一隧道用于不同的位置。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name _;
location /admin {
proxy_pass http://127.0.0.1:3005;
}
location /api {
proxy_pass http://127.0.0.1:5001;
}
}
答案 3 :(得分:0)
转到这些位置:
然后在记事本中打开 yml 文件并粘贴下面的代码并保存。
authtoken: your_token
tunnels:
first:
addr: 3002
proto: http
second:
addr: 8080
proto: http
现在转到您的 ngrok 位置并运行 ngrok start --all