Rails,NGINX 不加载已部署的应用程序
Rails, NGINX does not load deployed application
我已经安装了最后一个稳定版本的 NGINX (1.10)
在我的 Rails 项目中,我创建了 nginx.conf
文件:
upstream puma_myapp {
server unix:///var/www/myapp/shared/tmp/sockets/myapp.sock;
}
server {
listen 80 default_server deferred;
# server_name example.com;
root /var/www/myapp/current/public;
access_log /var/www/myapp/current/log/nginx.access.log;
error_log /var/www/myapp/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://puma_myapp;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 10M;
keepalive_timeout 10;
}
我已经通过 capistrano 部署了我的 rails 应用程序。它消除了我的应用程序。
现在 /etc/nginx
中没有 sites-enabled
文件夹。我创建了这个文件夹然后我写了这个:
sudo ln -nfs "/var/www/myapp/current/config/nginx.conf" "/etc/nginx/sites-enabled/myapp"
然后我重启我的nginx:
sudo service nginx restart
当我打开我的页面地址时,我仍然得到nginx的默认页面,为什么会这样?
我的 puma.rb
文件是:
#!/usr/bin/env puma
directory '/var/www/myapp/current'
rackup "/var/www/myapp/current/config.ru"
environment 'production'
pidfile "/var/www/myapp/shared/tmp/pids/puma.pid"
state_path "/var/www/myapp/shared/tmp/pids/puma.state"
stdout_redirect '/var/www/myapp/current/log/puma.error.log', '/var/www/myapp/current/log/puma.access.log', true
threads 4,16
bind 'unix:///var/www/myapp/shared/tmp/sockets/myapp.sock
workers 0
我的 var/log/nginx/error.log
文件显示:
2016/08/16 10:07:01 [error] 10157#10157: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, $
2016/08/16 10:14:49 [error] 10157#10157: *3 open() "/usr/share/nginx/html/phpMyAdmin/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, $
2016/08/16 10:14:55 [error] 10157#10157: *4 open() "/usr/share/nginx/html/pma/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, server:$
2016/08/16 10:15:00 [error] 10157#10157: *5 open() "/usr/share/nginx/html/myadmin/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, ser$
2016/08/16 10:36:20 [error] 26599#26599: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, reques$
2016/08/16 10:42:11 [error] 27962#27962: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, reques$
您在 puma.rb
中的绑定套接字与您在 nginx.conf
中的套接字不匹配
问题更新后编辑:
PMA?看起来您正在使用 plesk 来管理您的系统。 plesk 会生成很多东西。您必须检查 plesk 在哪里需要您的配置。
sites-enabled
目录是 Debian 软件包的特定功能。如果您安装了其他 nginx 包或自己构建了它,那么 nginx.conf
可能不包含 include /etc/nginx/sites-enabled/*;
指令,并且不包含该目录中的配置文件。
我已经安装了最后一个稳定版本的 NGINX (1.10)
在我的 Rails 项目中,我创建了 nginx.conf
文件:
upstream puma_myapp {
server unix:///var/www/myapp/shared/tmp/sockets/myapp.sock;
}
server {
listen 80 default_server deferred;
# server_name example.com;
root /var/www/myapp/current/public;
access_log /var/www/myapp/current/log/nginx.access.log;
error_log /var/www/myapp/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://puma_myapp;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 10M;
keepalive_timeout 10;
}
我已经通过 capistrano 部署了我的 rails 应用程序。它消除了我的应用程序。
现在 /etc/nginx
中没有 sites-enabled
文件夹。我创建了这个文件夹然后我写了这个:
sudo ln -nfs "/var/www/myapp/current/config/nginx.conf" "/etc/nginx/sites-enabled/myapp"
然后我重启我的nginx:
sudo service nginx restart
当我打开我的页面地址时,我仍然得到nginx的默认页面,为什么会这样?
我的 puma.rb
文件是:
#!/usr/bin/env puma
directory '/var/www/myapp/current'
rackup "/var/www/myapp/current/config.ru"
environment 'production'
pidfile "/var/www/myapp/shared/tmp/pids/puma.pid"
state_path "/var/www/myapp/shared/tmp/pids/puma.state"
stdout_redirect '/var/www/myapp/current/log/puma.error.log', '/var/www/myapp/current/log/puma.access.log', true
threads 4,16
bind 'unix:///var/www/myapp/shared/tmp/sockets/myapp.sock
workers 0
我的 var/log/nginx/error.log
文件显示:
2016/08/16 10:07:01 [error] 10157#10157: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, $
2016/08/16 10:14:49 [error] 10157#10157: *3 open() "/usr/share/nginx/html/phpMyAdmin/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, $
2016/08/16 10:14:55 [error] 10157#10157: *4 open() "/usr/share/nginx/html/pma/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, server:$
2016/08/16 10:15:00 [error] 10157#10157: *5 open() "/usr/share/nginx/html/myadmin/scripts/setup.php" failed (2: No such file or directory), client: 203.110.167.86, ser$
2016/08/16 10:36:20 [error] 26599#26599: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, reques$
2016/08/16 10:42:11 [error] 27962#27962: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 178.88.194.6, server: localhost, reques$
您在 puma.rb
中的绑定套接字与您在 nginx.conf
问题更新后编辑:
PMA?看起来您正在使用 plesk 来管理您的系统。 plesk 会生成很多东西。您必须检查 plesk 在哪里需要您的配置。
sites-enabled
目录是 Debian 软件包的特定功能。如果您安装了其他 nginx 包或自己构建了它,那么 nginx.conf
可能不包含 include /etc/nginx/sites-enabled/*;
指令,并且不包含该目录中的配置文件。