Nginx 连接到 Unicorn 时权限被拒绝

2023-12-02

我在网上尝试了很多建议,但没有任何效果。我让 unicorn 和 nginx 致力于在 CentOS 6.5 服务器上部署 ruby​​ on Rails 应用程序。它以前有效,但现在当我尝试拉起该网站时,我收到了错误的网关错误。我正在使用的两个主要文件是 unicorn.rb 配置文件和 nginx 的 default.conf 文件。这些文件的位置是:/home/myuser/myApp/config/unicorn.rb 和 /etc/nginx/conf.d/default.conf。以下是它们包含的内容:

独角兽.rb

Set the working application directory
# working_directory "/path/to/your/app"
working_directory "/home/myuser/myApp"

# Unicorn PID file location
# pid "/path/to/pids/unicorn.pid"
pid "/home/myuser/myApp/pids/unicorn.pid"

# Path to logs
# stderr_path "/path/to/log/unicorn.log"
# stdout_path "/path/to/log/unicorn.log"
stderr_path "/home/myuser/myApp/log/unicorn.log"
stdout_path "/home/myuser/myApp/log/unicorn.log"

# Unicorn socket
# listen "/tmp/unicorn.[app name].sock"
listen "/home/myuser/myApp/tmp/unicorn.myApp.sock"

# Number of processes
# worker_processes 4
worker_processes 2

# Time-out
timeout 30

默认配置文件

upstream app {
        # Path to Unicorn SOCK file, as defined previously
        server unix:/home/myuser/myApp/tmp/unicorn.myApp.sock fail_timeout=0;
}

server {


    listen 80;
    server_name localhost;

    # Application root, as defined previously
    root /root/myApp/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app;
    }

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

我正在尝试从 myuser 运行这些东西,所以我不想移动 unicorn 文件或 myApp。为了设置这个我遵循https://www.digitalocean.com/community/articles/how-to-deploy-rails-apps-using-unicorn-and-nginx-on-centos-6-5但更改了某些步骤的目录。我知道当我不更改目录时该教程会起作用,但我确实需要它在我的用户主目录中运行。任何帮助表示赞赏。

看起来问题出在nginx上。当查看 nginx error.log 时,我得到以下信息:

2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/tasks/index.html" failed (13: Permission d$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/tasks" failed (13: Permission denied), cli$
2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html/index.html" failed (13: Permissio$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html" failed (13: Permission denied), $
2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/favicon.ico/index.html" failed (13: Permis$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/favicon.ico" failed (13: Permission denied$
2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html/index.html" failed (13: Permissio$
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html" failed (13: Permission denied), $
2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$

我在网上找到的解决方案之一是禁用 SELinux。我尝试过,但没有帮助。这些文件的权限均为 777,因此不应发生这种情况。有任何想法吗?


我发现了问题。 unicorn.myapp.sock 的路径必须转到 root 上的 /tmp 目录,而不是 myuser 目录。另外,我的 nginx default.conf 文件中的根路径需要位于 root/myApp/public ,而不是我的根路径。我不知道最后一部分意味着什么,但它有效并且我很高兴。感谢所有帮助我到达这里的人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx 连接到 Unicorn 时权限被拒绝 的相关文章

随机推荐

  • Raspberry Pi 4 I2C 总线无法正常工作

    尽管 i2cDetect 确实检测到目标 但我的 Raspberry Pi 4 Model B 上的 I2C 总线无法正常工作 我尝试使用 Raspberry Pi Sense HAT 和 SSD1306 OLED 显示屏以及带有 I2C
  • 如何知道Databricks支持的文件格式?

    我需要将各种文件 不同类型 加载到 Spark 数据框中 Databricks 支持所有这些文件格式吗 如果是 我在哪里可以获得每种文件格式支持的选项列表 delimited csv parquet avro excel json Than
  • 如何在一行中计算数据框中的并发事件?

    我有一个包含电话的数据集 我想计算每条记录有多少个活动呼叫 我找到了这个question但我想避免循环和函数 每个调用都有一个date a start time and a end time 数据框 start end date 0 09
  • 如何更新 OptionMenu 的命令

    我正在尝试在实例化后设置或更新 OptionMenu 的命令 The widget configure command foo 声明适用于Button and CheckButton 但不适合OptionMenu 以下代码引发此错误 tki
  • 为什么我无法关闭或消除 UIWebView 中的 Javascript 警报?

    情况 我调用 Javascriptalert通过UIWebView method stringByEvaluatingJavaScriptFromString 像这样 myWebView stringByEvaluatingJavaScri
  • 在 Django 中自动填充一组通用的多对多字段?

    我正在尝试结合this答案和这个one 带有一点 for 循环 在创建角色时 我想添加所有可能的技能 其值为 0 但我对如何遵循上述答案感到困惑 我有这个混合 class CrossCharacterMixin models Model c
  • PHP 多维数组 - 删除重复项

    如果有人能在这里帮助我 我将永远感激不已 因为我已经花了大约 2 天的时间试图让它发挥作用 我想获取两个多维数组并比较它们 然后remove任何重复的记录 场景是 array2 中的值已分配给用户的配置文件 array1 中的值是用户可以选
  • Python:将文本文件转换为二进制文件

    我们可以将任何数字文件转换为二进制文件 我有一个1MB的文本文件 我想将其转换为二进制字符串并将输出视为二进制数 反之亦然 换句话说 如果我有二进制数 我想将其转换为文本文件 我怎样才能在Python中做到这一点 有没有标准的方法来做到这一
  • 从 Arduino UNO R3 套件读取数据

    我正在尝试读取我已经存储在的数据Arduino套件 我正在使用物理类库为了达成这个 我通过使用以下命令将套件连接到我的电脑来测试该套件 读取数据 B 型 USB 电缆由Arduino本身提供并使用泰拉术语 在我按键盘上的 后数据开始传输 特
  • Python - 确定参数是否为整数

    我对 Python 比较陌生 我想提出一个基本程序 可以确定参数在函数中是否有整数 我不知道该在空白处填什么 我通常不使用 if in 类型配对 该函数的基础是这样的 def is number char if somethinghere
  • 使用 Python 发送 HTML 电子邮件

    如何使用Python发送电子邮件中的HTML内容 我可以发送简单的短信 From Python v2 7 14 文档 18 1 11 电子邮件 示例 以下是如何使用替代纯文本版本创建 HTML 消息的示例 usr bin python im
  • Playstore 会拒绝使用 armeabi-v7a、arm64-v8a、x86 但不支持 x86-64 的应用吗?

    来自 Android 开发者网站 https developer android com distribute best practices develop 64 bit很明显 从 2019 年 8 月 1 日开始 Google Play
  • WordPress print_thumbnail 没有给出正确的 url

    我一直很难解决这个问题 我在 Ubuntu Server 64 位上运行 Wordpress 3 3 1 因此 我可以上传图像并使用提供的网址查看它 但是 当我将其设置为特征图像时 该功能似乎 print thumbnail 没有给我正确的
  • C 中的# 和## 宏[重复]

    这个问题在这里已经有答案了 方案一 include
  • 在本地主机上运行 Node JS 服务器

    例如 我想制作一个像这样的非常简单的网络服务器 const http require http http createServer function req res res writeHead 200 Content Type text p
  • Java class.getResourceAsStream() 返回错误的字节

    我刚刚遇到了 getResourceAsStream 的一个非常奇怪的问题 在我的产品项目 JUnit 测试中 我使用 getResourceAsStream 读取测试数据 我发现 getResourceAsStream 有时会替换一些字节
  • gwt-maven-plugin:编译失败“状态 1”

    我已经在 GWT 项目上工作了一段时间 并且我相信自从添加了新的依赖项后 我收到了以下错误 无法在项目项目上执行目标 org codehaus mojo gwt maven plugin 2 6 1 compile 默认 命令 bin sh
  • 如何在我的 Java 程序中使用 CardLayout 来实现登录和菜单项

    我正在创建一个 商店 程序 基本上可以允许员工使用我提供的用户名和密码登录 登录后 员工可以看到一个 主菜单 其中有四个按钮 销售登记 PLU 设置 设置和注销 在此屏幕上 员工可以通过单击任何按钮导航到该屏幕 我不希望每次单击按钮时都会弹
  • 列出 FTP 目录及其子目录中的文件名

    我在网上搜索过 但没有找到任何结果 实际上我想获取我拥有的所有文件的名称root and Directory and Sub Directory 我尝试了如下代码 但它只给了我以下文件root我的 FTP 我在 FTP 中的文件夹如下所示
  • Nginx 连接到 Unicorn 时权限被拒绝

    我在网上尝试了很多建议 但没有任何效果 我让 unicorn 和 nginx 致力于在 CentOS 6 5 服务器上部署 ruby on Rails 应用程序 它以前有效 但现在当我尝试拉起该网站时 我收到了错误的网关错误 我正在使用的两