Я запускаю 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>