Django IPアドレス23.xxx.105.49
およびドメインをwww.example1.com
としてサーバー上で実行するWebアプリがあります。
以下は私のnginx設定です
server {
listen 80;
server_name example1.com www.example1.com ;
location / {
return 301 https://www.example1.com$request_uri;
}
}
server {
listen 443 ssl;
server_name example1.com www.example1.com;
ssl_certificate /etc/ssl/ford/ford.com.chained.crt;
ssl_certificate_key /etc/ssl/ford/www.ford.com.key;
ssl_session_timeout 20m;
ssl_session_cache shared:SSL:10m; # ~ 40,000 sessions
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # SSLv2
# ssl_ciphers ALL:!aNull:!eNull:!SSLv2:!kEDH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+EXP:@STRENGTH;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 20M;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
}
location /static/ {
alias /home/apps/webapp/ford/new_media/;
}
location /media/ {
alias /home/apps/webapp/ford/media/;
}
}
ブラウザーでwww.example1.com
またはexample1.com
と入力すると、期待どおりにhttps://www.example1.com
に移動しますが、同じサーバーexample2.ford.com
にルーティングするように別のドメイン((23.xxx.105.49)
)を構成したので、実際の問題は
https://example2.ford.com
(secure)と入力すると、サーバーは同じドメインexample2.ford.com
でWebアプリケーションを提供してくれました
しかし、http://example2.ford.com
を使用すると、私のサーバーは不要なwww.example1.com
にリダイレクトされていたため、httpまたはhttpsを使用してexample2.ford.com
にアクセスしようとした場合にリダイレクトされるように、上記のnginx構成ファイルにいくつかの変更を加えることができます以下のようなhttps://example2.ford.com
server {
listen 80;
server_name example1.com www.example1.com ;
location / {
return 301 https://www.example1.com$request_uri;
}
}
server {
listen 80;
server_name example2.ford.com www.example2.ford.com ;
location / {
return 301 https://www.example2.ford.com$request_uri;
}
}
Example2.xyz.comの新しい仮想ホストをセットアップする必要があります。 Nginxは最初にドメイン名を読み取り、次にそれぞれのconfファイルを呼び出します。それ以外の場合はデフォルトのconfです。
Vhostのnginx confでは、example1とexample2の両方に対して別々にポート80をリッスンするか、httpsへのリダイレクトのためにデフォルトのconfにlisten 80を追加することもできます。
以下の例のように、mapモジュールを使用して複数のリダイレクトをマッピングします。
map $http_Host $new {
'exp1.xyz.com' '1';
'exp2.xyz.com' '2';
}
server {
listen 80;
if ($new = '1') {
rewrite ^(.*) https://exp1.xyz.com$1 redirect;
}
if ($new = '2') {
rewrite ^(.*) https://exp2.xyz.com$1 redirect;
}
}
Nginxでvhostsを作成するには、このリンクを参照してください https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12- 04-lts--