具有非本地活动站点的Go Revel框架

我正在尝试使用使用Go and the Revel框架在我的个人网站site.com上运行一个简单的应用程序。</ p>

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

  ERROR 2013/10 /  01 04:01:35julia.go:167:无法启动反向代理:监听tcp xx.xxx.xx.xx:80:无法分配请求的地址
</ code> </ pre>

这里全亏。 我是否需要运行诸如Nginx之类的代理服务器或Revel之上的某个服务器? </ p>

以下是我的conf / app.conf文件的相关部分:</ p>

  http.addr =“ personal-website。  com“ 
http.port = 80#不管设置为80还是8888都没关系,我会收到相同的错误
</ code> </ pre>
</ div>

展开原文

原文

I'm trying to use Go and the Revel framework to run a simple app on my live, personal-website.com.

Everything is ok when I develop locally and test localhost:8888. However after installing on my web server and running my app from root, # run revel personalwebsiteapp I get the following error:

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

At a total loss here. Do I need to run a proxy server like Nginx or something on top of Revel?

Here's what could be a relevant part of my conf/app.conf file:

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

duannei1477
duannei1477 stackoverflow.com/questions/413807/...
接近 7 年之前 回复
dpi10335
dpi10335 您正在运行什么操作系统?如果是Linux,请尝试使用sudo启动该应用程序。
接近 7 年之前 回复

2个回答



我可以回答自己的问题。 我最终将我的Revel应用程序路由到Nginx b / c,我从没收到@Intermernet关于使用 sudo revel run </ code>起作用的建议。</ p>

下面是关键细节 从nginx.conf和Revel app.conf文件中删除文件。</ p>

nginx.conf </ h2>

 服务器{
听80 ;
#监听[::]:80 default_server ipv6only = on;

root / usr / share / nginx / html; #不相关,但是如果没有将root设置为
,则会报错
index index.html index.htm; #不相关

#使站点可从http:// localhost /
#server_name localhost;

server_name my-personal-website.com;

位置/ {
proxy_pass http:/ /127.0.0.1:9000;
}
}

}
</ code> </ pre>

Go Revel personalwebsiteapp app.conf </ h2>

< pre> http.addr =“ 127.0.0.1”
http.port = 9000
</ code> </ pre>

此后,只需启动Nginx,运行您的狂欢应用程序并 中提琴!, http://my-personal-website.com 现已上线。</ p> \ n </ div>

展开原文

原文

I can answer my own question. I ended up routing my Revel app to Nginx b/c I could never get @Intermernet's suggestion of using sudo revel run to work.

Below are the key details from the nginx.conf and Revel app.conf files to make this work.

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 personalwebsiteapp app.conf

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

After this, just start up Nginx, run your revel app and viola!, http://my-personal-website.com is now live.



您可能需要以root身份运行(使用 sudo </ code>)以监听端口80,因为它是特权端口。</ p>

   sudo run revel personalwebsiteapp 
</ code> </ pre>

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

类似以下内容:</ </ p>

 管理端口-a -t http_port_t -p tcp 8888 
</ code> </ pre>
</ div>

展开原文

原文

You probably need to run as root (use sudo) to listen on port 80 as it's a Privileged Port.

sudo run revel personalwebsiteapp

For port 8888, you may need to modify the SELinux rules.

Something like:

semanage port -a -t http_port_t -p tcp 8888

dongliao8069
dongliao8069 请参阅Github进一步讨论此问题github.com/robfig/revel/issues/331
接近 7 年之前 回复
douhun8647
douhun8647 是的,注释掉root仍然没有用。 我将在“ Revel Github”页面上摆出这个姿势,看看它们是否会鸣响……
接近 7 年之前 回复
doushuzd3033
doushuzd3033 好决定。 可以肯定,您不需要root。 您只需将流量传递到Go Web服务器,而无需知道文件的位置。 尝试将其注释掉,看看它如何进行。
接近 7 年之前 回复
douping3860
douping3860 我认为问题出在根本上,但无法弄清楚如何证明这一点
接近 7 年之前 回复
douxin2003
douxin2003 dangit no go still:错误2013/10/01 08:18:52jule.go:167:无法启动反向代理:监听tcp xx.xxx.xx.xx:8888:无法分配请求的地址
接近 7 年之前 回复
dongyan2469
dongyan2469 尝试在第一行的http和{之间添加一个空格,然后从位置行中删除〜,甚至注释掉索引行。 使调试尽可能简单。 当涉及到确切的语法时,NginX可能会非常挑剔。
接近 7 年之前 回复
douwen7331
douwen7331 我想我理解了大多数示例,但是对于Revel应用程序中的根和索引,我感到困惑。 你能检查我更新的Gist吗? (尚不可用,为清晰起见,省略了非常顶部的部分)。
接近 7 年之前 回复
doukao5073
doukao5073 看看wiki.nginx.org/FullExample。 您实际上只需要顶部和“反向代理”部分。
接近 7 年之前 回复
dongsui3297
dongsui3297 感谢您在GOBIN上的提示。 好的,尝试弄清楚如何将Revel连接到Nginx。 我不是NGINX专家。 有任何演示nginx.conf吗? 这个要点对我来说不是很有效... gist.github.com/tim-peterson/6774608
接近 7 年之前 回复
dongzen5577
dongzen5577 不是,但是正如我在回答中所说,这是一个更好的解决方案。 您的GOPATH和GOBIN环境变量可能存在“问题:找不到命令”的问题。
接近 7 年之前 回复
dongpin4611
dongpin4611 NGINX似乎不是必需的:stackoverflow.com/questions/17776584/…
接近 7 年之前 回复
douken0530
douken0530 在这种情况下,我强烈建议您使用NginX或HAProxy。
接近 7 年之前 回复
donglianjiang9321
donglianjiang9321 谢谢你的建议。 我实际上是作为root运行的,很抱歉缺乏说明。 我更新了我的问题。 但是仅出于完整性考虑,由于未找到-bash:revel:命令,因此sudo run revel personalwebsiteapp无法正常工作。 我想使用端口80而不是8888,因为personal-website.com而不是personal-website.com:8888是外部用户查找页面的常用方法。
接近 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐