接手了一台古老的服务器的还使用的是mod_wsgi,所以需要配置一下。其实这里有点怀念,记得当年自己折腾第一个app的时候,还是个什么都不懂的菜鸡。当时用django搜方案的时候,还不知道有uwsgi或者tornado之类的东西。就知道apache2可以有可以handle wsgi的服务器。就用了一下mod_wsgi。这次这个项目坑,但是接手了多半还是有点情怀想还自己多年以前的技术债吧。

废话不多说还是上配置吧:

WSGIPythonHome /home/piperck/kn
WSGIPythonPath /home/piperck/project/xxx/x
<VirtualHost 127.0.0.1:>
DocumentRoot /home/piperck/project/xxx/x
WSGIScriptAlias / /home/piperck/project/xxx/x/apache/sogoke_dev.wsgi
WSGIDaemonProcess xxx_piperck user=ubuntu group=ubuntu processes=
WSGIApplicationGroup xxx_piperck
WSGIProcessGroup xxx_piperck
Errorlog /var/log/apache2/player_piperck_error.log
Customlog "|/usr/bin/rotatelogs /var/log/apache2/piperck_access_%Y_%m_%d.log 86400 480" combined
</VirtualHost>

一行一行的解释

1. 是设置project的工作路径。

2. 设置virtualenv或者miniconda的python包管理路径。

然后下面就是apache 的 vhost配置

1. 设置project的工作路径。

2. 应用wsgi的文件路径。这个路径下面要确保wsgi服务器能获取到wsgi application。

3. 告诉mod_wsgi你要使用daemon模式运行,并且设置processes 和 threds数量。 另外这里的xxx_piperck是一个wsgi后台,可以填写一个 自己的,user和 group 这里设置是linux的user和group 要确保这个用户有足够的权限可以操作你下面的设置的配置文件。比如下面设置了日志存放的地方,要确保你的用户有权限读写日志,否则运行会出错。

4. ApplicationGroup 和 ProcessGroup 似乎都没有特别的意思,我设置为跟后台一个名字的参数。

5. 剩下两行是设置日志的。错误日志存放地方,和一个访问日志特别说下那个CustomLog,他调用了一个rotatelogs这个linux工具,来做日志切分。

格式是:rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

logfile: /var/log/apache2/piperck_access_%Y_%m_%d.log

rotationtime:86400 ----24hours切一次

offset:480 ----utf+8

这样只要能让apache2正确找到wsgi文件的application,就能跑起来了。实际上我在配置的时候还遇到一点别的坑,我在配置nginx转发到这台机器的过程中,还是遇到一点坑。由于我是新配服务器,我试了各种办法都没有办法正确将流量转发过来,这个时候我应该排除是apache2服务器问题,因为如果nginx流量转发过来了,apache的日志是会看到的,只是会报500或者别的错误。不会完全边日志没有反应。后来我查了一大波nginx服务器配置也没有发现为啥不能转发我新设置在 nginx的800端口。 后来我突然想到,我操不会是设置了防火墙只允许之前那几个接口吧。

sudo iptables -L

一看果然,没有开放的端口全部都被拦截了。

其实遇到这种问题第一个应该想到的是云服务器那边是不是做了安全策略,二是看防火墙设置,最后再次检查nginx配置是否有误。按照这个思路还是能比较快查出问题的所在的。

《笔记》Apache2 mod_wsgi的配置的更多相关文章

  1. 【环境配置】php5.5 + apache2.4 安装配置【转+修改】

    转自 http://my.oschina.net/lilinzero/blog/180509 [转+修改][环境配置]php5.5.10 + apache2.4 安装配置 根据自己的实践所得,稍微修改 ...

  2. apache2 tomcat https配置-被忽悠进了CentOS 6

    因为需要让ios应用可以绕过appstore,要找个https的地方放ipa,决定使用已有http server. 首先需要说明的是,apache可以通过反向代理方式将用户的https分发到tomca ...

  3. windows下PHP5.5.6+Apache2.4.7配置

    本文主要阐述在windows8及win8.1 环境下搭建PHP5.5.6+Apache2.4.7. 1.软件准备 apache 2.4.7:http://pan.baidu.com/s/1iUPif ...

  4. 安卓第十一天笔记-Intent与inter-filter配置

    安卓第十一天笔记-Intent与inter-filter配置 Intent与inter-filter配置 1.Intent对象简述 Android应用中有包含三种重要组件:Activity,Servi ...

  5. php5.2.6+apache2.2.15配置

    首先下载软件,忘记php下载地址了,apache是官网. 文件名 httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi php-5.2.6-win32-instal ...

  6. thinkphp学习笔记4—眼花缭乱的配置

    原文:thinkphp学习笔记4-眼花缭乱的配置 1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展 ...

  7. PHP学习笔记----IIS7下安装配置php环境

    原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...

  8. OGG学习笔记02-单向复制配置实例

    OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...

  9. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...

随机推荐

  1. sku回忆笔记

    分类表:(商品分类编号, 分类名称, 父分类编号)(1, 男装, 0)(2, 裤子, 1)(3, 外套, 1)(4, 内裤, 1)(5, 袜子, 1) 商品表:(商品编号, 商品名称, 商品分类编号, ...

  2. How to get Docker

    Docker 通俗的理解就是像VM一样的虚拟技术,但是不完全相同. Docker可以打包为镜像文件,在镜像中运行容器. 镜像和容器可以理解成类和对象的关系. 拿VM虚拟机和docker来举例,一个容器 ...

  3. automake - 使用 autotools 工具集

    一般而言,对于小项目或玩具程序,手动编写 Makefile 即可.但对于大型项目,手动编写维护 Makefile 成为一件费时费力的无聊工作. 本文介绍 autotools 工具集自动生成符合 Lin ...

  4. 【Windows】+ windows下在某一文件夹下按“shift+鼠标右键”打开CMD窗口

    前言:没更改之前是打开的powershell窗口,超不习惯 新建一个txt文件,然后复制以下代码,然后保存为OpenCmdHere.reg 格式,然后双击即可 Windows Registry Edi ...

  5. Libinput 1.13 RC2发布

    Red Hat的Peter Hutterer周四宣布发布libinput 1.13 RC2,作为X.Org和Wayland Linux系统使用此输入处理库的最新测试版本. Libinput 1.13将 ...

  6. QQ的ldw值计算方法

  7. JavaEE学习之JAXB

    一.前言 JAXB——Java Architecture for XML Binding,是一项可以根据XML Schema产生Java类的技术.JAXB提供将XML实例文档反向生成Java对象树的方 ...

  8. HashMap是如何工作的

    目录 1 HashMap在JAVA中的怎么工作的? 2 什么是哈希? 3 HashMap 中的 Node 类 4 键值对在 HashMap 中是如何存储的 5 哈希碰撞及其处理 6 HashMap 的 ...

  9. 【IE11请求中止】 XMLHttpRequest: 网络错误 0x2ef3的意外出现

    BUG现象 今天排查BUG遇到一个有趣的BUG,测试的截图显示 这个BUG只在IE11下出现. BUG原因 这个问题的原因是keep-alive机制引起. 当浏览器在向一个网址发起请求时,会建立一个t ...

  10. 避免使用HttpClient的系统代理

    这两天在玩Consul, 他的.Net驱动使用了HttpClient来发送Http请求. 但是我的电脑上装有SS, 所以请求会被SS过滤一次, 然后导致请求的延迟一直比较高. 然后只需要改写一下Htt ...