我正在尝试使用unix套接字配置Nginx + Rails + Puma,但我无法为我的服务器提供服务。我有以下配置,如果有人可以指出缺少什么,我将不胜感激。我的Nginx配置;
upstream my_app {
server unix:///var/run/my_app.sock;
}
server {
listen 8080;
server_name _;
root /var/www/plantmonitorweb/public; # app location
location / {
proxy_pass http://my_app;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# this one is from Rails guides
location ~ ^/assets/ {
expires 1y;
add_header Cache-Control public;
add_header ETag "";
}
}
在production.rb
config.public_file_server.enabled = false
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
puma.rb没有改变。我用以下命令运行puma服务器;
puma -e production -b unix:///var/run/my_app.sock
我在远程机器上运行它们(Rasberry Pi是特定的)Puma运行良好似乎nginx正在击中我的服务器但是当我打开chorome控制台时我看到以下
GET http://192.168.1.35:8080/pack/app.js
我在public / pack下检查这个文件,它就在那里。
我的Nginx配置在/etc/nginx/conf.d/中,它包含在Nginx.conf中(包括/etc/nginx/conf.d / * .conf)
答案 0 :(得分:0)
在rails 5中,在public/pack/
下提供反应js文件。因此,我们需要添加静态服务的位置以及资源文件夹。所以将以下位置添加到我的nginx配置中。
location ~ ^/(assets|packs)/ {
gzip_static on;
expires 1y;
add_header Cache-Control public;
add_header Last-Modified "";
add_header ETag "";
}