英文:
Forward server API to another port using Beego
问题
我在同一台虚拟机上运行了两个 Web 应用程序。一个是 Beego,监听端口 443,另一个是 Centrifugo 消息服务器,监听端口 8000。
如果某个用户由于其 ISP 的限制无法连接到端口 8000,我是否可以将 https://my.domain/chat_api(由 Beego 拦截在端口 443 上)转发到 https://my.domain:8000/chat_api(由 Centrifugo 在端口 8000 上提供服务),这样我的聊天客户端就可以像连接端口 8000 一样连接到端口 443 吗?如果可以,我该如何在 Beego 的结构下实现这一点?
英文:
I have two web apps running in the same virtual machine. One is Beego listening to port 443, and another is Centrifugo messaging server at port 8000.
If a user is not allowed to connect port 8000 due to his ISP, is it possible that I forward https://my.domain/chat_api (intercepted by Beego at port 443) to https://my.domain:8000/chat_api (served by Centrifugo at port 8000), so that my chat client connects port 443 just like connecting port 8000? If yes, how do I implement under Beego's structure?
答案1
得分: 1
你不需要在Beego中实现这个。只需设置一个反向代理即可(以下是使用nginx设置反向代理的示例):
server {
listen 443;
server_name example.com;
location /chat_api {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8000";
}
location /beego {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8080";
}
}
请注意,这是一个nginx的配置示例,用于将请求转发到指定的后端服务器。你需要将其中的example.com
替换为你的域名,并根据实际情况修改代理的目标地址。
英文:
You dont need to implement this in Beego.
Just set up a reverse proxy: (here is an example how to set up a reverse proxy with nginx)
server {
listen 443;
server_name example.com;
location /chat_api {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8000";
}
location /beego {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8080";
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论