Mac系统下使用 Nginx+uWSGI 来部署Django项目
- 1 brew
-
- 1.1 brew的介绍
- 1.2 brew的常用命令
- 2 Nginx
-
- 2.1 Nginx的介绍
- 2.2 Nginx的安装与常用命令
- 2.3 Nginx的配置
- 2.4 Nginx的运行日志
- 3 uWSGI
-
- 3.1 WSGI的介绍
- 3.2 uWSGI的安装与常用命令
- 3.3 uWSGI的配置
- 4、部署Django项目
-
- 4.1 部署流程
- 4.2 部署结果演示
本篇博客主要介绍使用brew安装Nginx与使用conda来安装uWSGI来部署Django项目。
1 brew
1.1 brew的介绍
brew又叫Homebrew,是Mac中的一款软件包管理工具,通过brew可以很方便的在Mac中安装软件或者是卸载软件.一般Mac电脑会默认安装有brew.
1.2 brew的常用命令
-
常用指令如下:
brew search nginx
-
brew 安装软件
brew install nginx
-
brew 卸载软件
brew uninstall nginx
-
brew 升级
sudo brew update
-
查看安装信息(经常用到, 比如查看安装目录等)
sudo brew info nginx
-
查看已经安装的软件
brew list
2 Nginx
2.1 Nginx的介绍
-
Nginx是轻量级的高性能Web服务器,提供了诸如HTTP
代理和反向代理、负载均衡、缓存等一系列重要特性,
- 在实践之中使用广泛。
- C语言编写,执行效率高
- nginx 作用
- 负载均衡, 多台服务器轮流处理请求
- 反向代理
-
原理:
客户端请求nginx,再由nginx 请求 uwsgi, 运行django下 的python代码
2.2 Nginx的安装与常用命令
-
安装
brew search nginx
安装完nginx后,mac的终端会有英文提示,可以直接输入nginx来运行nginx服务。
-
启动nginx服务
sudo brew services start nginx
利用http://localhost:8080进行访问, 如果出现如下界面,说明启动成功.
- Nginx的常用命令
-
启动
brew services start nginx
-
停止
brew services stop nginx
-
重启
brew services restart nginx
-
查看
cat usr/local/etc/nginx/nginx.conf
-
编辑
vim usr/local/etc/nginx/nginx.conf
-
2.3 Nginx的配置
- 安装之后nginx配置文件所在的目录
- /usr/local/etc/nginx
- 修改nginx的配置文件 /usr/local/etc/nginx/nginx.conf 和 nginx.conf.default 文件
- 在server节点下添加新的location项,指向uwsgi的ip与端口。
server {
...
location / {
uwsgi_pass 127.0.0.1:8000; # 重定向 到127.0.0.1的8000端口
include /etc/nginx/uwsgi_params; # 将所有的参数转到uwsgi下 }
...
}
2.4 Nginx的运行日志
-
nginx日志存放的目录
/usr/local/var/log/nginx
- access.log 存放的是访问的日志信息
- error.log 存放的是报错的日志信息
3 uWSGI
3.1 WSGI的介绍
WSGI (Web Server Gateway Interface)Web服务器网
关接口,是Python应用程序或框架和Web服务器之间
的一种接口,被广泛使用
它实现了WSGI协议、http等协议。Nginx中
HttpUwsgiModule的作用是与uWSGI服务器进行交
换。WSGI是一种Web服务器网关接口。
使用 python manage.py runserver 通常只在开发和
测试环境中使用。
-
当开发结束后,完善的项目代码需要在一个高效稳定的
环境中运行,这时可以使用uWSGI
-
uWSGI是WSGI的一种,它可以让Django、Flask等开发
的web站点运行其中.
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。
3.2 uWSGI的安装与常用命令
- 安装uWSGI
- 方法一 可以使用 pip install uwsgi
- 方法二 可以使用 conda install uwsgi
- 方法三 可以使用 brew install uwsgi
- 启动uWSGI
- 需要在项目同名目录下执行 uwsgi --ini uwsgi.ini 命令
- 关闭uWSGI
- 需要在项目同名目录下执行 uwsgi --stop uwsgi.pid 命令
3.3 uWSGI的配置
- 添加配置文件 项目文件夹/uwsgi.ini
- 如: mysite1/uwsgi.ini
[uwsgi]
# 套接字方式的 IP地址:端口号
socket=127.0.0.1:8000
# Http通信方式的 IP地址:端口号
# http=127.0.0.1:8000,当使用Nginx来代理时注释掉本行代码
# 项目当前工作目录
chdir=/home/tarena/.../my_project 这里需要 换为项目文件夹的绝对路径
# 项目中wsgi.py文件的目录,相对于当前工作目录
wsgi-file=my_project/wsgi.py
# 进程个数
process=4
# 每个进程的线程个数
threads=2
# 服务的pid记录文件
pidfile=uwsgi.pid
# 服务的目志文件位置
daemonize=uwsgi.log
4、部署Django项目
4.1 部署流程
-
部署Django项目
当按照以上的流程配置好Nginx和uWSGI之后,我们只需要分别启动Nginx和uWSGI就可以运行Django项目了。
- 使用 brew services start nginx 命令启动Nginx服务
- 需要在项目同名目录下执行 uwsgi --ini uwsgi.ini 命令启动uWSGI服务