3

我正在尝试使用Go 和 Revel 框架在我的 live、personal-website.com 上运行一个简单的应用程序。

当我在本地开发并测试 localhost:8888 时一切正常。但是,在我的 Web 服务器上安装并从 root 运行我的应用程序后,# run revel personalwebsiteapp我收到以下错误:

ERROR 2013/10/01 04:01:35 harness.go:167: Failed to start reverse proxy: listen tcp xx.xxx.xx.xx:80: cannot assign requested address

在这里完全输了。我是否需要在 Revel 之上运行像 Nginx 之类的代理服务器或其他东西?

这可能是我的 conf/app.conf 文件的相关部分:

http.addr="personal-website.com"
http.port=80 #whether I set this to 80 or 8888 doesn't matter, I get the same error
4

2 回答 2

7

我可以回答我自己的问题。我最终将我的 Revel 应用程序路由到 Nginx b/c 我永远无法得到@Intermernet 的使用建议sudo revel run

下面是 nginx.conf 和 Revel app.conf 文件中的关键细节,以使这项工作正常进行。

nginx.conf

server {
        listen 80;
#       listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html; # not relevant, but gives error if root isn't set to something
        index index.html index.htm; # not relevant

        # Make site accessible from http://localhost/
#       server_name localhost;

        server_name my-personal-website.com;

                location / {
                        proxy_pass      http://127.0.0.1:9000;
                }
        }

}

Go Revel 个人网站应用 app.conf

http.addr="127.0.0.1"
http.port=9000

在此之后,只需启动 Nginx,运行您的 revel 应用程序和 viola!,http://my-personal-website.com现已上线。

于 2013-10-03T13:47:27.630 回答
1

您可能需要以 root 身份运行(使用sudo)来侦听端口 80,因为它是Privileged Port

sudo run revel personalwebsiteapp

对于 8888 端口,您可能需要修改 SELinux 规则。

就像是:

semanage port -a -t http_port_t -p tcp 8888
于 2013-10-01T05:28:28.720 回答