Ruby on rails 如何使用unix套接字启动puma
我已经使用puma配置了nginx 但是当我用Ruby on rails 如何使用unix套接字启动puma,ruby-on-rails,nginx,puma,Ruby On Rails,Nginx,Puma,我已经使用puma配置了nginx 但是当我用 bundle exec puma-e开发-bunix:///var/run/my_app.sock 它抛出权限被拒绝-“/var/run/my_app.sock”(Errno::EACCES)错误 但是当我用bundle exec puma-e development启动服务器时 它以tcp://0.0.0.0:9292 my_app.sock文件不存在于/var/run/ 如何使用unix套接字启动服务器,并通过my_app.conf文件中给出的
bundle exec puma-e开发-bunix:///var/run/my_app.sock
它抛出
权限被拒绝-“/var/run/my_app.sock”(Errno::EACCES)错误
但是当我用bundle exec puma-e development启动服务器时它以
tcp://0.0.0.0:9292
my_app.sock文件不存在于/var/run/
如何使用unix套接字启动服务器,并通过my_app.conf
文件中给出的域名访问应用程序
有人能帮我吗?要使用套接字绑定启动puma,只需使用
/tmp
目录:
bundle exec puma -e development -b unix:///tmp/my_app.sock
要通过域名访问应用程序,您应该使用类似nginx的东西,并对其进行配置
要在Ubuntu中安装nginx
,只需运行下一个命令:
sudo apt-get install nginx
运行sudo nano/etc/nginx/sites available/my_app.conf
并将下面的配置放入该文件(Ctrl+X,Y-保存更改):
您应该将/var/www/my_app
和my_app.com
更改为适当的值
将符号链接添加到已启用的站点sudo ln-fns/etc/nginx/sites available/my_app.conf/etc/nginx/sites enabled/
重新启动nginx:sudo服务nginx重新启动
将您的域名链接到服务器IP(通过
主机
-文件或DNS提供商)。我很高兴听到这个消息。请接受这个答案,如果它对你有帮助的话。哈哈,我的编辑被拒绝了。有错误的协议(在请求中
对象将是端口'443',协议'https://'和.ssl?
true)需要更改代理设置\u头X-Forwarded-Proto-https代码>至代理集\头X-转发-Proto$方案代码>@2谢谢你的评论。刚刚修复了它。另外,在某些发行版(如Centos8),systemd单元
有一个服务设置选项,指示系统创建私有临时文件
,这意味着只能通过相同的进程访问。这也可能是一个问题。要防止出现这种情况,请在服务设置文件的[Service]
块中设置PrivateTmp=No
。
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;
}
}