Centos环境中Django项目中gunicorn的配置和使用

一、安装

pip3 install gunicorn

测试

python3 -m gunicorn --config gunicorn.conf.py 项目名.wsgi:application

查找 gunicorn 可执行文件路径

如果仍然想用 gunicorn 命令,可以找到它的安装位置:

find / -name gunicorn 2>/dev/null

检查环境变量:

echo $PATH

修改环境变量:

查看

root@192 \~\]# cat \~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if \[ -f /etc/bashrc \]; then . /etc/bashrc fi source /opt/rh/devtoolset-9/enable #This is gcc version source /opt/rh/devtoolset-9/enable #This is gcc version export PATH=$path:/usr/local/python3/bin #新增的,添加gunicorn的目录位置 export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin #这个也很重要,检查有没有存在 生效命令 source \~/.bashrc 测试: gunicorn --config gunicorn.conf.py myproject.wsgi:application -------------------------------------------------------------- 二、创建配置文件 在项目的根目录下创建配置文件 vim gktb/gunicorn.conf.py 内容: # gunicorn.conf.py import multiprocessing # 服务器socket bind = "127.0.0.1:8000" backlog = 2048 # 工作进程 (Python 3.11优化) workers = multiprocessing.cpu_count() \* 2 + 1 worker_class = "sync" # Python 3.11的同步性能已经很好 worker_connections = 1000 timeout = 30 keepalive = 2 # Python 3.11性能优化 worker_tmp_dir = "/dev/shm" # 使用内存文件系统 # 重启 max_requests = 1000 max_requests_jitter = 100 preload_app = True # 日志 accesslog = "/root/projects/gktb/logs/gunicorn_access.log" errorlog = "/root/projects/gktb/logs/gunicorn_error.log" loglevel = "info" # 进程命名 proc_name = 'gktb_gunicorn' # 用户权限 user = "root" group = "root" -------------------------------- 三、创建服务: 目的:使用系统服务自动启动项目 vim /etc/systemd/system/gktb.service 内容: \[Unit

Description=GKTB Django Application

After=network.target mysql.service

Service

WorkingDirectory=/root/projects/gktb

ExecStart=/usr/local/python3/bin/gunicorn --config gunicorn.conf.py gktb.wsgi:application

ExecReload=/bin/kill -s HUP $MAINPID

Restart=always

RestartSec=3

Install

WantedBy=multi-user.target

重新加载 Systemd:

sudo systemctl daemon-reload

sudo systemctl enable gktb

sudo systemctl restart gktb


部署nginx做跳转

安装nginx

yum install -y nginx

添加配置文件:

vim /etc/nginx/conf.d/gktb.conf

server {

listen 80;

server_name your-domain.com your-server-ip;

安全头

add_header X-Frame-Options "SAMEORIGIN" always;

add_header X-XSS-Protection "1; mode=block" always;

add_header X-Content-Type-Options "nosniff" always;

静态文件

location /static/ {

alias /root/projects/gktb/app01/static/;

expires 30d;

add_header Cache-Control "public, immutable";

}

媒体文件

location /media/ {

alias /root/projects/gktb/app01/static/media/;

expires 7d;

}

Django应用

location / {

proxy_pass http://127.0.0.1:8000;

proxy_set_header Host $host;

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 $scheme;

超时设置

proxy_connect_timeout 30s;

proxy_send_timeout 30s;

proxy_read_timeout 30s;

}

文件上传大小限制

client_max_body_size 10M;

日志

access_log /var/log/nginx/gktb_access.log;

error_log /var/log/nginx/gktb_error.log;

}

最后修改/etc/nginx/nginx.conf中的user root,权限问题

相关推荐
码界筑梦坊7 小时前
329-基于Python的交通流量数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
源码之家8 小时前
大数据毕业设计汽车推荐系统 Django框架 可视化 协同过滤算法 数据分析 大数据 机器学习(建议收藏)✅
大数据·python·算法·django·汽车·课程设计·美食
HABuo10 小时前
【linux线程(二)】线程互斥、线程同步、条件变量详细剖析
linux·运维·服务器·c语言·c++·ubuntu·centos
feng_you_ying_li10 小时前
linux开发工具的介绍(5)
linux·运维·centos
小疙瘩14 小时前
VirtualBox 下 CentOS-10 下 Docker 安装 Mysql57 (包括 使用 Docker Compose 部署)
linux·docker·centos
码界筑梦坊1 天前
353-基于Python的大湾区气候数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
sg_knight1 天前
CentOS 裸机实操:5分钟完成 MinIO 单机部署与公网访问
linux·python·centos·文件管理·minio·ftp·oss
dgvri1 天前
Linux(CentOS)安装 MySQL
linux·mysql·centos
badhope1 天前
前端已死?前端角色演进的四维技术证据链(2026年实证)
react.js·django·node.js
源码之家1 天前
计算机毕业设计:Python汽车销量数据采集分析可视化系统 Flask框架 requests爬虫 可视化 车辆 大数据 机器学习 hadoop(建议收藏)✅
大数据·爬虫·python·django·flask·课程设计·美食