布署
当项目开发完成后,需要将项目代码放到服务器上,这个服务器拥有固定的IP,再通过域名绑定,就可以供其它人浏览,对于python web开发,可以使用wsgi、apache服务器,此处以wsgi为例进行布署。
服务器首先是物理上的一台性能高、线路全、运行稳定的机器,分为私有服务器、公有服务器。
- 私有服务器:公司自己购买、自己维护,只布署自己的应用,可供公司内部或外网访问,成本高,需要专业人员维护,适合大公司使用。
- 公有服务器:集成好运营环境,销售空间或主机,供其布署自己的应用,适合初创公司使用,成本低。
常用的公有服务器,如阿里云、青云等,可按流量收费或按时间收费。服务器还需要安装服务器软件,此处需要uWSGI、Nginx。
服务器架构如下图:
示例
1)布署前需要关闭调试、允许任何机器访问,打开test6/settings.py文件。
2)打开templates/booktest/index.html文件,修改如下:
3)将图片sg.png拷贝到static/img/目录下。
4)运行服务器,在浏览器中输入如下网址:
浏览效果如下图,图片是看不到的。
1.搭建服务器虚拟环境
1)在本机进入虚拟环境,执行命令导出当前需要的所有包。
2)通过ftp软件将项目代码和plist.txt文件上传到服务器。
3)创建虚拟环境,在虚拟环境上安装包。
2.WSGI
在生产环境中使用WSGI作为python web的服务器。WSGI:全拼为Python Web Server Gateway Interface,Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行。
项目默认会生成一个wsgi.py文件,确定了settings模块、application对象。
- application对象:在Python模块中使用application对象与应用服务器交互。
- settings模块:用于进行项目配置。
uWSGI
uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器。uWSGI代码完全用C编写,效率高、性能稳定。
1)安装uWSGI。
2)配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下:
3)启动。
4)查看。
效果如下图:
5)停止。
6)在浏览器中输入如下网址:
浏览效果如下图,图片是看不到的。
7)测试没问题,将配置中启用socket,禁用http。
8)停止uwsgi服务,然后再启动uwsgi。
3.Nginx
使用nginx的作用主要包括负载均衡、反向代理。
- 点击查看官方网站
1)下载nginx后放到桌面上,解压缩。
2)进入nginx-1.6.3目录,依次执行以下命令进行安装。
3)默认安装到/usr/local/nginx/目录,进入此目录。
4)启动。
5)查看进程。
6)停止。
7)打开浏览器,输入如下网址:
浏览效果如下图:
指向uwsgi项目
1)打开conf/nginx.conf文件。
2)在server节点下添加新的location项,指向uwsgi的ip与端口。
代码效果如下图:
3)关闭nginx后再开启。
4)打开浏览器,刷新后如下图:
静态文件
所有的静态文件都会由nginx处理,不会将请求转到uwsgi。
1)打开conf/nginx.conf文件。
2)在server节点下添加新的location项,用于处理静态文件。
3)在服务器上创建如下目录。
修改目录权限。
最终目录结构如下图:
4)修改test6/settings.py文件。
5)收集所有静态文件到static_root指定目录。
按提示输入yes,收集文件。
6)停止后再启动nginx服务。
7)在浏览器中刷新,浏览效果如下图:
布署完成。