Мне нужна помощь в настройке 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 начал обслуживать правильно.