Nginxで独自ドメインを使うためのサンプルです.
目次
- サンプル
- ApacheとNginx間の注意
- ディレクトリごとリダイレクト
サンプル
/etc/nginx/conf.d
内にサイト名.conf
ファイルを作る.
https化にあたりLet’s Encryptを用いた.
server { listen 80; server_name ドメイン名; rewrite ^ https://$server_name$request_uri? permanent; }
server { listen 443 ssl; server_name ドメイン名; charset UTF-8; access_log /var/log/nginx/ドメイン名-access.log main; error_log /var/log/nginx/ドメイン名-error.log; root /var/www/html/適当なパス; ssl_certificate /etc/letsencrypt/live/ドメイン名/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets on; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { allow xxx.xxx.xxx.xxx; deny all; index index.html; } error_page 404 500 502 503 504 /error.html; location ~ /\.ht { deny all; } }
|
ApacheとNginx間の注意
- NginxではApacheとDeny, Allowの順が逆になるので注意.
- ホワイトリストやブラックリストを作るには,
allow
やdeny
を列挙した部分を外部ファイルとする.すなわち,外部ファイルとして任意の名称.conf
を作成し,allow
またはdeny
の列挙に差し替えてinclude ファイルパス
する.(有効化するため最後にsystemctl nginx restart
)
- Apacheで80ポートや443ポートを既に使っていないか要確認.nginxに完全に移行するなら
systemctl disable httpd
する.
ディレクトリごとリダイレクト
dir1からdir2へのパーマネントな転送
location ~ /dir1/(.*)$ { return 301 http://example.com/dir2/$1; }
|