nginxの設定を変更

なかなかよく分かっていなかったnginx.confの書き方。
現在はこんな感じになっている。

=== 以下、設定サンプル ===

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;

    client_max_body_size 1024m;

    default_type  application/octet-stream;

    sendfile        off;
    keepalive_timeout  65;

    index index.html index.htm;

    server {
        listen       80;
        server_name  localhost;
    proxy_read_timeout 10m;
    autoindex on;

    location = /favicon.ico {
        log_not_found off;
    }


    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
            root   /var/www/static/;
            access_log        off;
            expires           30d;
    }

        location / {
        proxy_pass http://localhost:53000;    # tornado(アプリ)が53000でListenしている前提
           break;
        }

    location /echo {
        alias /var/www/apps/echo;
           proxy_pass http://localhost:53001;        # tornado(アプリ)がWebsocketを使っている場合
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        index echo.html;
    }

    location /chat {
        alias /var/www/apps/chat;
                proxy_pass http://localhost:53001;              # tornado(アプリ)がWebsocketを使っている場合
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        index main.html;
    }


    location /data/ {
        proxy_http_version 1.1;
        expires off;
        proxy_request_buffering off;
        chunked_transfer_encoding on;
        root /var/www/data/;
    }
    }

}

=== ここまで ===

ハマったポイントとしては、
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
   root   /var/www/static/;
  以下略
}

と設定してあるので、各アプリケーション絡みのjpgやcssファイルは/www/static/適当なフォルダ/に保存しないと動かないこと。

下の設定は、Websocketを使うアプリケーションのもの。

location /chat {
    alias /var/www/apps/chat;
        proxy_pass http://localhost:53001; 
        # tornado(アプリ)がWebsocketを使っている場合
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    index main.html;
}

Webブラウザから http://hogehoge.com/chat と入力するとポート番号53001で待機しているtornadoアプリケーションにフォワードされる。
アプリケーションが動かなくてすごく悩まされたのは、alias設定を書いていなかったため。
そりゃそうだ。
ポート番号53001に来たパケットをフォワードしようにも、どこのアプリケーションにフォワードするのか記述がなければ動くわけないよな。。。。(>_<)

ちなみに上記の設定では、http://hogehoge.com/data/にアクセスすると、/var/www/data/に行く設定になっている。

0 件のコメント:

コメントを投稿