我有一个 django web 应用程序,它在服务器上运行,IP 地址xx.xxx.105.49和域为www.example1.com
下面是我的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/company/company.com.chained.crt;
ssl_certificate_key /etc/ssl/company/www.company.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/company/new_media/;
}
location /media/ {
alias /home/apps/webapp/company/media/;
}
}
Run Code Online (Sandbox Code Playgroud)
当我输入www.example1.com或example1.com从浏览器中时,它https://www.example1.com按预期将我带到了,但是,现在我已经配置了另一个域(example2.company.com)以路由到同一台服务器(xx.xxx.105.49),实际问题是
当我输入https://example2.company.com(安全)时,服务器正在为我提供具有相同域的 web 应用程序example2.company.com
但是当我使用时http://example2.company.com,我的服务器正在重定向到我www.example1.com不想要的那个,所以如何对上面的 nginx 配置文件进行一些更改,以便如果有人尝试example2.company.com使用 http 或 https访问它应该重定向到https://example2.company.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.company.com www.example2.company.com ;
location / {
return 301 https://www.example2.company.com$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
您需要为 example2.xyz.com 设置一个新的虚拟主机。Nginx 会先读取域名,然后分别调用 conf 文件,否则默认 conf。
在 vhost 的 nginx conf 中分别为 example1 和 example2 监听端口 80,或者您也可以在默认 conf 中添加监听 80 以重定向到 https。
使用 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;
}
}
Run Code Online (Sandbox Code Playgroud)
要在 nginx 中创建虚拟主机,请参阅此链接 https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts- -3
| 归档时间: |
|
| 查看次数: |
21124 次 |
| 最近记录: |