Я хотел бы обслуживать несколько сайтов на одном экземпляре.
Я устанавливаю nginx, php-fpm и приложение rails. я использую сайты, подобные этому, чтобы направлять меня.
Я настраиваю php-fpm для прослушивания локального сокета
listen = /var/run/php-fpm/php-fpm.sock
Я настраиваю ngnix с несколькими хостами:
include /etc/nginx/conf.d/*.conf
У меня есть несколько файлов php conf сайта, например /etc/nginx/conf.d/site1.conf
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1;
access_log /var/log/nginx/site1.com-access.log;
error_log /var/log/nginx/site1.com-error.log;
location / {
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
и файлы конфигурации сайта rails, такие как
upstream rails {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name site2.com www.site2.com;
access_log /var/log/nginx/site2.com-access.log;
error_log /var/log/nginx/site2.com-error.log;
root /var/www/site2;
location / {
proxy_pass http://rails;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Url-Scheme $scheme;
}
}
У меня есть сервер unicorn rails, работающий через rails s -p 3000
Тем не менее, ни один сайт не подходит site1.com
или site2.com
. Я могу добраться до рельсов по адресу www.site2.com:3000
Что случилось? Я потратил 2 дня (почти 30 часов), пробуя много разных блогов, задавая вопросы по SO / SF и т. Д. Пожалуйста, поделитесь своим мнением или ответом.
редактировать 1: Когда я пытаюсь посетить любой из сайтов, записи в журнале не создаются. Как будто запросы никогда не приходят.
Всегда проверяйте свой брандмауэр / прокси / входящие порты.
Все в приведенных выше файлах конфигурации работает отлично. Проблема заключалась в том, что порт 80 не был открыт для входящего трафика.