Ubuntu 10.10 上的 Apache 和 Nginx

Ubuntu 10.10 上的 Apache 和 Nginx

我正在运行带有三个 Apache 虚拟主机的 Ubuntu 10.10。我刚刚关注本教程介绍如何使用 PAssenger 和 nginx 在 Ubuntu 上设置 Rails 3

除 rails/nginx 外,其他一切都运行良好。当我尝试启动它时,收到以下消息:

* Starting Nginx Server...
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
   ...done.

不确定问题是什么。我必须使用 nginx 而不是 apache 吗?我现在只是个新手,所以如果任何答案考虑到这一点,我将不胜感激。

编辑

apache2ctl -S输出如下:

 default server pixelcraftwebdesign.com (/etc/apache2/httpd.conf:4)
 port 80 namevhost pixelcraftwebdesign.com (/etc/apache2/httpd.conf:4)
 port 80 namevhost opsandss.com (/etc/apache2/httpd.conf:8)
 port 80 namevhost ergo-metric.com (/etc/apache2/httpd.conf:16)
 port 80 namevhost admin.nflspot.com (/etc/apache2/httpd.conf:24)
 port 80 namevhost utcmeme.com (/etc/apache2/httpd.conf:29)
 port 80 namevhost ruby.pixelcraftwebdesign.com (/etc/apache2/httpd.conf:37)
wildcard NameVirtualHosts and _default_ servers:
*:*                    is a NameVirtualHost
         default server myServer (/etc/apache2/sites-enabled/000-default:1)
         port * namevhost myServer (/etc/apache2/sites-enabled/000-default:1)
         port 443 namevhost myServer (/etc/apache2/sites-enabled/default-ssl:2)

答案1

配置 Apache 将 Ruby 域的请求转发到 nginx,现在 nginx 正在监听端口 8000。

确保你有一个NameVirtualHost *:80地方(你可能在 中有/etc/apache2/ports.conf,因为你在 Apache 上有两个站点)。并启用 mod_proxy(a2enmod proxy)。然后添加此配置作为新的 vhost:

<VirtualHost *:80>
    ServerName ruby.website1.com
    ServerAlias website3.com
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>

答案2

您的 Apache 占用了端口 80。如果您不移动/重命名 Nginx“site-enabled/default”配置文件(最近在 1.0+ 中引入),Nginx 无论如何都会尝试在端口 80 上启动 - 即使您为 Nginx 指定了不同的监听端口。

移动/重命名文件,并在“nginx.conf”中使用“listen”指令指示不同的端口。

相关内容