解决 Debian Wheezy 使用 Nginx 1.6 官方包和 php-fpm 时返回空白页的问题

Nginx 1.6 终于迎来了 SPDY 3.1 以及其他激动人心的新特性, 然而, 如果从 Nginx 官方提供的 Debian 仓库安装 Nginx 1.6, 并配合 php-fpm 等 fastcgi 程序时, 却会遇到蛋疼的空白页问题.

之所以说这个问题蛋疼, 是因为页面上没有错误信息(完全空白), 而 Nginx 返回的状态码是 200, 就连 php-fpm 也没有写下任何日志 (这个可能是因为其他原因, 不过本猫暂时没有细查).

从故障现象上看很像是 fastcgi_params 的问题, 因为确认了 nginx 的权限等方面均无错, 而且如果按照网上说的增加 PATH_TRANSLATED 之类的变量却可以得到 “File not found.” 的返回.

最后, 本猫通过比较 Nginx 官方包和 Debian 提供的 Nginx 包中的 fastcgi_params 文件, 确认是因为 Nginx 官方包的该文件中缺少这一行导致了问题:

fastcgi_param  SCRIPT_FILENAME    $request_filename;

希望能帮到谁 🙂

记一次在 AWS 网络出故障的时候让自己的线上服务提前”恢复”

嗯, 首先声明, 这个方法不具备普适性, 甚至几乎完全是一个运气问题, 不过总觉得这么神奇的事情还是写一下吧, 于是才有了这篇 blog.

22:08 A 服务器突然离线, 访问分配的 Elastic IP 不通.
22:15 发现我在同机房的另一台 AWS (B) 在线, 遂登陆访问 A 的 AWS 私有 IP – 通!
22:20 用 B 开 ssh -D, 配合 tsocks 登陆 A 的 AWS 私有 IP, 检查服务器状况良好. 抓包确认包可以正常从 Elastic IP 出去, 但是回不来. 确认是 AWS 的错.
22:23 登陆 Cloudflare 修改服务的解析到 B. (Automatic 的 DNS 缓存时间居然只有 30 秒, 怒赞)
22:32 AWS 在其 status 页面宣布 “We are investigating network connectivity issues for instances in the US-EAST-1 Region.”
22:35 在 B 上用 nginx 架设反向代理, 并拷贝本地备份的 A 的 SSL 证书到 B. 服务恢复在线.
23:02 A 的原 Elastic IP 恢复正常访问.

嗯, 是时候折腾些自动化工具来做反代了, 有时候出其不意的能发挥点作用. 这次我的 downtime 比 AWS 的 downtime 短了近一倍, 然而如果我架设反代的速度再快点, 还能有更大提升的说(

Continue reading 记一次在 AWS 网络出故障的时候让自己的线上服务提前”恢复”

Ubuntu uwsgi + nginx / bottle 的配置方法

首先赞PT大牛帮了很多忙, 本文大部分原型来源于 http://apt-blog.net/moinmoin-on-nginx-via-fastcgi-and-uwgi

UPDATE: 更新到 nginx 1.0 / uwsgi 0.9.6.8 的配置 – 2011/4/15
然而由于现在那几个玩意版本更新挺厉害, 有许多配置都不一样了, 再加上本猫是要让它运行bottle, 所以决定重新整理一下:)

下面这段关于 uwsgi 的介绍 来自PT牛的那篇文章:

uwsgi充当了python解析器的角色,使用wsgi的接口和Python程序交互,这个过程中做了优化,和上层nginx之间则设计了更加轻量的协议。nginx0.8.40以后官方默认带了uwsgi的协议模块,所以使用很方便。

恩, 由上面这段话 我们可以淡定的看出, 官方源里那个残念的0.7.x的nginx肯定是满足不了要求的啦!

Continue reading Ubuntu uwsgi + nginx / bottle 的配置方法

继续我的Ubuntu之旅 (2)

恩,作为笔记系列的文章,内容会比较混乱.
这段时间以来,作为Ubuntu双十版的小白鼠,虽然挂彩数次,不过也在 @yegle @tjmao @poplarch @BOYPT @liangsuilong @jimmy_xu_wrk 等等推友的帮助下搞定重生.
以下是这段时间来发现的好东西:

1, @tualatrix 大大的notify脚本(Felix降碳版)

#!/bin/bash
# Copyright: TualatriX  GPL v3
# Website: http://imtx.cn/archives/1516.html
# Please add the following line to ~/.bashrc to enable the bash completion support
# 	complete -o filenames -F _root_command notify
$* && \
notify-send "\"$*\" finished successfully" || \
notify-send "\"$*\" failed"

并在 ~/.bashrc 里加入:

complete -o filenames -F _root_command notify

以适应bash的自动完成功能. 原文在此
这玩意着实好用, 不过本猫发现10.04及以上版本会出现找不到notify-send命令,这时只需要

# apt-get install libnotify-bin

就好.

Continue reading 继续我的Ubuntu之旅 (2)
QR Code Business Card