我已经按照http://ruby-journal.com/how-to-setup-rails-app-with-puma-and-nginx/链接配置了美洲狮的nginx但是当我启动服务器时bundle exec puma -e development -b unix:///var/run/my_app.sock
它会抛出Permission denied - "/var/run/my_app.sock" (Errno::EACCES) error.
但是当我启动服务器时,bundle exec puma -e development它就开始了 tcp://0.0.0.0:9292
my_app.sock file does not exist in /var/run/
如何使用unix套接字启动服务器并通过my_app.conf文件中给出的域名访问应用程序.
你能帮助我吗?
Via*_*kov 31
要使用套接字绑定启动puma,只需使用/tmp目录:
bundle exec puma -e development -b unix:///tmp/my_app.sock
Run Code Online (Sandbox Code Playgroud)
要通过域名访问应用程序,您应该使用类似的东西nginx并为其进行配置.
要nginx在Ubuntu中安装,只需运行下一个命令:
sudo apt-get install nginx
Run Code Online (Sandbox Code Playgroud)
sudo nano /etc/nginx/sites-available/my_app.conf在此文件中运行并放置配置(Ctrl + X,Y - 保存更改):
upstream my_app {
server unix:///tmp/my_app.sock;
}
server {
listen *:80;
server_name my_app.com;
access_log /var/log/nginx/my_app-access.log;
location /favicon.ico {
root /var/www/my_app/public/assets/favicon.ico;
gzip_static on;
expires max;
add_header Cache-Control public;
}
location / {
root /var/www/my_app/public;
try_files $uri @app;
gzip_static on;
expires max;
add_header Cache-Control public;
}
location @app {
proxy_pass http://my_app;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_next_upstream error timeout invalid_header http_502;
}
}
Run Code Online (Sandbox Code Playgroud)
您应该更改/var/www/my_app并my_app.com使用适当的值.
将符号链接添加到已启用的站点中 sudo ln -fns /etc/nginx/sites-available/my_app.conf /etc/nginx/sites-enabled/
重启nginx : sudo service nginx restart.
将您的域名链接到服务器IP(通过hosts-file或DNS-provider).
| 归档时间: |
|
| 查看次数: |
17240 次 |
| 最近记录: |