ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

用nginx和gunicorn运行多个django项目

2019-07-01 09:56:38  阅读:281  来源: 互联网

标签:nginx django gunicorn nginx-config


我正在使用Ubuntu 18服务器并使用nginx和gunicorn我遵循Digitalocean教程进行服务器设置.我成功地完成了一个项目,但现在我需要在服务器下运行多个项目.

这是我的枪炮设置

命令:

sudo nano /etc/systemd/system/gunicorn.service

文件:

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

[Service]
User=rfr
Group=www-data
WorkingDirectory=/home/rfr/helpdesk/helpdesk
ExecStart=/home/rfr/helpdesk/env/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          helpdesk.wsgi:application


[Install]
WantedBy=multi-user.target

这也是我的nginx设置

命令:

sudo nano /etc/nginx/sites-available/helpdesk

文件:

server {
    listen 80;
    server_name 192.168.11.252;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /assets/ {
        root /home/rfr/helpdesk/helpdesk;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

现在我如何在以下IP下添加另一个项目?我想为这样的访问项目配置我的nginx设置

192.168.11.252/firstProject

192.168.11.252/secoundproject

我尝试了一些谷歌,但没有多帮助我.

解决方法:

您使用带有两个不同套接字的proxy_pass.在第一个项目上设置gunicorn以侦听名为first_project.sock的套接字,并在第二个项目上设置gunicorn以侦听名为second_project.sock的套接字.

gunicorn for first project
[Unit] Description=gunicorn for firstProject Requires=gunicorn.socket After=network.target [Service] User=rfr Group=www-data WorkingDirectory=/home/rfr/first_project/first_project ExecStart=/home/rfr/first_project/env/bin/gunicorn \ --access-logfile - \ --workers 3 \ --bind unix:/run/first_project.sock \ first_project.wsgi:application [Install] WantedBy=multi-user.target
gunicorn for second project
[Unit] Description=gunicorn for secondProject Requires=gunicorn.socket After=network.target [Service] User=rfr Group=www-data WorkingDirectory=/home/rfr/second_project/second_project ExecStart=/home/rfr/second_project/env/bin/gunicorn \ --access-logfile - \ --workers 3 \ --bind unix:/run/second_project.sock \ second_project.wsgi:application [Install] WantedBy=multi-user.target
nginx configuration
server { listen 80; server_name 192.168.11.252; location = /favicon.ico { access_log off; log_not_found off; } location /firstProject/assets/ { root /home/rfr/first_project/first_project; } location /secondProject/assets/ { root /home/rfr/second_project/second_project; } location /firstProject { include proxy_params; rewrite /firstProject(.*) $1; proxy_pass http://unix:/run/first_project.sock; } location /secondProject { include proxy_params; rewrite /secondProject(.*) $1; proxy_pass http://unix:/run/second_project.sock; } }

   

这里的繁重工作是通过nginx重写指令,它会让你的应用程序将url视为url中firstProject或secondProject之后的所有内容.

标签:nginx,django,gunicorn,nginx-config
来源: https://codeday.me/bug/20190701/1345685.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有