Dois sites com SSL no NGINX. Sequência e redirecionamento

3

Eu tenho dois sites com SSL no NGINX.

Quando

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

Mas quando

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

No nginx.conf eu tento alterar a sequência de / import * .conf, e quando eu defino 2222.com antes de 1111.com > responda mudando o contrário.

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 é semelhante

Como posso redirecionar todos os https: // www. * e http: // www. * neste site e não o outro?

    
por Yarik Bright 02.02.2017 / 10:21

2 respostas

1

Sim! Configuração correta:

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 ...
    
por 02.02.2017 / 12:29
-1

É um homem pouco complicado, mas é claro que você pode fazer isso.

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 / {

    }
  }
}

Esta pode ser a resposta exata para mais informações e ler os módulos do mapa nginx do R & C

    
por 02.02.2017 / 13:57