我想用 Golang 处理多域。
像这样,如果浏览器发送请求 http://sampledomain.me用特定的 Golang 程序处理它,
在其他情况下,我希望在一台服务器上运行多个程序并告诉每个程序处理每个域。
所有程序都在 80 上监听,许多域指向一台服务器。
有人可以帮我吗?
谢谢...
最佳答案
你的 Go 程序不能全部监听 80 端口。你需要在前面加上一些东西,比如 nginx , 作为反向代理。以下 nginx 配置摘录会将两个域转发到两个不同的程序,每个程序监听不同的端口:
server {
listen 80;
server_name www.domain1.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_read_timeout 600s;
}
}
server {
listen 80;
server_name www.domain2.com;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_read_timeout 600s;
}
}
关于http - 是否可以在 Golang 中处理多个域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39952707/