Проблемы, приводящие Nginx к использованию HTTPS, не могут быть решены (3: Хост не найден) - PullRequest
0 голосов
/ 04 июля 2019

Итак, у меня следующая конфигурация nginx:

events {
  worker_connections 1024;
}

http {

  server {
    listen 80 default_server;
    charset utf-8;
    access_log off;
    try_files $uri $uri/ =404;
    #use google as dns
    resolver 8.8.8.8;
    server_name www.workaround.xyz workaround.xyz;
    return 301 https://$server_name$request_uri;
  }

  server {
        listen 443 ssl;
        charset utf-8;
        access_log off;
        try_files $uri $uri/ =404;
        #use google as dns
        resolver 8.8.8.8;
        server_name www.workaround.xyz workaround.xyz;

        ssl_certificate /etc/letsencrypt/live/workaround.xyz-0001/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/workaround.xyz-0001/privkey.pem;

        location / {
            proxy_pass $scheme://workaround:8085/;
        }

        location ^~ {
            proxy_pass              $scheme://workaround:8085/$request_uri;
            proxy_redirect  off;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
            expires 30d;
         }
    }


}

Это моя попытка переместить материал для использования HTTPS, а также для поддержки www. префикс для домена. В этой попытке я получаю:

2019/07/03 20:55:38 [error] 6 # 6: * 3 обходной путь не может быть решен (3: хост не найден), клиент: XXXXX_SOME IP_XXXX, сервер: www.workaround.xyz, запрос: "GET / HTTP / 1.1", хост: "Www.workaround.xyz"

Попробовано несколько разных способов, но каждый раз, когда какой-то вариант не может быть разрешен, всплывает, у кого-то есть идея, что я делаю неправильно и что я могу улучшить / исправить, чтобы он работал должным образом с https?

Рабочая версия HTTP была такой:

events {
  worker_connections 1024;
}

http {

  server {
        listen 80;
        charset utf-8;
        access_log off;
        try_files $uri $uri/ =404;

        location / {
            proxy_pass http://workaround:8085/;
        }

        location ^~ {
            proxy_pass              $scheme://workaround:8085/$request_uri;
            proxy_redirect  off;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
            expires 30d;
         }
    }


}

1 Ответ

0 голосов
/ 04 июля 2019

Понял.

events {
  worker_connections 1024;
}

http {

  server {
    listen 80 default_server;
    charset utf-8;
    access_log off;
    try_files $uri $uri/ =404;
    #use google as dns
    resolver 8.8.8.8;
    server_name workaround.xyz;
    return 301 https://$server_name$request_uri;
  }

  server {
        listen 443 ssl;
        charset utf-8;
        access_log off;
        try_files $uri $uri/ =404;
        server_name workaround.xyz;

        ssl_certificate /etc/letsencrypt/live/workaround.xyz-0001/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/workaround.xyz-0001/privkey.pem;

        if ($host = www.$server_name) {
            rewrite ^(.*) https://$server_name$request_uri? permanent;
        }

        location / {
            proxy_pass http://workaround:8085/;
        }

        location ^~ {
            proxy_pass              http://workaround:8085/$request_uri;
            proxy_redirect  off;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
            expires 30d;
         }
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...