centos7 + Nginx+ HTTPS + uwsgi + python3.6 + Docker + Django1.11 + mysql 5.6 + virtualenv 环境搭建
环境搭建:
系统:
centos7.2 x64
开发环境:
python3.6
Django 1.11
虚拟环境:
[Docker](https://www.runoob.com/docker/centos-docker-install.html)
Docker ==>> [mysql 5.6](https://www.runoob.com/docker/docker-install-mysql.html)
Docker ==>> [redis:3.2](https://www.runoob.com/docker/docker-install-redis.html)
[virtualenv](https://www.django.cn/article/show-4.html) : 每个项目虚拟一个
HTTPS:
项目启动步骤
1、创建虚拟环境
cd /home/evn
virtualenv --python=/usr/bin/python3 项目名称
然后进入:cd /home/evn/项目名/bin
启动虚拟环境:source activate
2、上传项目并设置
在settings.py里设置:
1.关闭DEBUG模式。
DEBUG = False
2.ALLOWED_HOSTS设置为* 表示任何IP都可以访问网站。
ALLOWED_HOSTS = ['*']
3.数据库配置
cd /home/www/tencent/
上传文件,并解压 unzip 项目名
cd /home/www/tencent/项目名
3、设置 uwsgi中的xml
<uwsgi>
<socket>127.0.0.1:90</socket> <!-- 内部端口,自定义 -->
<chdir>/home/www/tencent/home/</chdir> <!-- 项目路径 -->
<module>home.wsgi</module> <!-- home为wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
新建一个文件,名称:项目名.xml,放入项目根目录
3、安装项目依赖库
执行:pip3 install -r requirements.txt
额外安装:pip3 install uwsgi
4、数据库迁移
1.python3 manage.py makemigrations ----记录一下数据库的变化
2.python3 manage.py migrate ----将变化同步到数据库中
5、启动uwsgi
uwsgi -x 项目名.xml
6、配置Nginx
nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
include /usr/local/webserver/nginx/conf/vhost/*.conf;#主要是这个地方,把新建的两配置文件包含进来
server {
listen 80 default_server;
server_name _;
return 404;
}
}
www.conf
server {
listen 443 ssl;
server_name www.liqianglog.top liqianglog.top;
root /home/www/tencent/home/;#项目路径
charset utf-8;
ssl_certificate /home/ssl/tencent/www/public.pem;#.pem证书路径
ssl_certificate_key /home/ssl/tencent/www/private.key;#.key证书路径
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
location / {
root html/www;
include uwsgi_params;
uwsgi_pass 127.0.0.1:90;
uwsgi_param UWSGI_SCRIPT home.wsgi;
uwsgi_param UWSGI_CHDIR /home/www/tencent/home/;#项目路径
}
location /static/ {
alias /home/www/tencent/home/static/; #静态资源路径
}
access_log /home/www/tencent/home/www.liqiangtop.log.log;
error_log /home/www/tencent/home/www.liqiangtop.log.error.log;
}
命令:
pip3 freeze > requirements.txt # 生成requirements.txt文件
pip3 install -r requirements.txt # 安装requirements.txt依赖
virtualenv --python=/usr/bin/python3 项目名称 # 创建virtualenv虚拟环境
source activate # 启动virtualenv虚拟环境
deactivate # 退出virtualenv虚拟环境
rmvirtualenv 虚拟环境名称 # 删除irtualenv虚拟环境
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx