首页 帮助中心 新加坡高防服务器 Linux中用Nginx和Gunicorn 托管 Django的步骤
Linux中用Nginx和Gunicorn 托管 Django的步骤
时间 : 2024-09-19 11:42:56 编辑 : 华纳云 阅读量 : 15

Linux中使用Nginx和Gunicorn托管Django应用程序的步骤如下:

先更新软件包,安装好必要的软件:

sudo apt update

安装Nginx

sudo apt install nginx

安装Python和虚拟环境

sudo apt install python3-pip python3-venv

设置Django项目,创建并激活虚拟环境:

mkdir ~/myproject

cd ~/myproject

python3 -m venv myprojectenv

source myprojectenv/bin/activate

安装Django和Gunicorn

pip install django gunicorn

创建Django:

django-admin startproject myproject .

在myproject/settings.py中,设置ALLOWED_HOSTS:

ALLOWED_HOSTS = ['your_server_domain_or_IP']

完成Django的配置。运行数据库迁移:

python manage.py migrate

创建一个超级用户(可选):

python manage.py createsuperuser

测试:

python manage.py runserver 0.0.0.0:8000

访问 http://your_server_domain_or_IP:8000 确保项目正常运行。

停止运行中的Django开发服务器,使用Gunicorn启动应用:

gunicorn --workers 3 myproject.wsgi:application

创建一个名为myproject.service的systemd服务文件:

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

内容为:

[Unit]

Description=gunicorn daemon for myproject

After=network.target

 

[Service]

User=your_user

Group=www-data

WorkingDirectory=/home/your_user/myproject

ExecStart=/home/your_user/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/your_user/myproject/myproject.sock myproject.wsgi:application

 

[Install]

WantedBy=multi-user.target

保存并退出。

启动并启用Gunicorn:

sudo systemctl start myproject

sudo systemctl enable myproject

创建一个名为myproject的Nginx配置文件:

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

内容为:

server {

    listen 80;

    server_name your_server_domain_or_IP;

 

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {

        root /home/your_user/myproject;

    }

 

    location / {

        include proxy_params;

        proxy_pass http://unix:/home/your_user/myproject/myproject.sock;

    }

}

保存并且退出。启用Nginx:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

测试Nginx:

sudo nginx -t

重启Nginx:

sudo systemctl restart nginx

配置防火墙:

sudo ufw allow 'Nginx Full'

现在,打开浏览器,访问http://your_server_domain_or_IP,你应该可以看到Django应用程序正在运行。

以上步骤可以完成在linux中使用Nginx和Gunicorn托管了Django应用程序。Nginx是反向代理服务器,将请求转发给Gunicorn处理,Gunicorn作为应用服务器运行Django项目。这种设置提供了更好的性能和安全性,更多内容继续关注华纳云

华纳云 推荐文章
用C# ZXing.Net生成和识别二维码及生成带logo的二维码 Docker Swarm的集群管理的相关介绍 JavaScript命名规范与Android WebView兼容性中井号函数名处理 nginx 80端口如何重定向至443端口 服务器cpu温度过高有哪些影响? Windows server 如何设置静态IP CentOS 7系统如何安装Rstudio-server DDoS攻击原理及防御方法
客服咨询
7*24小时技术支持
技术支持
渠道支持