接手了一台古老的服务器的还使用的是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. echarts 中国地图实现 省、市、区县三级联动,省级下钻、市级下钻

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 效果如下图: 每天学习一点点 编程PDF电子书.视频教程免费下载:http://www ...

  2. Python:Day29 信号量、条件变量

    信号量:semaphore 信号量是用来控制线程并发数的.(理解:虽然GIL任意时刻都只有一个线程被执行,但是所有线程都有资格去抢,semaphore就是用来控制抢的GIL的数量,只有获取了semap ...

  3. 正确生成浮点型的方法,解决sqlachemy Float浮点型的坑,生成float类型时,长度和精度均为0,导致查询不到结果!

    问题描述 在使用flask_sqlachemy时,给price字段选择了Float类型,数据库用的mysql,生成数据库表后,发现 from sqlalchemy import Float,Colum ...

  4. node.js api文档生成

    ApiDoc官网地址为:http://apidocjs.com/在Java中有Swagger及其升级版的Swagger2+Springfox自动生成接口管理文档.而在Node.js中则可以利用ApiD ...

  5. Spring Boot 之发送邮件

    Spring Boot 之发送邮件 简介 API 配置 实战 引入依赖 配置邮件属性 Java 代码 完整示例 引申和引用 简介 Spring Boot 收发邮件最简便方式是通过 spring-boo ...

  6. JavaEE学习之Spring Security3.x——模拟数据库实现用户,权限,资源的管理

    一.引言 因项目需要最近研究了下Spring Security3.x,并模拟数据库实现用户,权限,资源的管理. 二.准备 1.了解一些Spring MVC相关知识: 2.了解一些AOP相关知识: 3. ...

  7. 面试(一)-HashMap

    一.前言       其实这一面来的挺突然,也是意想不到的,这个要起源于BOSS直聘,很巧,其实也算是一种缘分吧,谢谢BOSS那个哥们,还是那句话来滨江我请你吃饭,身怀感激你总会遇到帮助你的人,只是这 ...

  8. gulp + gulp-better-rollup + rollup 构建 ES6 开发环境

    gulp + gulp-better-rollup + rollup 构建 ES6 开发环境 关于 Gulp 就不过多啰嗦了.常用的 js 模块打包工具主要有 webpack.rollup 和 bro ...

  9. 微信小程序获取formId时提示"the formId is a mock one"

    微信小程序使用模板消息需要使用表单提交 formId,因此进行了简单的代码测试,在 wxml 文件中创建 form 对象,并在 form 标签中声明属性 report-submit="tru ...

  10. duxing201606的原味鸡树

    链接 [http://murphyc.fun/problem/4011] 题意 描述 众所周知,duxing哥非常喜欢原味鸡.众所周知,原味鸡是长在原味鸡树上的. duxing哥因为是水产巨子,所以就 ...