设为首页 收藏本站
查看: 1035|回复: 0

[经验分享] Python-在CentOS7上使用nginx+uwsgi部署Flask框架开发的Web项目

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-15 10:24:15 | 显示全部楼层 |阅读模式
第一步:准备CentOS7服务器
    此次部署我采用的是部署到本机的虚拟机环境中,所以先在VM上安装CentOS7。为了避免每次启动虚拟机服务器IP地址就发生改变,所以先配置静态IP,首先在VM workstation的菜单栏上找到虚拟网卡配置菜单,然后将adapter8的dhcp去掉,然后查看gateway(中文名网关)。在centos中主要涉及一个文件的配置,在/etc/sysconfig/network_config/(网卡编号,类似cfg_eth0的文件),然后编辑5个地方:

    1.BOOTPROTO=static 静态IP

    2.ONBOOT=yes 随计算机启动

    3.NETMASK=255.255.255.0 子网掩码

    4.GATEWAY=192.168.3.2 网关,和之前在VM中查看的gateway相同

    4.IPADDR=192.168.3.7 需要和网关在同一个网段内

    5.DNS1=192.168.3.2 DNS和网关相同

最后输入命令service restart network重启网络。

第二步:安装Python
    因为CentOS7自带了python2.7.5,所以这里我就不再重新安装Python,如果需要安装python可以找其他资料,安装其他版本的python时要使用make && make altinstall避免覆盖之前版本的python导致系统中其他使用到默认版本python的程序无法运行。然后再安装pip,我采用源码安装,首先去pip官网下载pip的压缩包,然后解压后,进入解压后的目录,输入python setup.py install来安装pip,如果提示缺少setuptools模块,则先安装setuptools模块,可以使用yum安装,执行yum install setuptools安装,也可以使用其他安装方式,安装好setuptools后再安装pip,pip安装好后,进入项目文件夹,因为我的项目在之前已经通过pip freeze >requirements.txt生成了需求文件,所以当迁移到其他环境时可以直接使用pip install -r requirements.txt来安装项目需要的模块。到此python的环境就安装完成了,可以在python下启动项目,看python环境是否配置成功。

    如果服务器中可能会存在多个不同python环境的项目,可以使用virtualenv创建独立的python环境,可以通过pip安装,安装好后可以在项目文件夹下执行virtualenv venv创建虚拟环境,可以加上-no-site-packages参数不拷贝真实python环境中的site-packages到新的虚拟环境中以创建一个干净的Python环境。

第三步:安装nginx和uwsgi
    先去nginx官网下载源码,然后执行./configure && make && make install来安装,nginx会被自动添加的/usr/bin/nginx执行环境下,可以直接执行nginx命令,通过nginx -c conf/nginx.conf(nginx的配置文件)来启动nginx,启动成功后可以通过访问127.0.0.1来验证nginx是否启动成功,nginx的默认端口是80,可以通过nginx安装目录下的conf目录下nginx.conf来配置。

    然后再安装uwsgi,同样采用源码的方式安装,安装好后需要通过配置nginx来把所有请求传给uwsgi处理。

    配置nginx的很简单,编辑nginx.conf文件,找到server节点下的localtion,localtion / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
root html;
index index.html index.htm
}

    然后通过ps -ef | grep nginx找到nginx的线程master线程编号,然后通过kill -HUP nginx线程编号重启nginx,这个时候再访问127.0.0.1就会出错。

    接下来配置uwsgi,在项目文件夹下创建app_config.ini配置文件,文件名可以自定义,内容为:
[uwsgi]
socket=127.0.0.1:8099
chdir=/var/www/my-website/ #项目路径
wsgi-file=manage.py #项目的启动的主文件,也就是app = Flask(__name__)的创建文件,这里需要灵活一点
callable=app #这个就是app = Flask(__name__)中的app对象名称
processes=4 #配置启动多少个进程来处理请求
    配置好后通过uwsgi app_config.ini来启动uwsgi,这里的app_config.ini需要绝对或相对路径

    配置好后再访问127.0.0.1就能够访问项目中路由地址"/"的路由函数。


    到此python项目就部署成功,有什么问题后面再补充,本文是完全盲写,有些命令或配置名称可以输入有错,如果出错可以自行查阅。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-204261-1-1.html 上篇帖子: ubuntu上用python安装扩展包遇到的一些问题 下篇帖子: python模块: OS模块 开发 项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表