Django(十五):django项目部署

centos操作环境,python3,nginx

1、安装django环境

1、到处django的开发环境

激活环境

pip freeze > package.txt

2、将包目录上传服务器,并进行安装

静package.txt 放在/opt 目录下

安装pip3 install -r package.txt

安装过程中出现超时错误:解决方法:pip install -r package.txt -i 源地址

 

2、上传django项目

将django项目放在/opt目录下

项目测试

systemctl stop firewalld

修改settings文件,修改 ALLOWED_HOSTS = [' * ']   允许所有的主机访问

启动项目

python3 manage.py runserver 0.0.0.0:8000

3、安装uwsgi

上面我们已经完成了python+Django环境的部署,接下来我们需要了解python的uwsgi框架。

python manage.py runserver 

这是一款适合开发阶段使用的服务器,只支持最高200的并发,显然不适合在生产中使用,我们在生产环境中,通常会用到apache或者nginx服务器作为django的生产服务器,今天我们以nginx为例子,但是在学习部署之前,我们首先要掌握在django和nginx之间的一个程序,就是wsgi,web服务器网关接口,英文叫 web server gateway interface 缩写为WSGI,是python应用程序或框架和web服务器之间的一种接口。

1、安装uwsgi

pip install uwsgi

创建软连接

ln /usr/local/python3/bin/uwsgi  /usr/bin/uwsgi

测试uwsgi

uwsgi --http 192.168.1.69:8000 --file Our Blog/wsgi/py --static-map=/static=static

在项目的主目录(manage.py)

uwsgi --http 10.10.14.180:80 --file Our Qshop/wsgi/py --static-map=/static=static

上述方法可以实现uwsgi驱动django 但是在工作当中,开发者更加配置文件的形式启动uwsgi

cd /opt

mkdir script

cd script

touch uwsgi.ini

编写uwsgi.ini

[uwsgi]

chdir = /opt/OurBlog   #项目目录

moudle = OurBlog.wsgi:application  #指定项目的application

socket = /opt/script/uwsgi.sock  #指定sock的文件路径

workers = 5  #进程个数

pidfile = /opt/script/uwsgi.pid  

http = 192.168.69:8000  #指定IP端口

static-map = /static/=/opt/OurBlog/static  #指定静态文件

uid = root  #用户

gid = root  #组

master = true  #启动主进程

vacuum = true  #自动移除unix Socket和pid文件当服务停止的时候

enable-thread = true    #启动线程

thunder-lock=true  #系列化接收的内容  如果可能的话

harakiri = 30   # 设置自中断时间

post-buffering=4096  #设置缓冲

daemonize = /opt/script/uwsgi.log  #设置日志目录

启动uwsgi

cd /opt/script

uwsgi --ini uwsgi.ini  ##使用ini文件启动uwsgi

使用浏览器访问

停止uwsgi

pkill -9 uwsgi

4、安装NGINX

 

下载NGINX

wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

解压NGINX包

tar -zxvf nginx-1.12.2.tar.gz

cd nginx-1.12.2

./configure \

make && make install

创建软连接

ln -s /usr/local/nginx/sbin/nginx/  /usr/bin/nginx

启动nginx查看效果

5、修改NGINX的配置文件

进行配置文件备份

具体配置如下: vi nginx.conf

修改server字段

listen 监听端口

server_name 服务名字

charset utf -8  #服务器编码

access_log  /var/log/nginx/access.log  main;  #访问日志路径,注意:这个目录可能没有,需要创建

gzip_types  #压缩格式

error_log  /var/log/nginx/error.log error ;  #错误日志注意:这个目录可能没有,需要创建

location / {

                 include  uwsgi_params;  #nginx加载uwsgi模块

                uwsgi_connect_timeout 30;   #链接超时时间

                uwsgi_pass unix:/opt/script/uwsgi.sock;  #nginx对应的uwsgi socket文件

}

location  = /static/  {

           alias  /opt/OurBlog/static;  #静态文件路径

           index  index.html  index.htm;   #首页

}

 

创建error.log 日志文件

保证NGINX和uwsgi全部停止,然后从新启动

启动uwsgi和nginx

uwsgi  --ini  uwsgi.ini

nginx

可能会出错:80端口被占用

解决方法:杀死80端口的服务

netstat  -ntlp/grep 80

修改uwsgi.ini

修改http=127.0.0.1:8000 不允许外网通过ip+8000端口直接访问django服务

 

启动,访问服务,部署完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值