ショコラ
Nginx リライトの設定方法
いくつか例をあげます。
もっさん先輩
例
① URL を書き換える方法。
location ~ ^/\d+/\D+ {
rewrite ^/(\d+)/(.+) https://bitbucket.org/answorz.com/$1/raw/master/$2 permanent;
}
② http でアクセスされたら https になるように書き換える方法。
server {
listen 80;
server_name answorz.com;
if ($http_x_forwarded_proto != https) {
rewrite ^(.*)$ https://answorz.com$1 permanent;
}
}
③工事中の HTMLファイルを用いないで工事中を表示する方法。
location /
{
if ($remote_addr != 118.27.68.139) {
return 503 '<!DOCTYPE html><html><head><meta charset="utf-8"></head><body>只今メンテナンス中です。メンテナンス期間:〇月×日▲時~■時</body></html>';
}
proxy_redirect off;
proxy_pass http://backend;
}
メンテナンス対応している 118.27.68.139 以外からアクセスがあった場合に、メンテナンスのメッセージを出します。メンテナンス対応をしている 118.27.68.139 はバックエンドに通信を通します。503は「Service Unavailable」で一時的にサーバーにアクセスできない状態です。
④トップ(/)だけリダイクレクトさせる方法。
location = /
{
proxy_pass http://backend/;
proxy_redirect off;
}
以上