我有一台 Raspberry Pi,上面正在运行一些应用程序,需要我访问 Web 界面。
我想知道如何通过自定义域从我的家庭网络外部连接到这些 Web 界面。
举例来说,我想要heywhatsmypidoing.com/webmin
访问我的 webmin,我通常会通过 来访问它192.168.0.1:10000
。
我已经有域名了,但不知道下一步该去哪儿。
答案1
你想要一个反向代理基本上,你需要设置一个 Web 服务器(在你的 Pi 上或其他地方),例如 阿帕奇或者Nginx监听端口 80 (http) 并有特殊条目指向您的本地服务 IP/端口。在 Apache 中,这可能看起来像这样:
<VirtualHost *:80>
Server Name heywhatsmypidoing.com
# ServerAlias www.heywhatsmypidoing.com
DocumentRoot "/www/example1"
# ProxyPreserveHost On
ProxyPass /webmin http://192.168.0.1:10000
ProxyPassReverse /webmin http://192.168.0.1:10000
# Other directives here
</VirtualHost>
无论选择哪种方式,您都应该能够找到一些教程来帮助您为 Pi 设置 Apache 或 Nginx。我建议先设置一个基本的公开可用的 Web 服务器,并确保它在尝试任何类型的代理之前可以正常工作。
笔记
虽然端口转发可以与反向代理结合使用,但它不是必需的(端口 80 可能除外)。
在某些情况下,您可能需要为同一个应用程序代理多个 URL(例如 http://192.168.0.1:10000和192.168.0.1:10000/网络)
尾部斜杠可能很重要。对于 Apache 来说,这尤其适用于上例中的第二个参数。我不知道 webmin 需要什么,但某些应用程序可能需要,例如http://192.168.0.1:10000或者http://192.168.0.1:10000/视情况而定。