django部署
文章目录
利用Nginx部署django网站
- 服务器: Centos
- 工具:XShell
系统配置
系统环境
-
yum update
:更新系统 -
yum install yum-utils
:安装工具与开发相关组件 -
yum groupinstall development
: 打包安装开发相关组件
Python 环境
-
yum install https://centos7.iuscommunity.org/ius-release.rpm
软件资源库 -
yum install python36u
:安装Python3.6 -
yum install python36u-pip
:安装Python3.6的pip包 yum install python36u-devel
- 修改默认打开的python版本
centos默认的python版本是python2.7,如果要使用3.6版本,可以用
python3.6
来运行,也可以直接修改默认的python版本
vi ~/.bashrc
- 添加
alias python='/usr/bin/python3.6'
- Esc
:wq
保存退出
-. .bashrc
应用修改
上传站点配置虚拟环境
liunx命令
-
ls
查看当前目录下的文件 -
cd
进入某个目录 -
mkdir
创建目录
python 导入导出依赖包
-
pip freeze > requirements.txt
导出所依赖的包到requirements.txt -
pip install -r requirements.txt
安装requirements.txt中的所以库
上传站点
- 选择ftp工具上传
- 使用git上传
配置虚拟环境
-
python3.6 -m venv venv_myspace
创建虚拟环境 -
source venv_myspace/bin/activate
**虚拟环境 -
pip install -r requirements.txt
导入站点的依赖库
Web 服务器
uwsgi 安装使用
-
pip3 install uwsgi
安装uwsgi网关接口 - 测试网关接口
-
使用
vi test.py
创建测试代码 -
使用
uwsgi --http :8000 --wsgi-file test.py
运行测试文件
测试
如果没打开不开上述页面,请检查服务器是否启用8000端口 -
Nginx安装启动
-. 安装:yum install nginx
-. 操作
-
启动 :
systemctl start nginx.service
“Centos 7系统”Centos 6及以下版本:
service start nginx
-
重启 :
systemctl restart nginx.service
-
停止 :
systemctl stop nginx.service
-
安装完成后在/etc/nginx/nginx.conf 文件中可以看到一个配置节
inxlude /etc/nginx/conf.d/*.conf
,它的含义是导入/etc/nginx/conf.d/下的所有.conf文件。这样我们在配置nginx的时候就不用去操作nginx.conf主文件,保证了主配置文件的完整性也给我们提供了最大的灵活性。
Nginx特定站点配置
- 在
/etc/nginx/
目录下有一个uwsgi_params配置文件,这个文件是nginx于uwsgi衔接的一个主要配置文件,我们需要将这个文件拷贝到站点跟中cp /etc/nginx/uwsgi_params /站点根/uwsgi_params
- 创建站点的Nginx配置文件在
/etc/nginx/conf.d/
upstream django {
server unix:///var/run/myspace.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他
}
server {
listen 80; # 监听的端口
server_name jung.wang; # 配置域名
charset utf-8; # 字符集
client_max_body_size 75M; # 客户端请求发送的内容最大不要超过多少M
# 指定静态文件路径
location /static {
alias /var/www/MySpace/static;
}
# 指定项目路径uwsgi
# 这个location就和咱们Django的url类似,
location / {
uwsgi_pass django;
include /var/www/MySpace/uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
}
}
uwsgi特定站点配置
- 在站点下创建.ini的uwsgi配置文件
vi myspace.ini
[uwsgi]
chdir = /var/www/MySpace # 指定项目的根目录
module = MySpace.wsgi # 指定项目的wsgi
home = /var/www/venvs/venv_myspace # 指定虚拟环境的位置
master = true # 是否主进程
processes = 20 # 工作进程
socket = /var/run/myspace.sock # socket 在程序运行时会自动创建
chmod-socket = 666 # socket文件权限
vaccum = true # 每次启动时清除之前配置
2.在项目下的settings.py中配置ALLOWED_HOSTS(允许的主机)ALLOWED_HOSTS = ['118.***.***.156','junh.wang',]
注意检查是否关闭调试模式
DEBUG = False
3.因为新增了.ini配置文件,所以要重启ngnix
4.在虚拟环境中运行uwsgi --ini /var/www/MySpace/myspace.ini
5.如果站点访问有问题,可以查看nginx的日志文件,查询问题原因cat /var/log/nginx/error.log