GNU/Linux >> Linux の 問題 >  >> Linux

Nginxでリダイレクトを作成する

リダイレクトを使用する理由

ウェブサイトの所有者がアドレスを別のアドレスに再ルーティングする必要がある場合は常にリダイレクトを使用します。通常、HTTPをHTTPSにリダイレクトするか、あるドメインを別のドメインにリダイレクトします。

HTTPからHTTPSへのシナリオ:

http://yourwebsite.comと入力しても、顧客が安全な(SSL)サイトにアクセスできるようにします。 またはyourwebsite.com 彼らのブラウザに。このタイプのリダイレクトはまさにそれを実現します。たとえば、顧客がhttp://yourwebsite.comと入力した場合 、Nginx®のリダイレクトは、リクエストを https://yourwebsite.comにリダイレクトします 。

あるドメインから別のシナリオへ:

あなたはyourwebsite.comを所有しています 、 yourwebsite.org 、および yourwebsite.net 、そしてあなたはあなたの顧客が yourwebsite.comに到着することを望んでいます 彼らがあなたのサイトを訪問するために彼らのブラウザに入力するURLに関係なく。

Nginxでリダイレクトする方法

次のセクションでは、HTTPからHTTPSに、および1つのドメインから別のドメインにリダイレクトする方法について説明します。

HTTPからHTTPS

サーバーにSSL証明書をインストールすると、Webサイト用に2つのサーバーブロックがあります。1つはHTTPとHTTPS用です。問題は、SSLで保護されたサイト(HTTPSバージョン)へのトラフィックを強制する方法が必要なことです。これは、WebサイトのNginxサーバーブロックへのリダイレクトを追加することで実現できます。

ドメインの構成ファイルを開きます。ファイルには、 /etc/nginx/vhost.d/yourwebsite.com.confのような名前を付ける必要があります 。 .conf ドメインの構成ファイルを示します。お気に入りのテキストエディタでファイルを開きます。次の例では、vimを使用しています。 編集者:

vim /etc/nginx/vhost.d/yourdomain.com.conf

Your server block will look similar to this:

server {
	listen 80;
	server_name yourwebsite.com www.yourwebsite.com;
}

特定の構成によっては、これには前の例よりも多くの情報が含まれている場合がありますが、これはリダイレクトオプションに焦点を当てた単純な例です。

ただし、顧客に yourwebsite.comのセキュリティで保護されたバージョンにアクセスしてもらいたいと考えています。 、したがって、構成ファイルのサーバーブロックへのリダイレクトを追加する必要があります。これを行うには、次の例のようにブロックを変更し、ファイルを保存します。

server {
	listen 80;
	server_name yourwebsite.com www.yourwebsite.com;
	return 301 https://yourwebsite.com$request_uri;
}

上記のリダイレクト行を設定すると、顧客が yourwebsite.comと入力するたびに またはwww.yourwebsite.com 、システムはそれらを自動的に https://yourwebsite.comにリダイレクトします ウェブサイトのバージョン。ただし、この行をHTTP 80に追加する必要があることに注意してください。 HTTPS 443ではなくサーバーブロック サーバーブロック。

おそらく、 https://www.yourwebsite.comもリダイレクトする必要があります https://yourwebsite.comへのリクエスト 。これを行うには、443に別のリダイレクト行を追加します サーバーブロック。多くの場合、80の下にあります。 構成ファイルのserverblock。この変更は、次の例のようになります。

server {
	listen 443;
	server_name www.yourwebsite.com;
	return 301 https://yourwebsite.com$request_uri;
}

server {
	listen 443;
	server_name yourwebsite.com;
}

注: サーバーブロックには、前の簡略化された例よりも多くの情報が含まれている可能性があります。

あるドメインから別のドメイン

複数のトップレベルドメイン( .com など)を持つドメインがある場合 、 .net .org など)、これらすべてのサイトが同じWebサイトにアクセスできるようにするには、リダイレクトを使用します。この例では、あなたが yourwebsite.comを所有していると想定しています。 、 yourwebsite.org 、および yourwebsite.net 、そしてそれらすべてを yourwebsite.comにリダイレクトしたい 。

ドメインの構成ファイルを再度編集します。 HTTPSを追加する代わりに 次の例に示すように、リダイレクトしてサーバーブロックを変更します。

server {
	listen 80;
	server_name yourwebsite.net;
	return 301 $scheme://yourwebsite.com$request_uri;
}

server {
	listen 80;
	server_name yourwebsite.org;
	return 301 $scheme://yourwebsite.com$request_uri;
}

これで、顧客が yourwebsite.netに入るたびに またはyourwebsite.org 、システムはそれらを yourwebsite.comにリダイレクトします 代わりに。

編集後に構成ファイルを保存して閉じ、両方のnginxを再起動します およびphp-fpm これらの変更を公開します。


Linux
  1. Linuxlnコマンド

  2. CentOSNGINX仮想ホストを作成する

  3. Nginxでリダイレクトを作成する

  1. Apacheリダイレクトの作成

  2. Ubuntu でディレクトリのシンボリック リンクを作成する

  3. nginx &サイト利用可能な複数のウェブサイト

  1. Nginx仮想ホスト(サーバーブロック)を作成する方法

  2. nginx:[emerg] /etc/nginx/sites-enabled/example.com:3 の不明なディレクティブ

  3. /etc/nginx/nginx.conf で getpwnam(www) が失敗しました