繁体   English   中英

使用rails,puma和server block获得403 Forbidden nginx

[英]getting 403 Forbidden nginx with rails, puma, and server blocks

第一次尝试使用rails部署应用程序 - 我正在尝试运行一个rails应用程序,目前正在给我403.我正在使用ubuntu和nginx。 我有两个服务器块设置,我首先使用节点应用程序测试运行正常,现在一个域运行正常作为节点应用程序,但我正在尝试将另一个域设置为一个给予403的rails应用程序。

我使用了这两个教程的组合:

我尝试在我的/home/deploy目录和/var/www/设置755 permision,但没有运气。

其他猜测 -

  • index index.html index.htm什么关系?
  • default_server deferred; 在我的nginx.conf中(虽然我尝试删除但没有影响)

以下是我的相关文件,可能有问题,请告诉我其他人是否有帮助 -

rails app,有问题: /etc/nginx/sites-enabled/centers

server {
        listen 80;
        listen [::]:80;

        root /home/deploy/apps/mll/current/public;
        index index.html index.htm;

        server_name myrailssite.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

节点应用程序,在/etc/nginx/sites-enabled/nodeapp

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/nodeapp/html;
        index index.html index.htm;

        server_name 162.243.199.170;

        location / {
                try_files $uri $uri/ =404;
        }
}

nginx.conf

upstream puma {
  server unix:///home/deploy/apps/mll/shared/tmp/sockets/mll-puma.sock;
}

server {
  listen 80 default_server deferred;
  server_name myrailssite.com;

  root /home/deploy/apps/mll/current/public;
  access_log /home/deploy/apps/mll/current/log/nginx.access.log;
  error_log /home/deploy/apps/mll/current/log/nginx.error.log info;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @puma;
  location @puma {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://mll-puma;
  }

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

权限:

deploy@banana:/usr/bin$ namei -l /var/www/centers/
f: /var/www/centers/
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root www
drwxrwxr-x root root centers


deploy@banana:/usr/bin$ namei -l /home/deploy/apps/mll/current/public/
f: /home/deploy/apps/mll/current/public/
drwxr-xr-x root   root   /
drwxr-xr-x root   root   home
drwxr-xr-x deploy deploy deploy
drwxr-xr-x deploy deploy apps
drwxr-xr-x deploy deploy mll
lrwxrwxrwx deploy deploy current -> /home/deploy/apps/mll/releases/20160415005003
drwxr-xr-x root   root     /
drwxr-xr-x root   root     home
drwxr-xr-x deploy deploy   deploy
drwxr-xr-x deploy deploy   apps
drwxr-xr-x deploy deploy   mll
drwxr-xr-x deploy deploy   releases
drwxrwxr-x deploy deploy   20160415005003
drwxrwxr-x deploy deploy public

我的应用程序https://www.wiki11.com也遇到了同样的问题。

您的问题即将到来,因为nginx正在尝试将index.html文件搜索到/home/deploy/apps/mll/current/public ,而这些文件并不存在。 为了解决这个问题,您需要使用nginx添加乘客。

要遵循的说明。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

添加Passenger APT存储库

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update

安装乘客和nginx

sudo apt-get install -y nginx-extras passenger

现在启动nginx webserver。

sudo service nginx start

接下来,我们需要更新Nginx配置,将Passenger指向我们正在使用的Ruby版本。

sudo vim /etc/nginx/nginx.conf

并添加或取消注释

include /etc/nginx/passenger.conf;

保存并关闭nginx.conf。 然后打开/etc/nginx/passenger.conf

sudo vim /etc/nginx/passenger.conf

如果你正在使用.rbenv,那么

passenger_ruby /home/deploy/.rbenv/shims/ruby;

或者如果你正在使用rvm,那么

passenger_ruby /home/deploy/.rvm/wrappers/ruby-2.5.0/ruby;

或者,如果您正在使用系统ruby,那么

passenger_ruby /usr/bin/ruby;

接下来,重启nginx服务器

sudo service nginx restart

添加passenger_enabled on; 到您的站点启用/中心或站点启用/ nodeapp文件。

server {
        listen 80;
        listen [::]:80;

        root /home/deploy/apps/mll/current/public;
        index index.html index.htm;

        server_name myrailssite.com;
        passenger_enabled on;

        location / {
                try_files $uri $uri/ =404;
        }
}

再次重启nginx服务器, sudo service nginx restart 希望它应该工作。

有关详细信息, 请访问https://www.phusionpassenger.com/library/install/nginx/install/oss/xenial/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM