Aipo8のnginxの設定

Aipo8からcommetが使用されるようになったため、それ用の設定が必要になりました。

map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
}

server {
    listen       80;
    server_name  _;
    root         /usr/share/tomcat7/webapps/ROOT/;

    location ~ "^(/themes/|/images/|/javascript/)" {
        root  /usr/share/tomcat7/webapps/ROOT/;
    }

    location / {
        try_files $uri @aipo;
    }

    location /push/ {
        try_files $uri @push;
    }

    location @aipo {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_set_header        X-Forwarded-Host $http_host;
        proxy_set_header        X-Forwarded-Server $host;
        proxy_connect_timeout   90;
        proxy_send_timeout      90;
        proxy_read_timeout      90;
        proxy_buffers           4 32k;
        client_max_body_size    8m;
        client_body_buffer_size 128k;
    }

    location @push {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header        Upgrade $http_upgrade;
        proxy_set_header        Connection $connection_upgrade;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_set_header        X-Forwarded-Host $http_host;
        proxy_set_header        X-Forwarded-Server $host;
        proxy_connect_timeout   90;
        proxy_send_timeout      86400;
        proxy_read_timeout      86400;
        proxy_buffers           4 32k;
        client_max_body_size    8m;
        client_body_buffer_size 128k;
    }
}

この設定でCommetでエラーが出ている場合は、Tomcatのコネクタを確認してください。 NIOコネクタかAPRコネクタなら使用可能です。

追記:

Aipo8.0.1でtimeout関数を呼ぶようになったのですが、APRではサポートしていない関数なのでNIOコネクタ一択になりました。