Как настроить NGINX для маскирования записи CNAME - PullRequest
0 голосов
/ 27 апреля 2018

Я мигрирую некоторую инфраструктуру, и у меня возникает следующая проблема.

Я получил запись CNAME от api.oldserver.com до api.newserver.com. Я использую многодоменный ssl с Nginx. И все это прекрасно работает! * Конфигурация nginx ниже

Проблема в том, что всякий раз, когда кто-то переходит на api.oldserver.com, в строке URL-адреса показывается, что пользователь фактически видит api.newserver.com. Я хотел бы, чтобы пользователь все еще мог видеть api.olderserver.com.

server {
    listen 80;
    server_name _;
    return 301 http://$http_host$request_uri; 
} 
server {
    listen       443 ssl;
    server_name  api.newerserver.com;

    ssl_certificate "/etc/nginx/domain.crt";
    ssl_certificate_key "/etc/nginx/domain.key";
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
            proxy_redirect off;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             proxy_pass http://127.0.0.1:9000;
    }
}

1 Ответ

0 голосов
/ 27 апреля 2018

Это происходит из-за перенаправления. Подумайте о создании другого оператора сервера с api.oldserver.com, который имел бы соответствующий сертификат и имел бы такую ​​же настройку прокси, чтобы он обрабатывался таким же образом.

server {
    listen 80;
    server_name _;
    return 301 http://$http_host$request_uri; 
} 
server {
    listen       443 ssl;
    server_name  api.newerserver.com;

    ssl_certificate "/etc/nginx/domain.crt";
    ssl_certificate_key "/etc/nginx/domain.key";
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
            proxy_redirect off;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             proxy_pass http://127.0.0.1:9000;
    }
}
server {
    listen       443 ssl;
    server_name  api.oldserver.com;

    ssl_certificate "/etc/nginx/olddomain.crt";
    ssl_certificate_key "/etc/nginx/olddomain.key";
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
            proxy_redirect off;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             proxy_pass http://127.0.0.1:9000;
    }
}

Или что-то в этом роде ...

...