たかまるの雑記

たまに更新

nginxをインストールする

nginxをWindowsにインストールします。

1.インストールする

1-1.zipファイルをダウンロードする

https://nginx.org/download/

Name Last modified Size
nginx-1.15.5.zip 02-Oct-2018 15:22 1480127

1-2.ダウンロードしたファイルを確認する

ls ~/downloads/nginx-1.15.5.zip

1-3.zipファイル内にフォルダがあるかを確認する

add-type -assemblyname system.io.compression.filesystem
[io.compression.zipfile]::openread("downloads/nginx-1.15.5.zip").entries | ? { $_.fullname -match "^[^/]+/*$"} | ft -a fullname,lastwritetime

1-4.zipファイルを解凍する

expand-archive ~/downloads/nginx-1.15.5.zip d:/work/

1-5.解凍したフォルダを確認する

ls d:/work/nginx-1.15.5


2. 設定する

※事前にサーバ証明書を作成する

takamaruo.hatenablog.com

2-1.設定ファイルをバックアップする

mv d:/work/nginx-1.15.5/conf/nginx.conf d:/work/nginx-1.15.5/conf/nginx.conf.org

2-2.バックアップしたファイルを確認する

ls d:/work/nginx-1.15.5/conf/nginx.conf*

2-3.設定ファイルを作成する

  1. バックアップしたnginx.confのHTTPSをアンコメント
  2. コメント行を削除
  3. HTTPでreturnの設定を追加(HTTPアクセスをHTTPSにリダイレクト)
  4. ssl_certificateとssl_certificate_keyに証明書と秘密鍵のパスを設定
  5. ssl_protocolsを設定(TLSv1.2のみ)
  6. listenアドレスを設定
  7. server_nameが“_”の設定を追加(default_serverを指定/IPアドレスを指定したアクセスは無効にする)
@'
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    # HTTP server
    server {
        listen       localhost:80;
        server_name  localhost;
        return 301 https://$host$request_uri;
    }
    server {
        listen       localhost:80 default_server;
        server_name  _;
        return 444;
    }


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

        ssl_certificate      d:/work/openssl/CA/cacert.cer;
        ssl_certificate_key  d:/work/openssl/CA/private/cakey.pem;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_protocols TLSv1.2;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
    server {
        listen       localhost:443 ssl default_server;
        server_name  _;
        ssl_certificate      d:/work/openssl/CA/cacert.cer;
        ssl_certificate_key  d:/work/openssl/CA/private/cakey.pem;
        return       444;
    }
}
'@ | out-file -enc default d:/work/nginx-1.15.5/conf/nginx.conf

2-4.設定ファイルを確認する

ls d:/work/nginx-1.15.5/conf/nginx.conf*


3.nginxを起動する

3-1.カレントフォルダを変更する

cd d:/work/nginx-1.15.5

3-2.nginxを起動する

start nginx

3-3.nginxのプロセスを表示する

ps -n nginx | ft -a id,processname,starttime

3-4.TCP通信の状態を表示する

get-nettcpconnection -localport 80,443 | ft -a localaddress,localport,remoteaddress,remoteport,state,owningprocess

3-5.nginxを停止する

./nginx -s stop