Nginx のバックエンドとの通信には Unix ドメインソケットも使用できる

こんな感じ。

upstream backend {
    server unix:/var/run/nginx-backend.sock;
}

server {
    listen unix:/var/run/nginx-backend.sock;
    server_name  _;
     :
}

server {
    listen 80;
    server_name  _;
     :
    location / {
        proxy_redirect off;
        proxy_cache one;
        proxy_cache_key "$scheme://$host$request_uri$is_args$args";
        proxy_cache_valid  200 60m;
        proxy_cache_valid  404 5m;
        proxy_pass http://backend;
    }
}

[WordPress] WPTouch Pro と Nginx リバースプロキシ

WPTouch Pro がスマートフォン判定したら、expires 0 (PHP 5.3用)。

add_action( 'wptouch_pro_loaded', function(){
	global $wptouch_pro;
	if ( $wptouch_pro->is_mobile_device ) {
		nocache_headers();
	}
});

または、nginx.conf 内で cookie で判別。

set $mobile "";
if ($http_user_agent ~* '(DoCoMo|J-PHONE|Vodafone|MOT-|UP\.Browser|DDIPOCKET|ASTEL|PDXGW|Palmscape|Xiino|sharp pda browser|Windows CE|L-mode|WILLCOM|SoftBank|Semulator|Vemulator|J-EMULATOR|emobile|mixi-mobile-converter|PSP)') {
    set $mobile "@ktai";
}
if ($http_user_agent ~* '(iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|BlackBerry)') {
    set $mobile "@smartphone";
}
if ($http_cookie ~* "wptouch(_switch_cookie=normal|-pro-view=desktop)") {
    set $mobile "@smartphone.off";
}

[WordPress] プラグインなしで画像にパスワードをかける

試してないのですが、以下のように.htaccessで制御する記事を海外のブログで見つけたので、メモがわりに書いておきます。

この方法を使用するとプラグインを使わなくてもアップロードファイルにパスワード保護をかけられるので、SNS系のシステムなどを構築するのに便利かもしれません。

via. WordPressでプラグインなしで画像にパスワードをかける | firegoby

Nginx でやるなら、こんな感じ。

location ~ /wp-content/uploads/.* {
    if ($http_cookie !~ "wordpress_logged_in") {
        rewrite .*$ /wp-login.php?redirect_to=$uri permanent;
    }
}

厳密にはログインしてるかどうかは見てないので注意が必要ですよ。

Nginx で CodeIgniter を動かす

server {
	listen 80;
	server_name _;
	root /path/to/codeigniter;
	index  index.php index.html index.htm;
	charset utf-8;

	location / {
		if (-f $request_filename) {
			expires 30d;
			break;
		}
		if (!-e $request_filename) {
			rewrite ^(.*)$ /index.php?q=$1 last;
		}
	}

	location ~ application/.* { deny all; }
	location ~ system/.* { deny all; }
	location ~ /\.ht { deny all; }

	location ~ \.php$ {
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_intercept_errors on;
		include        fastcgi_params;
	}
}