Rails应用程序未在默认的80端口上运行。但是在80以外的每个端口上运行

时间:2013-02-12 08:47:08

标签: ruby-on-rails ruby apache centos passenger

我遇到了apache vhost的问题。我正在rails 2.0.2上运行centos6个应用。该应用正在 Webrick服务器上运行。现在我已经在apache中设置了虚拟主机,但问题是应用程序无法在端口80 上运行。但是它运行在80以外的其他所有端口上。

应该是什么原因?

以下是我的app.conf文件中的代码 -

  

/etc/httpd/sites-enabled/app.conf

Listen 80

<VirtualHost *:80>

 DocumentRoot /var/www/app/public
 ServerName www.domainname.com
 ServerAlias domainname.com

 ErrorLog /var/log/httpd/app/error.log
 CustomLog /var/log/httpd/app/access.log common

 <Directory /var/www/app/public>
    Allow from all
    Options -MultiViews
 </Directory>

</VirtualHost>

我已通过以下声明将此app.conf文件包含在我的httpd.conf文件中。

Include sites-enabled/*.conf

请提示我是否遗漏了 app.conf httpd.conf 文件中的内容。非常迫切。

提前致谢!

3 个答案:

答案 0 :(得分:1)

如果您同时运行apachewebrick,则他们无法同时侦听端口80.

答案 1 :(得分:1)

您可能正在端口80上运行其他应用程序,这可能实际上是您用来测试应用程序的WebRick。

使用netstat -lnptu检查使用了哪些端口,它可能表明webrick使用了这些端口,或其他东西。

您还必须以apache开始root,因为1024以下的端口只能以root访问权限打开。 (您可以在centos中更改此行为,请参阅:https://serverfault.com/questions/84360/regular-user-using-ports-below-1024

答案 2 :(得分:0)

找出端口80上正在运行的进程。

使用 -

netstat -ant

如果要打开单个端口,请使用:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

此外,您可以获得which process is lisening port 80的帮助。