分享

《第32天》运维工程师分享:web服务器如何解析python

 收藏乱七八糟 2016-09-22

明天会分享一下关于如何制作U盘里的linux,以及多功能的U盘启动,实现linux,window等引导。感兴趣的朋友可以关注一波!

昨天我们讲到了关于nginx如何响应php程序的方法。而作为运维工程师的必备技能之一——python。是我们今天要讲的重点,python的功能非常多,其中一个就是作为web开发,那么用python实现的web程序,我们怎么用,web服务器apache或者nginx怎么去解析python。接下来我就分别介绍一下apache和nginx是如何实现python解析的。

《第32天》运维工程师分享:web服务器如何解析python

《第32天》运维工程师分享:web服务器如何解析python

开班第三十二天:

今天的课程大纲:

  1. apache实现解析python web程序

  2. nginx实现解析python web程序

详细讲解:

  • apache实现解析python web程序

apache实现功能,一般都是通过加载模块实现的,那么apache实现python解析的模块是啥,这个模块叫:mode_wsgi。下面是我实现apache解析python的主要步骤:

1.下载模块,安装模块,这里我已经下载好了。直接安装,由于是源码,所以我进行源码安装。在安装之前,这个模块需要我们系统的几个依赖,httpd-devel,python-devel。

《第32天》运维工程师分享:web服务器如何解析python 2.解压之后,cd进来,然后执行./configure,执行成功之后再执行make && make install,结束后出现下面的输出就表示安装成功了。

《第32天》运维工程师分享:web服务器如何解析python 3.安装好之后,为了清晰明了,我直接单独写一个配置文件来加载wsgi这个模块。

执行vim /etc/httpd/conf.d/wsgi.conf。第一行表示加载这个模块,第二行表示套接字我单独放在一个目录中,要不然会出现访问错误。

《第32天》运维工程师分享:web服务器如何解析python 4.编写一个python web程序,最简单的。这个程序你可以放在任何地方,但是注意的是,别人应该能够有权限进入这个目录。

《第32天》运维工程师分享:web服务器如何解析python 5.修改apache的配置文件,这里需要注意的是,我之前定义了www.libin.it这个域名,但是是定义在虚拟主机中的,但是wsgi是不支持虚拟主机的,所以我把这个配置单独写在了一个配置文件中。

WSGIScriptAlias表示当我们访问/的时候,会执行/opt/test.py这个程序。下面的配置就是把这个wsgi放到后台运行,产生两个进程,三个线程。

《第32天》运维工程师分享:web服务器如何解析python 6.重启apache服务,测试。测试成功,正常显示python输出。

《第32天》运维工程师分享:web服务器如何解析python

  • nginx实现解析python web程序

apache实现了python,那么现在就看看nginx是如何实现python解析的,首先你要做的是把apache的服务停止,把nginx的服务启动。nginx实现python解析需要一个工具叫做uwsgi,这个工具可以指定我启动多少个进程来实现响应这个python请求。

1.安装uwsgi,我这里有安装包,解压,cd到目录中,只需要执行make就可以了,看到下面输出就是安装成功了。

《第32天》运维工程师分享:web服务器如何解析python 2.为了方便,我们把目录中产生了命令uwsgi拷贝到/usr/local/bin中。使用命令:uwsgi -M -s /tmp/uwsgi.sock -p 3 --wsgi-file /opt/test.py --uid=nginx。

但这个是前台运行的,不方便,所以我们一般把这个程序放到后台运行,加上-d 日志名。

uwsgi -M -s /tmp/uwsgi.sock -p 3 --wsgi-file /opt/test.py --uid=nginx -d /var/log/uwsgi.log

《第32天》运维工程师分享:web服务器如何解析python

《第32天》运维工程师分享:web服务器如何解析python

3.程序安装好了,那么我们怎么配置nginx呢,编写下面的配置文件。但这里我们需要注意的是,在工作中,我们一般不会把所有的请求都教给uwsgi,只是希望把动态的交给uwsgi,静态数据自己处理就行了。那么我们可以这样实现。用try_files实现动静分离,当访问根目录或根文件的时候,首先在自己nginx目录找,如果没有找到,那么交给@uwsgi,这样就可以解析python了。

《第32天》运维工程师分享:web服务器如何解析python 4.重启nginx服务,访问www.libin.it www.libin.it/test.py,如果是不同的页面,那么我们的成功了。

《第32天》运维工程师分享:web服务器如何解析python

《第32天》运维工程师分享:web服务器如何解析python

《第32天》运维工程师分享:web服务器如何解析python

5.现在又出现一个问题,如果我们关机开机之后,我们是不是又要输入那么一大串代码来启动uwsgi,所以我们可以把uwsgi交给一个进程管理器,之前我们讲到过一个supervisor,这个来管理就非常适合了,同时也满足后台运行了。编辑supervisor配置文件vim /etc/supervisord.conf,添加下面几行,command就是你开启uwsgi的命令,注意写绝对路径,而且需要特别注意的是,不许要加上-d了,因为supervisor就已经把uwsgi后台运行了,而且还单独指定了日志文件。

《第32天》运维工程师分享:web服务器如何解析python 6.重启supervisor服务/etc/init.d/supervisord restart。输入supervisorctl进入进程管理器界面,查看uwsgi是否运行。这里可以看到uwsgi已经运行了。

《第32天》运维工程师分享:web服务器如何解析python

总结:

今天主要的任务就是实现web服务器对python程序的解析,如果对python用做web开发感兴趣的,可以多去学习一下python关于web的模块。

头条号:爱家人爱老婆的IT男

QQ群:145252709,我会上传资源,同时会有很多大神跟你们讨论学习分享

微信公众号:程序猿的野生香蕉

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多