项目上线最后工作——布署环境
2017-10-28 14:31
232 查看
当项目开发完成后,需要将项目代码放到服务器上,这个服务器拥有固定的IP,再通过域名绑定,就可以供其它人浏览,对于python web开发,可以使用wsgi、apache服务器,此处以wsgi为例进行布署
服务器首先是物理上的一台性能高、线路全、运行稳定的机器,分为私有服务器、公有服务器
私有服务器:公司自己购买、自己维护,只布署自己的应用,可供公司内部或外网访问,成本高,需要专业人员维护,适合大公司使用
公有服务器:集成好运营环境,销售空间或主机,供其布署自己的应用,适合初创公司使用,成本低
常用的公有服务器,如阿里云、青云等,可按流量收费或按时间收费
服务器还需要安装服务器软件,此处需要uWSGI、Nginx
服务器架构如下图
打开templates/booktest/index.html文件,修改如下
将图片sg.png拷贝到static/img/目录下
运行服务器,在浏览器中输入如下网址
浏览效果如下图,图片是看不到的
通过ftp软件将项目代码和plist.txt文件上传到服务器
创建虚拟环境,在虚拟环境上安装包
WSGI:全拼为Python Web Server Gateway Interface,Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行
项目默认会生成一个wsgi.py文件,确定了settings模块、application对象
application对象:在Python模块中使用application对象与应用服务器交互
settings模块:用于进行项目配置
uWSGI代码完全用C编写,效率高、性能稳定
安装uWSGI
配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下
启动
查看
效果如下图
停止
在浏览器中输入如下网址
浏览效果如下图,图片是看不到的
测试没问题,将配置中启用socket,禁用http
停止uwsgi服务,然后再启动uwsgi
点击查看官方网站
下载nginx后放到桌面上,解压缩
进入nginx-1.6.3目录,依次执行以下命令进行安装
默认安装到/usr/local/nginx/目录,进入此目录
启动
查看进程
停止
打开浏览器,输入如下网址
浏览效果如下图
在server节点下添加新的location项,指向uwsgi的ip与端口
代码效果如下图
关闭nginx后再开启
打开浏览器,刷新后如下图
打开conf/nginx.conf文件
在server节点下添加新的location项,用于处理静态文件
在服务器上创建如下目录
修改目录权限
最终目录结构如下图:
修改test6/settings.py文件
收集所有静态文件到static_root指定目录
按提示输入yes,收集文件
停止后再启动nginx服务
在浏览器中刷新,浏览效果如下图
布署完成
服务器首先是物理上的一台性能高、线路全、运行稳定的机器,分为私有服务器、公有服务器
私有服务器:公司自己购买、自己维护,只布署自己的应用,可供公司内部或外网访问,成本高,需要专业人员维护,适合大公司使用
公有服务器:集成好运营环境,销售空间或主机,供其布署自己的应用,适合初创公司使用,成本低
常用的公有服务器,如阿里云、青云等,可按流量收费或按时间收费
服务器还需要安装服务器软件,此处需要uWSGI、Nginx
服务器架构如下图
示例
布署前需要关闭调试、允许任何机器访问,打开test6/settings.py文件DEBUG = False ALLOWED_HOSTS=['*',]
打开templates/booktest/index.html文件,修改如下
<html> <head> <title>第三方包</title> </head> <body> <h1>第三方包</h1> <hr> <h1>布署</h1> <img src="/static/img/sg.png"/> </body> </html>
将图片sg.png拷贝到static/img/目录下
运行服务器,在浏览器中输入如下网址
http://127.0.0.1:8000/
浏览效果如下图,图片是看不到的
搭建服务器虚拟环境
在本机进入虚拟环境,执行命令导出当前需要的所有包pip freeze > plist.txt
通过ftp软件将项目代码和plist.txt文件上传到服务器
创建虚拟环境,在虚拟环境上安装包
mkvirtualenv 虚拟环境名称 pip install -r plist.txt
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编写,效率高、性能稳定
安装uWSGI
pip install uwsgi
配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下
[uwsgi] #使用nginx连接时使用 #socket=127.0.0.1:8080 #直接做web服务器使用 http=127.0.0.1:8080 #项目目录 chdir=/home/python/Desktop/pytest/test6 #项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=test6/wsgi.py processes=4 threads=2 master=True pidfile=uwsgi.pid daemonize=uwsgi.log
启动
uwsgi --ini uwsgi.ini
查看
ps ajx|grep uwsgi
效果如下图
停止
uwsgi --stop uwsgi.pid
在浏览器中输入如下网址
http://127.0.0.1:8080/
浏览效果如下图,图片是看不到的
测试没问题,将配置中启用socket,禁用http
停止uwsgi服务,然后再启动uwsgi
Nginx
使用nginx的作用主要包括负载均衡、反向代理点击查看官方网站
下载nginx后放到桌面上,解压缩
tar zxvf nginx-1.6.3.tar.gz
进入nginx-1.6.3目录,依次执行以下命令进行安装
./configure make sudo make install
默认安装到/usr/local/nginx/目录,进入此目录
cd /usr/local/nginx/
启动
sudo sbin/nginx
查看进程
ps ajx|grep nginx
停止
sudo sbin/nginx -s stop
打开浏览器,输入如下网址
http://127.0.0.1/
浏览效果如下图
指向uwsgi项目
打开conf/nginx.conf文件sudo gedit conf/nginx.conf
在server节点下添加新的location项,指向uwsgi的ip与端口
location / { #将所有的参数转到uwsgi下 include uwsgi_params; #uwsgi的ip与端口 uwsgi_pass 127.0.0.1:8080; }
代码效果如下图
关闭nginx后再开启
打开浏览器,刷新后如下图
静态文件
所有的静态文件都会由nginx处理,不会将请求转到uwsgi打开conf/nginx.conf文件
sudo gedit conf/nginx.conf
在server节点下添加新的location项,用于处理静态文件
location /static { alias /var/www/test6/static/; }
在服务器上创建如下目录
sudo mkdir -vp /var/www/test6/static/
修改目录权限
sudo chmod 777 /var/www/test6/static/
最终目录结构如下图:
修改test6/settings.py文件
STATIC_ROOT='/var/www/test6/static/' STATIC_URL='/static/'
收集所有静态文件到static_root指定目录
python manage.py collectstatic
按提示输入yes,收集文件
停止后再启动nginx服务
在浏览器中刷新,浏览效果如下图
布署完成
相关文章推荐
- project server 2007自定义项目工作环境
- 我的开源项目工作最后总结
- Django-项目上线后,xadmin的static静态文件找不到,改为开发环境
- WIN7 环境下 VS2012 打开某些解决方案项目 提示 【已停止工作】 解决办法
- IT运维服务 - 终端用户工作环境服务项目
- 为了满足项目上线日期要求,我该怎么告诉我的团队工作更多时间?
- 产品项目上线svn预处理更新生产环境
- TP5项目在lnmp环境上线出现500错误
- linux环境下在Tomcat中布署项目
- MES项目导入-上线准备-ERP项目启动的准备工作流程与步骤
- Django Nginx Gunicorn Centos7 环境部署,将项目上线
- 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的
- 如何定制或修改Project Server 2007 项目工作环境模板
- 项目上线-环境切换
- 【配置阿里云 I】申请配置阿里云服务器,并部署IIS和开发环境,项目上线经验
- 为了满足项目上线日期要求,我该怎么告诉我的团队工作更多时间?
- 关于程序开发工作中,开发环境和生产环境布署的解决办法
- vue菜鸟从业记:完成项目最后一公里之真机测试和打包上线
- 工作项目环境配置IntelliJ.IDEA12+maven3+tomcat6.0+mysql
- 项目准备工作与环境搭建