192【ajax技术】Flask和Ajax技术
193【部署】开发机上的准备工作
194【部署】服务器上安装vim、mysql、memcached等
195【部署】服务器上安装Python环境、git、虚拟环境等
196【部署】项目运行环境配置

197【部署】uwsg部署项目

安装uwsgi:
uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是他的强项。uwsgi是使用python编写的,因此通过pip3 install uwsgi就可以了。(uwsgi必须安装在系统级别的Python环境中,不要安装到虚拟环境中)。然后创建一个叫做uwsgi.ini的配置文件:

[uwsgi]

# 必须全部为绝对路径
# 项目的路径
chdir           = /srv/zlbbs/
# Django的wsgi文件
wsgi-file       = /srv/zlbbs/zlbbs.py
# 回调的app对象
callable        = app
# Python虚拟环境的路径
home            = /root/.virtualenvs/xfz-env

# 进程相关的设置
# 主进程
master          = true
# 最大数量的工作进程
processes       = 10

http            = :8000

# 设置socket的权限
chmod-socket    = 666
# 退出的时候是否清理环境
vacuum          = true

然后通过命令uwsgi --ini uwsgi.ini运行,确保没有错误。然后在浏览器中访问http://ip地址:8000,如果能够访问到页面(可能没有静态文件)说明uwsgi配置没有问题。

198【部署】nginx和uwsgi部署项目

安装和配置nginx:
虽然uwsgi可以正常的部署我们的项目了。但我们还是依然要采用nginx来作为web服务器。使用nginx来作为web服务器有以下好处:

  • uwsgi对静态文件资源处理并不好,包括响应速度,缓存等。
  • nginx作为专业的web服务器,暴露在公网上会比uwsgi更加安全一点。
  • 运维起来更加方便。比如要将某些IP写入黑名单,nginx可以非常方便的写进去。而uwsgi可能还要写一大段代码才能实现。

安装:
通过apt install nginx即可安装。

nginx简单操作命令:

  • 启动:service nginx start
  • 关闭:service nginx stop
  • 重启:service nginx restart
  • 测试配置文件:service nginx configtest

添加配置文件:
在/etc/nginx/conf.d目录下,新建一个文件,叫做zlbbs.conf,然后将以下代码粘贴进去:

upstream zlbbs{
    server unix:///srv/zlbbs/zlbbs.sock; 
}

# 配置服务器
server {
    # 监听的端口号
    listen      80;
    # 域名
    server_name 192.168.0.101; 
    charset     utf-8;

    # 最大的文件上传尺寸
    client_max_body_size 75M;  

    # 静态文件访问的url
    location /static {
        # 静态文件地址
        alias /srv/zlbbs/static 
    }

    # 最后,发送所有非静态文件请求到django服务器
    location / {
        uwsgi_pass  zlbbs;
        # uwsgi_params文件地址
        include     /etc/nginx/uwsgi_params; 
    }
}

写完配置文件后,为了测试配置文件是否设置成功,运行命令:service nginx configtest,如果不报错,说明成功。
每次修改完了配置文件,都要记得运行service nginx restart

199【部署】supervisor管理uwsgi进程

200【部署】用supervisor管理celery进程