2014/06/25

nginx ssl windows proxy

nginxをインストールする
=ー>nginx for window

nginx.exeを実行する
==>nginx -t **.conf  設定ファイルをテストする
http://localhost:ポート==>nginxのページが表示される=>OK



OpenSSlのwindows版をinstallする
OpenSSLをPATHに設定する
証明書を作成する
openssl genrsa -out server.key 1024 
openssl req -new -key server.key -out server.csr 
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key 
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
 
==>
server.crt  server.csr  server.key  server.key.orig
 
 nginxの設定ファイルを修正する

# HTTPS server
    #
    server {
        listen       443;
        server_name  localhost;

        ssl                  on;
        ssl_certificate      c:/Installed/nginx/nginx-0.7.64/SSL/server.crt;
        ssl_certificate_key  c:/Installed/nginx/nginx-0.7.64/SSL/server.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;

        location / {
            root   myhtml;
            index  index.html index.htm;
        }
    }
 
 
https://localhostでテストする
 
 
 
location / {
            # HTTPリクエストをそのままCatyサーバーに流す
            proxy_pass http://localhost:8000/; 

            # Catyサーバーにヘッダーを通じて情報を提供
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
 
====>locationで部分でproxyを設定する 
 
 
 
★
リバースプロキシ(英: Reverse proxy)または逆プロキシは、特定のサーバへの要求を必ず経由するように設置されたプロキシサーバ。一般的なプロキシとは異なり不特定多数のサーバを対象としない。リバースプロキシは、不特定多数のクライアントから寄せられる要求に対して、応答を肩代わりすることにより特定のサーバの負担を軽減したり、アクセスを制限することにより特定のサーバのセキュリティを高めたりする目的に用いられる。
例:
==>サーバーマシンのポート80番にやってきたHTTPリクエストを、nginxが、背後にいるCatyサーバーに渡してくれます。単にポート80番でサービスするだけならCatyサーバーにもできますが、複数のCatyサーバー達をうまく使い回したり、Catyサーバーが苦手な作業を肩代わりしてくれる役割をnginxに期待しているのです。
とりあえず、今のCatyサーバーはHTTPS(SSL)に対応してないので、HTTPS通信のラップ/アンラップをnginxにやらせてみることにします。