LINUX.ORG.RU
ФорумAdmin

nginx - папка без https

 


0

1

Здравствуйте.

Собственно вопрос в названии топика. Мне нужно скачивать wget'ом кое-что из папки /блабла без ssl. То есть разрешить доступ к папке - /блабла без https.

Если не затруднит, покажите пример. Спасибо.


Ответ на: комментарий от stD

Тогда на nginx надо завести еще один блок server, который будет слушать http, а все кроме нужного локейшна реврайтить в https. Как-то так:

server {
    listen      80;

    location ~ ^/(filedir|filedir/.*)$ {
           <...тут proxy_pass или что у вас там...>
    }

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}

Но вообще раз доступ к удаленному серверу есть и если операция одноразовая - проще зайти в каталог с нужным файлом и сделать python -m SimpleHTTPServer портКоторыйБудетСлушатьВременныйСервер (это доступно из коробки если у вас типовой дистр), а потом как файл скачаете просто прибить процесс.

micronekodesu ★★★
()
Ответ на: комментарий от stD

Там лежит мой реп openwrt, хочу сделать доступ без https в папку с репой.

stD
() автор топика
Ответ на: комментарий от micronekodesu

У меня в начале стоит блок...

        server {
                listen 80 default_server;
                listen [::]:80 default_server;
                server_name мойсайт.ru www.мойсайт.ru;
                root /var/www/html/;
                index index.php index.html;
                return 301 https://мойсайт.ru$request_uri;
        }

...

Можно так сделать?

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name мойсайт.ru www.мойсайт.ru;
    root /var/www/html/;
    index index.php index.html;

    location ~ ^/(filedir|filedir/.*)$ {
           <...тут proxy_pass или что у вас там...>
    }

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}
stD
() автор топика
Ответ на: комментарий от stD

Проще слушать одним блоком server оба порта (с https и без), и все кроме необходимой директории редиректить через 301 на https.

anonymous
()
Ответ на: комментарий от anonymous

А если так?

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name мойсайт.ru www.мойсайт.ru;
    root /var/www/html/;
    index index.php index.html;

    if ($request_uri !~ "^/packages")
     {
       return 301 https://$host$request_uri;
     }

}
stD
() автор топика
Ответ на: комментарий от anonymous

но лучше без if.

Спасибо, сделал как по ссылке.

stD
() автор топика
Ответ на: комментарий от anonymous

Можно последний вопрос?

location /packages/ {
     try_files $uri $uri/ =404;
}

Слешь в конце каталога (/packages/) что делает? Работает и с ним и без него.

stD
() автор топика
Ответ на: комментарий от stD

ничего не делает, это просто маска для nginx'а. если бы было без слэша и еще вдобавок какой-нибудь файл вида packages.php, например, то тогда можно было бы хлебнуть. а так все норм

SevikL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.