我有一个djangonetworking应用程序,它运行在服务器IP地址23.xxx.105.49和域名为www.example1.com
以下是我的nginxconfiguration
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/; } }
当我从浏览器中inputwww.example1.com或example1.com ,按照预期将我带到https://www.example1.com ,但现在我已经configuration了另一个域( example2.ford.com )以路由到同一个服务器(23.xxx.105.49) ,实际的问题是
当我inputhttps://example2.ford.com (安全)时,服务器正在为我提供相同域example2.ford.com的webapp
但是,当我使用http://example2.ford.com ,我的服务器redirect到www.example1.com这是不是我想要的,所以如何可以对上述nginxconfiguration文件进行一些更改,如果有一个尝试使用http或https访问example2.ford.com它应该redirect到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中,监听端口80分别用于example1和example2,或者您也可以在默认conf中添加监听80,以便redirect到https。
使用映射模块映射多个redirect,如下面的示例。
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中创build虚拟主机,请参考此链接https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts- -3