阿里云CentOS部署web.py生产环境初探
来源:互联网 发布:网络节点 编辑:程序博客网 时间:2024/06/10 02:41
在Upwork上面接了一个图像处理的web应用项目,考虑到原来学过python,选择了web.py框架进行实现,花了几天时间完成了相关功能及页面实现,并在本地测试通过。然而客户要求访问某个网址查看应用运行效果,于是便开始研究怎么部署到线上。
由于阿里云有优惠,于是选择了阿里云CentOS进行部署
- CnetOS 环境搭建
- nginx与uwsgi配置
- 启动运行
- 注意事项
- 错误及解决方案
1.CnetOS 环境搭建
购买云服务器,选择系统版本,我python开发是基于python2.7.12进行开发,因此选择“CentOS7 64位版本”。
远程连接进入主界面后,硬盘已经挂载,因此不需要进行其他操作,直接安装桌面
1、登录服务器,执行命令安装桌面环境。
先安装MATE Desktop
yum groups install "MATE Desktop"
安装好MATE Desktop 后,再安装X Window System。
yum groups install "X Window System"
设置服务器默认启动桌面
systemctl set-default graphical.target
安装完成后,执行命令重启服务器,在ECS服务器控制台,使用管理终端登陆服务器桌面。
reboot
2. python 应用环境
CentOS7 目前python自带版本为2.7.3 因此无需进行升级
直接使用pip install 进行安装应用所需要的包:
安装完毕后,将应用程序目录拷贝至某一目录 运行Python XXX.py 进行测试,打开http://host:8080 一切正常即表示环境移植成功。
3. nginx与uwsgi配置
Nginx 使用yum 直接安装 安装后路径为 /usr/sbin/nginx
uwsgi 使用pip 安装
安装完毕后,首先对原应用程序进行修改:
app = web.application(urls, globals()) #下面增加一行application = app.wsgifunc()
建立uwsgi的配置文件: uwsgi_conf.ini
[uwsgi]socket = :8090http-keepalive = 1master = 1wsgi-file = index.pymaser=true vhost=true workers=50max-requests=5000 limit-as=512processes = 8disable-logging = 1buffer-size = 50000harakiri = 5
socket: 监听窗口 这个需要和nginx保持一致
wsgi-file:应用程序启动文件 我的配置文件是直接建立在应用程序目录下,所以直接是文件名。
其他的基本没变,具体含义还没弄明白
修改nginx配置文件: 注意 nginx的运行目录和配置文件不在一起
我这里配置文件是: /etc/nginx/nginx.conf
运行目录是: /usr/sbin/nginx
- server_name 修改为云服务器的公网ip地址,这里我没有申请域名,如果有域名这里改变即可
- location 中修改:root 设置为应用程序目录 ;uwsgi_pass 设置为如下,注意这里的端口号
- location /static 和 location ~* ^.+.(jpg|jpeg|gif|png|bmp)$ 部分是参考网上某一个,不知道起作用不。
server { listen 80 ; #server_name localhost; server_name XXX.XXX.XXX.XXX; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { root /usr/code/Image; include uwsgi_params; uwsgi_pass 127.0.0.1:8090; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } location /static{ alias /usr/code/Image/static; } location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ { access_log off; root /usr/code/Image; expires 30d; break; } }
3.启动运行
进行如上设置后,开启应用:
/usr/sbin/nginx -t
这个是测试配置文件
/user/sbin/nginx
这个是启动
开启uwsgi:
uwsgi uwsgi_conf.ini
开启uwsgi
最后浏览器访问公网ip 即可
4.注意事项
以前完全没接触过linux系统,这几天的配置才发现这么麻烦,但是习惯了其实也还好。。。
- uwsgi 每次启动之后关闭 直接 Ctrl+C 即可
- nginx 启动之后想要关闭
killall - 9 /usr/sbin/nginx
`5.错误及解决方案
- 出现无法打开数据库的问题:
解决办法:数据库路径不要使用绝对路径,否则可能会出现权限问题 - html 页面图片不显示的问题
解决办法:web.py的图片资源必须放在static目录中,另外,路径不要使用绝对路径../static/xxx.bmp
即可
3.html 页面图片不刷新
解决办法:当img的src 没有变而内容发生改变时,地址没变默认不尽兴刷新,目前我采用的办法是生成随机地址,强制刷新。
总之,linux下面开发和windows 开发有很多不同==
- 阿里云CentOS部署web.py生产环境初探
- 阿里云服务器centos部署web环境的步骤详解
- 阿里云web环境部署
- 阿里云服务器连接以及centos 搭建 web java环境(linux java部署 tomcat部署)
- 阿里云服务器连接以及centos 搭建 web java环境(linux java部署 tomcat部署)
- 阿里云服务器连接以及centos 搭建 web java环境(linux java部署 tomcat部署)
- 阿里云服务器连接以及centos 搭建 web java环境(linux java部署 tomcat部署)
- 阿里云 CentOS Java Web 项目部署
- 阿里云linux centos 一键部署web环境--图文详解
- 阿里云 linux下部署web环境
- 阿里云部署java web运行环境
- 阿里云服务器部署正式web环境
- 阿里云 centos 环境配置与 django 部署
- 阿里云centos部署JDK+TOMCAT基础环境
- 在阿里云centOs上部署项目环境<一>
- 在阿里云centOs上部署项目环境<三>
- linux服务器部署nodejs环境(阿里云centOS)
- 阿里云CentOS部署Java Web项目步骤
- C# 装箱和拆箱
- 可重入函数与线程安全
- 简单暴力沉浸式
- 【BFS】poj 1915 Knight Moves
- STM32CubeMx
- 阿里云CentOS部署web.py生产环境初探
- 数据对接—kettle使用知识10
- zookeeper伪分布式配置安装
- Iterable与Iterator 区别
- 实现 tomcat部署web项目的3种方法
- 05.04 rsync备份服务章节
- 开篇记录
- [题解]codeforces 280d k-Maximum Subsequence Sum
- Apache Kudu 1.4.0 中文文档