Nginxで独自ドメインを使うためのサンプルです.

目次

  1. サンプル
  2. ApacheとNginx間の注意
  3. ディレクトリごとリダイレクト

サンプル

/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の順が逆になるので注意.
  • ホワイトリストやブラックリストを作るには,allowdenyを列挙した部分を外部ファイルとする.すなわち,外部ファイルとして任意の名称.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;
}