Nginx反向代理不与Puma合作

时间:2018-06-02 15:37:17

标签: ruby-on-rails nginx puma

我需要一些帮助在数字海洋的Ubuntu服务器上设置Nginx与Puma和Rails(已经花了很多时间在这上面)。

我有以下设置:

/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的/位点可用/ 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

我可以看到很多请求(来自我的本地机器,来自D.O的服务器以及许多其他我不认识的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 Web服务器已成功安装并正常运行......”

  • 我知道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开始提供正确的服务。

0 个答案:

没有答案