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服务
启动,访问服务,部署完成