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

Как настроить nginx для обслуживания виртуальных хостов с помощью рельсов (единорог / пассажир) и php-fpm

Я хотел бы обслуживать несколько сайтов на одном экземпляре.

Я устанавливаю 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 не был открыт для входящего трафика.