Обратный прокси Nginx не работает с Puma - PullRequest
0 голосов
/ 02 июня 2018

Мне нужна помощь в настройке Nginx с Puma и Rails на сервере Ubuntu в Digital Ocean (на это уже потрачено много времени).

У меня есть следующие настройки:

/ etc / nginx / nginx.conf (я удаляю некоторые закомментированные строки)

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

/ etc / nginx / sites-available/ test_server

upstream app {
    server unix:/home/deploy/www/test_server/tmp/sockets/puma.sock fail_timeout=0;
}

server {
        listen 80;
        server_name testserver.com.br www.testserver.com.br; # fake url
        root /home/deploy/www/test_server/public;
        try_files $uri/index.html $uri @app; 

        location @app {
                proxy_pass http://app;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;

        }

        error_page 500 502 503 504 /500.html;
        client_max_body_size 4G;
        keepalive_timeout 10;
}

/ var / log / nginx / access.log

Я вижу много запросов (с моей локальной машины, с сервера в DO и множества других IP-адресовчто я не узнаю).

/ var / log / nginx / error.log

Когда я пытаюсь получить доступ к www.testserver.com/index с моего локального компьютера

2018/06/02 12:21:25 [error] 27541#27541: *6 open() "/usr/share/nginx/html/index" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /index HTTP/1.1", host: "www.testserver.com.br"

Брандмауэр

Firewall is open to Nginx HTTP/HTTP (v6)

Символьная ссылка в / etc / nginx / sites-enabled / test_server

lrwxrwxrwx 1 root root 39 Jun  1 16:25 /etc/nginx/sites-enabled/test_server -> /etc/nginx/sites-available/test_server

Что у меня есть до сих пор

  • Когда я делаю запрос на сайт, я получил этосообщение:

«Добро пожаловать в nginx! Если вы видите эту страницу, веб-сервер nginx успешно установлен и работает ...»

  • Я знаю, что Puma работает нормально, потому что я могу делать запросы прямо в сокет, и он возвращает правильную страницу (Rails запускается в производственной среде ~ все работает нормально).

Последние соображения из моих попыток

Я считаю, что Nginx не может правильно соединиться с Puma и найти нужные файлы для обслуживания.Из error.log я вижу, как Nginx пытается получить доступ к папке / usr / share / nginx / html / , когда он должен попытаться подключиться к сокету, верно?Может быть, разрешение является проблемой?(Я видел много сообщений на SO с проблемами разрешения).

Я не знаю, что еще я могу попробовать.

Любую дополнительную информацию просто спросите.Заранее спасибо!

Решение

Когда я удалил файл nginx.conf (не нарочно) и скопировал из git rep., В новом файле отсутствовали include /etc/nginx/conf.d/*.conf; и include /etc/nginx/sites-enabled/*; строки.После добавления этих строк в раздел Http, Nginx начал обслуживать правильно.

...