玩树莓派遇到的问题,自己查了很久资料没搞定,求求论坛的各位大神指点!
设备是树莓派,用了花生壳的内网穿透,免费版只提供两个端口,SSH 用掉一个 22 端口,现在只剩一个端口了。
我有如下服务:
http://localhost:8888
http://localhost:6800/jsonrpc
http://localhost:5299
http://localhost/aria-ng
受到 Aria-NG 的启发,所以我在想能不能用 Nginx 实现如下转发:
http://localhost/jupyter
http://localhost/jsonrpc
http://localhost/xxx
http://localhost/aria-ng
我查到 Nginx 的默认端口是 80,如果上面可以实现的话,或许就可以只用一个 80 端口来使用多个服务。(应该是可以的,我之前试了 80 端口,用 外网域名:外网端口 /aria-ng
可以访问 Aria-NG,但是因为 Aria2 的 RPC 在 6800,所以只有 Aria-NG 的界面,没法实际使用。)
在/etc/nginx/nginx.conf
中,进行如下修改:
html {
......
server {
listen 80;
server_name localhost;
# Jupyter Notebook
location /jupyter {
proxy_pass http://localhost:8888;
......
}
# Aria2 JSONRPC
location /jsonrpc {
proxy_pass http://localhost:6800/jsonrpc;
......
}
# XXX
location /xxx {
proxy_pass http://localhost:5299;
......
}
}
重启 nginx 服务后,在树莓派上访问localhost/jupyter
,错误 404 。局域网访问或外网访问自然也失败了。
查到的资料基本上都是一个端口或域名转发到另一个端口或域名的,基本没有我这里的多个端口转发到同一端口的不同目录。还有一些用到了 stream 模块,但也是局域网内的端口对端口。只有这个帖子比较像: https://www.imooc.com/wenda/detail/510191 ,但是没有详细答案。
当然,这个问题不用花生壳就能解决了,但还是好奇,上面提的方案有没有实现的可能性?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.