1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Django项目部署 uwsgi+nginx 负载均衡

Django项目部署 uwsgi+nginx 负载均衡

时间:2023-03-01 11:53:09

相关推荐

Django项目部署 uwsgi+nginx 负载均衡

部署示意图

uwsig

第一步:安装uwsig

pip install uwsgi

第二步:配置uwsgi

手动在项目根目录下新建文件uwsgi.ini

[uwsgi]# 使用nginx连接时使用# socket = 127.0.0.1:8080# 直接做web服务器使用,指定要监听的ip和端口号,即我们运行项目时的ip和端口http = 127.0.0.1:8080# 项目目录chdir = /home/fatpuffer/myproject/dailyfresh# 项目中的wsgi.py文件的目录,相对于项目目录wsgi-file = dailyfresh/wsgi.py# 指定启动的工作进程数process = 4# 指定每个进程中的线程数threads = 2# 指定在工作进程中存在一个主进程master = True# 保存启动之后主进程的进程号pidfile = uwsgi.pid# 设置uwsgi后台运行,运行信息保存在uwsgi.logdaemonize = uwsgi.log# 设置虚拟环境的路径virtualenv = /home/fatpuffer/.virtualenvs/dailyfresh

第三步:修改项目配置文件settings.py

DEBUG = FlaseALLOWED_HOST = ['*']

第四步:uwsgi的启动和停止

启动uwsgi --ini 配置文件路径

uwsgi --ini uwsgi.ini

停止uwsgi --stop uwsgi.pid文件路径

uwsgi --stop uwsgi.pid

查看已启动的进程

ps aux | grep uwsgi

查看主进程号

cat uwsgi.pid

nginx

第一步:修改uwsgi.ini配置文件,使其能够与nginx通信

[uwsgi]# 使用nginx连接时使用socket = 127.0.0.1:8080# 直接做web服务器使用,指定要监听的ip和端口号,即我们运行项目时的ip和端口# http = 127.0.0.1:8080# 项目目录chdir = /home/fatpuffer/myproject/dailyfresh# 项目中的wsgi.py文件的目录,相对于项目目录wsgi-file = dailyfresh/wsgi.py# 指定启动的工作进程数process = 4# 指定每个进程中的线程数threads = 2# 指定在工作进程中存在一个主进程master = True# 保存启动之后主进程的进程号pidfile = uwsgi.pid# 设置uwsgi后台运行,运行信息保存在uwsgi.logdeamonize = uwsgi.log# 设置虚拟环境的路径virtualenv = /home/fatpuffer/.virtualenvs/dailyfresh

第二步:nginx配置转发请求给uwsgi

location / {# 包含uwsgi的请求参数include uwsgi_params;# 转交请求给uwsgiuwsgi_pass uwsgi服务器的ip:port}

第三步:新建文件夹用来保存我们项目中的静态文件

sudo mkdir -p /var/www/dailyfresh/static

该目录需要用管理员权限才能访问,所以我们需要修改其权限

sudo chmod 777 /var/www/dailyfresh/static/

第四步:配置nginx静态文件访问路径

location /static {# 指定静态文件存放的目录alias /var/www/dailyfresh/static/;}

第五步:收集项目中的静态文件到上述目录中

打开项目配置文件settings.py,指定要收集静态文件到哪里

STATIC_ROOT = '/var/www/dailyfresh/static'

第六步:执行收集命令

python3 manage.py collectstatic

第七步:对接我们的静态页面服务器的nginx以下部分没有可以不用看

该nginx配置如下

server {listen 80;server_name localhost;location /static {alias /home/fatpuffer/Desktop/dailyfresh/static;}location / {root /home/fatpuffer/Desktop/dailyfresh/static;index index.html index.htm;}}

配置请求转发,当用访问/时我们转发到该服务器上

# 等号代表精确匹配location = / {# 传递请求给静态文件服务器的nginxproxy_pass http://文件存储系统ip:80;}

重启nginx

cd /usr/local/nginxsudo sbin/nginx -s reload

第八步:配置负载均衡

说明:每个服务器都要有项目源码,必须有uwsgi.ini配置文件,配置同上,必须写自己服务器的真实IP,且各个配置文件之间端口不能重复

nginx配置文件中server上面添加upstream

upstream dailyfresh {server 项目服务器1 ip:port;server 项目服务器2 ip:port;server 项目服务器3 ip:port;}server {listen 80;server_name localhost;location / {# 包含uwsgi的请求参数include uwsgi_params;# 转交请求给uwsgi# uwsgi_pass uwsgi服务器的ip:portuwsgi_pass http://dailyfresh;}location /static {# 指定静态文件存放的目录alias /var/www/dailyfresh/static/;}location = / {# 传递请求给静态文件服务器的nginxproxy_pass http://文件存储系统ip:80;}}

重启nginx

cd /usr/local/nginxsudo sbin/nginx -s reload

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。