子路径上有多个 Django 项目 + Nginx

2023-12-12

我正在尝试运行多个用 Django 编写的仪表板以在我的服务器上运行,但无法启动并运行它。已关注这个数字海洋教程并根据其进行修改这个答案。现在一切都已启动并正在运行,但是当我指向我的 URL 时,它显示 Nginx 欢迎页面http://ipaddr/first_dashboard

下面是gunicorn_fdab.socket file :

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn_fdab.sock

[Install]
WantedBy=sockets.target

下边是gunicorn_fdab.service file :

[Unit]
Description=gunicorn daemon for fdab
Requires= gunicorn_fdab.socket
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/opt/fdab
ExecStart=/opt/anaconda/envs/fdab/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn_fdab.sock \
          fdab.wsgi:application

[Install]
WantedBy=multi-user.target

现在这是我的 Nginx conf 文件:

server {
    listen 80;
    server_name 111.11.11.111;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /opt/fdab/fdab;
    }

    location /fdab {
        include proxy_params;
        rewrite /fdab(.*) $1;
        proxy_pass http://unix:/run/gunicorn_fdab.sock;
    }
}

我无法理解哪里做错了。

如果我在做curl --unix-socket /run/gunicorn_fdab.sock localhost,它什么也没返回。

(base) root@virtualserver01:~# curl --unix-socket /run/gunicorn_fdab.sock localhost
(base) root@virtualserver01:~# 

项目存储在/opt/fdab.

附加信息:

基本上,我的两个项目的项目结构如下:

/opt/fdab
    /fdab
    /fdab_dashboard


/opt/pdab
    /pdab
    /pdab_dashboard

该项目的结构是这样的,因为我打算在 fbad 和 fdab2(第二个项目名称.

EDIT

更新了 Nginx 的conf文件:

server {
    listen 80;
    server_name 111.11.11.111;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /opt/fdab/fdab;
    }

    location /fdab {
        include proxy_params;
        rewrite /fdab/(.*) /$1 break;
        proxy_pass http://unix:/run/gunicorn_fbad.sock;
    }


    location /pdab/static/ {
        alias /opt/pdab/pdab/static/;
    }

    location /pdab {
        include proxy_params;
        rewrite /pdab/(.*) /$1 break;
        proxy_pass http://unix:/run/gunicorn_pdab.sock;
    }

}

现在我已经添加了FORCE_SCRIPT_NAME = '/exampleproject'在这两个项目中。

现在发生的事情是,如果我输入,http://<ipaddr>/fdab/fdab_dashboard它工作正常,但如果我输入http://<ipaddr>/fdab/ or http://<ipaddr>/pdab/,我被重定向到http://<ipaddr>/fdab_dashboard and http://<ipaddr>/pdab_dashboard,这不是所要求的,而且,http://<ipaddr>/fdab_dashboard似乎工作正常。但是fdab部分网址丢失,登录后进入应用程序后,网址看起来不错,可能是因为FORCE_SCRIPT_NAME = '/fdab',但是网址http://<ipaddr>/pdab_dashboard给我404 error page.


所以好消息是你发布的 Gunicorn 和 nginx 配置看起来是正确的。

(1) 问题#1 默认网页显示:

这几乎总是由默认的 nginx 配置文件引起的default.conf。只需删除该文件,您就会看到您的网站弹出。唯一需要检查的事情是测试并重新加载 nginx,以确保您的配置有效并已加载:

sudo nginx -t
sudo systemctl reload nginx

(2) 问题 #2 卷曲到 unix 套接字不会返回您所期望的结果。卷曲命令看起来有点不对劲:尝试如下:

curl -v --no-buffer --unix-socket /run/gunicorn_fdab.sock http://localhost/route/available/in/django

你可以在尾随枪鸟原木时将卷曲与journalctl --since today -u gunicorn -f

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

子路径上有多个 Django 项目 + Nginx 的相关文章

  • python django shell (ipython) 意外行为或错误?

    在使用区域设置时 Django shell 的行为 至少对我来说 是意外的 从外部脚本调用时 逗号分隔小数字段的表单验证有效 但从 django shell ipython 调用时失败 开始一个新项目我得到以下文件 local forms
  • django-autocompletion-light 简单外键完成显示不可编辑的下拉小部件

    我有一个国家模型 class Country models Model name models CharField max length 200 def str self return self name 这是由 UserDetails 模
  • django-orm:如何更新一对一关系字段值

    模型 py class Area models Model area name models CharField max length 255 null False blank False description models TextFi
  • 在 django 中自定义项目和应用程序模板

    我想自定义运行时创建的文件和文件夹 python manage py startapp appname 我发现一遍又一遍地做一些事情 我认为如果在创建新应用程序时存在我的自定义功能 那就太好了 您知道创建应用程序时可以在哪里自定义默认文件吗
  • 如何在Django终端后台启动celery

    我开始芹菜作为 python manage py celeryd 它正在工作 但在前台 然后为了测试命令 我需要启动另一个终端并在那里执行操作 有什么办法可以在后台启动它吗 我试过这个 python manage py celeryd 但话
  • 如何手动发送django异常日志?

    我的应用程序中有一个应该返回的特定视图HttpResponse 如果一切都成功完成并且类似HttpResponseBadRequest 否则 此视图适用于外部数据 因此可能会引发一些意外的异常 我当然需要知道发生了什么 所以我有这样的东西
  • django post_save 信号和 ManyToManyField (和 Django Admin)

    我的 post save 函数有问题 该函数已正确触发 但实例不包含插入的值 我用ipdb检查了该功能 没有任何问题 只是 ManyToManyField 是空的 代码 receiver post save sender Supplier
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • Django Rest Framework:字段名称“likes”对于模型“userPost”配置不正确无效

    在我的 Django Rest Framework api 中 我尝试向我的模型 UserPosts 添加一个属性 该属性返回所述帖子的所有喜欢 尽管我尽了最大努力 但我仍然遇到这个错误 下面是我的帖子模型 class UserPosts
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • NGinx $proxy_add_x_forwarded_for 和 real_ip_header

    我在 NGinx 下有一个 web 应用程序和另一个前端负载均衡器 如下所示 x x x x IP 地址 客户端 a a a a gt LB b b b b gt NGX c c c c gt WEBAPP d d d d 这是我的 NGi
  • 如何避免 nginx“上游发送太大的标头”错误?

    我正在运行 nginx Phusion Passenger 和 Rails 我遇到了以下错误 upstream sent too big header while reading response header from upstream
  • python-social-auth 部分管道无法恢复

    我正在尝试使用 python social auth 的部分管道收集新用户的密码 由于某种未知的原因 我无法恢复管道 提交表单后页面呈现回密码收集页面 值得注意的是 即使我输入 http complete backend name 页面也会
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 重定向到 /admin/login/ 结果为 302

    当用户未经身份验证时 我尝试重定向到登录页面 在我的settings py我的课程有 MIDDLEWARE CLASSES path to AuthRequiredMiddleware 这是我的课程 class AuthRequiredMi
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • Django 的 request.FILES 出现 UnicodeDecodeError

    我在视图调用中有以下代码 def view request body u for filename f in request FILES items body body Filename filename n f read n 在某些情况下
  • Django Admin 中的反向内联

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460

随机推荐

  • 复杂对象图的快速哈希码

    我有一个漂亮的复杂的物体我需要得到独特性这些物体 一种解决方案可以通过重写来完成GetHashCode 我已经实现了如下代码 public override int GetHashCode return this complexObject
  • 使用 System.IO.Compression.FileSystem 将完整目录添加到现有 zip 文件

    以下示例可在互联网和本网站上追溯 作为使用 NET Framework 4 5 压缩文件的解决方案 它可以工作 但是当存档已经存在时 它会给出错误 因为它似乎只能压缩文件夹并创建新的 zip 文件 Reflection Assembly L
  • Apache Commons Validator 帮助下的 NoClassDefFoundError 问题

    如果使用 Apache Commons Validator 会出现错误 java lang NoClassDefFoundError org apache oro text perl Perl5Util 即使 Apache Commons
  • 如何在 RestAssured 中设置 OAuth 领域

    我正在使用 RestAssured 库来自动化 NetSuite Restlet 此 Restlet 使用 OAuth 1 0 进行身份验证 除了消费者密钥 消费者秘密 访问令牌和令牌秘密之外 我还需要设置 REALM 等高级字段 但我找不
  • 构造一个没有默认构造函数的空对象

    假设我有一个类型F 我知道F是空的 但是F没有默认构造函数 所以我不能使用F 来构建它 有没有办法获得类型的有效对象F反正 我似乎记得有人提到过有一种神秘的联合用法 理想情况下 它会是constexpr友好的 这可能很有用 因为无捕获 la
  • Android - listView 中的单选按钮?

    我有一个场景 我们应该在列表视图中有一个单选模式单选按钮 当我单击单选按钮时 它应该进入启用状态 当我单击整个项目时 它应该重定向到新活动 我参考了下面的链接 link1 link2 我可以找到多项选择模式的方法 但不适用于单选模式 对此有
  • nVIDIA 驱动程序如何将设备索引分配给 GPU?

    假设在单个节点上 有多个具有不同计算能力的设备 nvidia如何对它们进行排名 我的排名是指cudaSetDevice分配的数字 有关于此的一般准则吗 谢谢 我相信对应的设备顺序cuda获取设备 and cudaSetDevice 即 CU
  • 在 QML TableView 中单击时编辑数据(如 Excel)

    我有一些代码 import QtQuick 2 2 import QtQuick Window 2 1 import QtQuick Controls 1 2 Window visible true width 538 height 360
  • 无法在 AppService 中使用 Active Directory 集成身份验证连接到 Azure SQL Server

    我们在 Azure 应用服务上部署了 Web 应用程序 我们的数据库也在 Azure 上 配置为使用 AAD 身份验证 我们已分配 AAD 管理员 我们在 Web 应用程序中使用下面的连接字符串来使用下面的连接字符串连接到该服务器和数据库
  • 在 Spring Boot 中将 Angular 环境变量传递给已编译的静态 Angular 文件

    我现在使用 Angular 和 Spring Boot 来构建网站项目 当我们部署时 我们将ng build output path spring boot project src main resources static Angular
  • 如何通过 sudo 运行命令并通过 ssh 输入密码 C#

    我想在具有 Linux 操作系统的远程计算机上运行命令并获取结果 我正在使用 ssh net 库通过 C 代码进行连接 我可以连接并运行一些不需要使用的命令 sudo 前 但我不知道如何运行需要 sudo 运行的命令 因为运行后 例如 su
  • 同时运行不同的表单

    我试图同时显示 2 个不同的表单 我尝试了以下代码 但它不起作用 Form1 t1 new Form1 Form2 t2 new Form2 t2 Show t1 Show Application Run 我还尝试从program cs运行
  • 如何验证文本字段,使其只能包含四位数

    我已经设法验证我的字段 因此它始终是四位数字 但我需要验证它始终是一个数字 我尝试添加这段代码 但它无法正常工作 if document ExamEntry cand value match numbers msg Only use num
  • 人类生成的数字和软件生成的数字哪个更随机?

    Does it 抛硬币获得随机位 Or 掷骰子获得 1 到 6 之间的随机整数 Or 从洗好的牌堆中取出一张牌获取 1 到 52 之间的数字 或者它能像我们一样思考或拥有像我们一样的智慧吗 显然 上面的例子不能成为生成随机数据的方法 那么软
  • 并排放置直方图

    我想在 gnuplot 中对类似于此图像的直方图 rowstacked 进行分组 我有这两个文件 其中直方图的数据来自 Round robin Input West Virginia ChicagoI ChicagoII Californi
  • 如何限制对Docker容器中路径的访问?

    Here我编写了一个 Dockerfile 用于测试用户访问 另一个文件 run sh 在此link 到目前为止 我已经这样做了 从 Ubuntu 12 04 05 开始 使用 sudo 和 ssh 服务器创建一个新容器 将默认 root
  • JUnit/HSQLDB:使用 HSQLDB 测试时如何解决 Oracle 语法错误(无特权和/或无 DUAL 对象)

    我有 DAO 代码 其中包含一些具有 Oracle 特定语法的 JDBC 例如 select count cnt from DUAL where exists select null from TABLE NAME where LOCATI
  • 什么时候应该在 C++ 中使用 new 关键字?

    我使用 C 有一段时间了 我一直想知道new关键词 简单地说 我应该使用它还是不使用它 随着new关键词 MyClass myClass new MyClass myClass gt MyField Hello world 如果没有new关
  • Javascript - 离开页面时确认

    我正在尝试实现一个基本的弹出窗口 询问用户是否真的想要离开页面 类似于如果我尝试在编写此消息的过程中关闭窗口 则会在该网站上发生的情况 我意识到这通常会引起人们的不满 但我有充分的理由想要这样做 我通过使用以下代码使其工作 function
  • 子路径上有多个 Django 项目 + Nginx

    我正在尝试运行多个用 Django 编写的仪表板以在我的服务器上运行 但无法启动并运行它 已关注这个数字海洋教程并根据其进行修改这个答案 现在一切都已启动并正在运行 但是当我指向我的 URL 时 它显示 Nginx 欢迎页面http ipa