Назад | Перейти на главную страницу

Два сайта с SSL на NGINX. Последовательность и перенаправление

У меня два сайта с SSL на NGINX.

когда

curl -I https://www.1111.com answer: https://1111.com

Но когда

curl -I https://www.2222.com answer: https://1111.com
curl -I https://2222.com answer https://2222.com

В nginx.conf я пытаюсь изменить последовательность / import * .conf, и когда я устанавливаю 2222.com до 1111.com>, отвечаю, изменяя обратное.

1111.conf

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

server {
    listen 443 ssl http2;
    server_name 1111.com;
    root /usr/share/nginx/1111.com;
    index index.php;
...

2222.conf похож на

Как я могу перенаправить все https: // www. * И http: // www. * На этом веб-сайте, а не на другом?

Да! Правый конфиг:

server {
  listen   80;
  server_name site.ru www.site.ru;
  rewrite  ^(.*) https://$server_name$1 permanent;
}
server {
  listen   443   ssl http2;
  include ssl/ssl_site.ru;
  server_name  www.site.ru;
  rewrite ^(.*) https://site.ru$1 permanent;
}
server {
  listen   443   ssl http2;
  server_name site.ru;
  include ssl/ssl_site.ru;

... other config string ...

Это маленький хитрый человек, но, конечно, вы справитесь.

map $http_host $new {
  'www.abc.com' '1';
  'www.xyz.com' '2';
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    if ($http_x_forwarded_proto != 'https') {
          rewrite ^(.*) https://$host$1 redirect;
    }
}

server {
  if ($new != '1') {
        server_name www.xyz.com;

        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;

        ssl_certificate  /etc/ssl/certs/s2.pem;
        ssl_certificate_key /etc/ssl/certs/s2.key;

        root /var/www/html/site2;

        index index.html index.htm index.nginx-debian.html;

        location / {

    }
  }

  if ($new != '2') {
        server_name www.abc.com;

        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;

        ssl_certificate  /etc/ssl/certs/s1.pem;
        ssl_certificate_key /etc/ssl/certs/s1.key;

        root /var/www/html/site1;

        index index.html index.htm index.nginx-debian.html;

        location / {

    }
  }
}

Это может быть точный ответ для получения дополнительной информации и чтения модулей карты Nginx R&C.