栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Centos7+uwsgi+Nginx+Django进行项目部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Centos7+uwsgi+Nginx+Django进行项目部署

1. 配置系统环境
yum -y install  gcc  gcc-c++
yum -y install wget  
yum -y install zlib zlib-devel  openssl  openssl-devel ncurses-devel sqlite sqlite-devel bzip2-deve readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum -y install epel-release
yum -y install libffi-devel  #编译Python时候,如果缺少,会导致pip安装不成功
yum install psmisc  #帮助管理/proc目录,fuser,killall,pstree等
2. 源码安装Python3.7.4 && Django
  • cd /opt 进入opt目录
  • 使用wget命令下载压缩包
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -zxvf Python-3.7.4.tgz
cd Python-3.7.4
./configure --prefix=/usr/local/python3
make && make install
  • 创建软连接
cd ~
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  • 给python3安装django
pip install django
建立软连接
ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
  • 建立python项目文件夹与虚拟环境文件夹
cd /data/
mkdir wwwroot #项目文件夹
mkdir env #虚拟环境文件夹
  • 本地导出项目的依赖
pip freeze > ./requirements.txt
  • 上传自己的项目并测试
cd /data/env
virtualenv --python=/usr/bin/python3 mysite(虚拟环境名)#创建虚拟环境
soure /data/env/mysite/bin/activate #激活虚拟环境
pip install -r requirements.txt #下载项目依赖
python3  manage.py runserver
3. 安装配置uwsgi
soure /data/env/mysite/bin/activte #使用python虚拟环境
pip instll uwsgi #pip直接下载
  • 准备uwsgi服务器配置文件
  • 在manage.py的同级目录下,新建一个uwsgi.xml文件,配置此文件
  
  127.0.0.1:8000 
  /data/wwwroot/demo/             
  demo.wsgi  
  4     
  uwsgi.log 

  • 在manage.py的同级目录下,新建一个uwsgi.ini文件,配置此文件
[uwsgi]
# 使用Nginx连接时使用,Django程序所在服务器地址
socket=172.16.21.25:8001
# 直接做web服务器使用,Django程序所在服务器地址
# http=172.16.21.25:8001
# 项目目录
chdir=项目路径/meiduo_project/meiduo_mall
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=meiduo_mall/wsgi.py
# 进程数
processes=4
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=虚拟环境路径/.virtualenvs/虚拟环境
4. 安装配置Nginx
  • 安装
# 1.进入home目录
cd /home  
# 2.下载nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
# 3.解压
tar -zxvf nginx-1.13.7.tar.gz
# 4.进入解压后的nginx-1.13.7文件夹
cd nginx-1.13.7
# 5.编译安装
./configure
make && make install
  • ginx一般默认安装好的路径为/usr/local/nginx 在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
  • 然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
vim nginx.conf
events {
   worker_connections  1024;
}
http {
   include       mime.types;
   default_type  application/octet-stream;
   sendfile        on;
   server {
       listen 80;
       server_name  118.25.19.221; #改为自己的域名,没域名修改为127.0.0.1:80
       charset utf-8;
       location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
          uwsgi_param UWSGI_script demo.wsgi;  #wsgi.py所在的目录名+.wsgi
          uwsgi_param UWSGI_CHDIR /data/wwwroot/demo/; #项目路径
         
       }
       location /static/ {
       alias /data/wwwroot/demo/static/; #静态资源路径
       }
   }
}
5. 启动服务
  • 进入项目目录下将settings.py中:
ALLOWED_HOSTS = ['*']
DEBUG = False
  • cd /data/项目
  • 启动 uwsgi
uwsgi --ini uwsgi.ini
uwsgi:  uwsgi -x demo.xml
  • cd /usr/local/nginx/sbin/
  • 启动nginx:
./nginx
6.常用命令

关闭nginx&&uwsgi

killall -9 nginx  
killall -9 uwsgi

查看服务器正在运行的端口

netstat -ntpl


关闭8000端口(端口被占用)

sudo fuser -k 8000/tcp        
#启动Django项目,如果出现Error:That port is already in use.   关掉8000的进程就好

重启nginx

nginx -t #检查nginx配置是否正确
nginx -s reload  
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308987.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号