Домен nginx с и без подстановочных знаков - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть файл конфигурации nginx, который находится на сервере example.com и www.example.com.

server {
    listen       80;
    server_name  example.com;

    return       301 http://www.example.com$request_uri;
}

server {
    listen 80;
    server_name www.example.com;


    auth_basic "example Login";
    auth_basic_user_file /etc/nginx/.htpasswd;

    root   /projects/www/example;

    index   index.html;

    location ~* \.(html|js|jpg|png|gif|css|perfumes|imgs|map|fonts|otf)$ {
        index  index.do index.html index.htm;
        access_log off;
    }



    location /.protected {
            access_log off;
            auth_basic off;
    }

    location /health {
        access_log off;
        auth_basic off;
    }

    location / {
          try_files $uri $uri/index.html;
    }

    location /hello {
          proxy_pass              http://localhost:8282;
          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;
    }
}

Я сейчас пытаюсь защитить этот домен, потому что мы готовим запуск. Но есть только ссылка, которая позволяет проходить запросы без пароля, если в ссылке есть «.protected».

Например,

www.example.com / .protected /Файл file1.txt должен быть разрешен без ввода пароля.

Он работает нормально, но проблема заключается в example.com/.protected/file1.txt (без 'www').

Если я наберу только доменное имя «example.com» (без «www»), оно автоматически перенаправляется на www.example.com в соответствии с настройкой, но «example.com/.protected/file1.txt» не делаетПереадресация на «www.example.com/.protected/file1.txt». Кажется, если у доменного имени есть несколько путей, доменное имя (без «www») не перенаправляет на «www.example.com»

У меня получается «curl: (6) Не удалось разрешить хост: '

Что-то не так с моим файлом конфигурации?

...