接手了一台古老的服务器的还使用的是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. Shiro+JWT+Spring Boot Restful简易教程

    序言 我也是半路出家的人,如果大家有什么好的意见或批评,请务必issue下. 项目地址:https://github.com/Smith-Cruise/Spring-Boot-Shiro . 如果想要 ...

  2. 四、Oracle 序列、常用函数、多表连接

    一.序列定义:是oracle数据库专门用来产生连续且自动增长的数字的对象创建语法:create sequence 序列名(sq_表名) nocache(无缓存) create sequence sq_ ...

  3. pytorch torch.Storage学习

    tensor分为头信息区(Tensor)和存储区(Storage) 信息区主要保存着tensor的形状(size).步长(stride).数据类型(type)等信息,而真正的数据则保存成连续数组,存储 ...

  4. js同步-异步-回调

    出处:https://blog.csdn.net/u010297791/article/details/71158212(1)上面主要讲了同步和回调执行顺序的问题,接着我就举一个包含同步.异步.回调的 ...

  5. 【转】Java日志框架:logback详解

    为什么使用logback 记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结 ...

  6. 史上最全面的Docker容器引擎使用教程

    目录 1.Docker安装 1.1 检查 1.2 安装 1.3 镜像加速 1.4 卸载Docker 2.实战Nginx 3.Docker命令小结 4.DockerFile创建镜像 4.1 Docker ...

  7. 高并发下的Java数据结构(List、Set、Map、Queue)

    由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下正常工作,这是因为这些数据结构不是线程安全的.本节将着重介绍一些可以用于多线程环境的数据结构,如并发List.并发 ...

  8. JS判断当前设备是 PC IOS Andriod

    JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroi ...

  9. 9宫拼图小游戏(WPF MVVM实现)

    昨天逛论坛,看到一个哥们用WPF做了一个9宫的拼图游戏,发现初学WPF的人都很容易犯一个错误(我也犯过):把WPF当WINFORM用!所以想写一个比较符合WPF风格的版本,于是就抽工作的空余时间做了一 ...

  10. Dedekind整环上的有限生成模的分类

    以下内容本想载于我的代数数论初步当中,但是与整体风格不符,所以换到这里来,为了排版上的方便,在注释掉之前用截图留存. 附:参考文献