是否可以在Golang中处理多个域?

ahm*_*drz 1 dns webserver http go

我想用Golang处理多域.

像这样,如果浏览器发送请求http://sampledomain.me使用特定的Golang程序处理它,

在其他情况下,我想在一台服务器上安装许多程序并告诉每一台程序,以处理每个域.

所有程序都在监听80,而许多域指向一台服务器.

有谁能够帮我 ?

谢谢...

Col*_*son 5

你的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;
        }

}
Run Code Online (Sandbox Code Playgroud)