morolicious開発日記

MojoliciousとBootstrapで作られているレスポンシブなエロサイト「morolicious」の開発記録を綴りっています

新しいmorolicious(ver5以降?)でNginxの後ろでhttpsを検知するに必要な設定

Nginxの後ろでSSL通信を検知する

Nginxの設定は基本的には Mojolicious::Guides::Cookbookにあるものでいいのだけど、Nginxをリバースプロキシとして使っていて、バックエンドのアプリ側でSSL通信か否かを判定する場合には

proxy_set_header X-Forwarded-Proto $scheme;

この設定がないと $app->req->is_secure; が偽を返す。

うちも以前は

        set $mode 0;
        if ($scheme = "https"){
            set $mode 1;
        }
        proxy_set_header X-Forwarded-HTTPS $mode;

みたいな設定をしていたのだけど、mojoliciousのバージョンを上げたらうごかなかった。

なんとなく全体的な設定

upstream morolicio.us {
    server 127.0.0.1:8102;
}

server {
    listen       80;
    listen       443 ssl;
    server_name  morolicio.us;

    # SSL Config
    ...

    location / {
        proxy_pass http://morolicio.us;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

やっぱりエロいサイトのサーバ立ち上げるならポートにもこだわりたいですね。ぱいおつ最高。