项目部署[UWSGI+NGINX]
2017-12-22 本文已影响64人
不一样的丶我们
通过UWSGI服务器部署Django项目, 通过nginx进行反向代理
- 连接远程服务器,确保工作目录是存在的,同时工作目录里面虚拟环境也是存在的
- 工作目录里面要有虚拟环境文件夹 上传专用的文件夹 工作文件夹
- 获取django项目的虚拟环境下面的第三方的安装包
- 在window命令窗口下进入开发环境的虚拟环境,然后进入项目所在目录
- 执行
pip freeze > pkg.txt
命令收集虚拟环境下面的安装包
- 执行
- 在window命令窗口下进入开发环境的虚拟环境,然后进入项目所在目录
- 运行FlashFXP,连接远程服务器
- 输入远程服务器的ip地址 账号 密码
- 用FlashFXP把本地项目文件夹上传到远程服务器
- 上传项目之后 执行命令`cp -rf mysit/(项目名) /home/worker( 工作文件夹)
- 进入工作文件夹 进入项目
- 执行
pip install -r pkg.txt
安装第三方模块
- 执行
- 执行
pip install uwsgi
安装uwsgi服务器 - 执行
touch uwsgi.ini
创建一个uwsgi服务器的配置文件- vi uwsgi.ini
# 添加配置选项
[uwsgi]
# 配置和nginx连接的socket连接
socket=127.0.0.1:8000
# 配置项目路径
chdir=/home/worker/mysite #自己工作目录下面的项目文件夹
# 配置wsgi接口模块文件路径, 相对路径
wsgi-file=mysite/wsgi.py
# 配置启动的进程数量
processes=4
# 配置每个进程启动的线程的数量
threads=2
# 配置启动管理主进程
master=True
# 配置存放主线程编号的文件
pidfile=uwsgi.pid
# 配置dump日志路径
daemonize=uwsgi.log
:wq! # 保存退出
- 执行命令
uwsgi --ini uwsgi.ini
启动uwsgi.ini文件 - 执行命令
ps -ef|grep uwsgi
查询uwsgi是否正常启动 - 然后通过nginx进行反向代理
- 执行命令
apt-get install nginx
安装nginx - 如果是普通的用户 sudo 安装
- 执行命令
- 然后进入/etc目录下的nginx目录
- 执行命令
vi nginx.conf
配置nginx文件
# 第一行修改user为root用户
# 在include /etc/nginx/sites-enabled/*文件下配置
server {
# 监听80端口,服务器启动的时候就可以监听这个端口接收到的请求
listen 80;
# 配置 服务器名称, 一般指定ip地址即可
server_name 192.168.10.51;
location / {
# 指定接收到的请求中可以包含的是数据的类型
include uwsgi_params;
# 指定将请求反向转发到后端的某个服务器~ uwsgi服务器的socket选项
uwsgi_pass 127.0.0.1:8000;
}
}
- 在本地服务器通过ip地址访问下主机看是否正常启动了
- 用nginx配置静态服务器
- 执行
mkdir static_file
创建静态文件夹来手机静态文件 - 进入项目文件夹执行
vi settings.py
配置静态文件
# 在settings.py文件的最后面配置静态路径
STATIC_ROOT = "静态文件夹所在的路径"
:wq!保存文件
- 执行命令
python manage.py collectstatic
把静态文件采集到STATIC_ROOT指定的路径 - 执行命令
vi nginx.conf
再nginx文件里面配置静态文件
# 在上面的location下面配置static路径
location /static {
# 配置静态资源访问处理 如果客户端请求/static/...就自动转发/home/...static_file/..
alias /home /worker/mysite/static_file/; # 静态文件夹所在的路径
}
:wq! 保存退出
- 执行命令
nginx -s reload
重新加载nginx - 在浏览器中重新加载访问 项目运行正常
- 自此项目部署成功