Назад | Перейти на главную страницу

Apache и Nginx в Ubuntu 10.10

Я запускаю Ubuntu 10.10 с тремя виртуальными хостами apache. Я просто следил это руководство по настройке Rails 3 на Ubuntu с помощью PAssenger и nginx.

Все работает нормально, кроме 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)

У вас есть Apache, занимающий порт 80. Если вы не переместите / не переименуете файл конфигурации Nginx 'site-enabled / default' (недавно представленный в версии 1.0+), Nginx попытается не запуститься на 80-м порту, несмотря ни на что - даже если вы укажете другое прослушивание порт для Nginx.

Переместите / переименуйте файл и укажите другой порт с помощью директивы listen в вашем nginx.conf.

Настройте Apache для пересылки запросов для доменов Ruby на 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>