Добрый День!
Подскажите как мне правильно настроить конфиг сервера на Nginx, нужно чтобы сайт работал на https НО чтобы все что в папке downloads скачивалось по http (обязательно по http, можно и https), но так чтобы весь сайт работал по https (редиректом с http на https кроме файлов в папке downloads), а также чтобы работали поддомены например docs.example.com и telemirta.example.com, настраиваю конфиг так:
server {
server_name www.example.com;
listen *:80;
listen [::]:80 ipv6only=on;
if ($uri !~* ^/downloads/(.+)$) {
return 301 https://example.com/downloads/$1;
}
}
server {
listen *:80 default_server;
listen [::]:80 default_server;
server_name example.com *.example.com;
root /var/www/html/$subdomain;
set $subdomain "";
if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
set $subdomain $1;
return 301 https://$1.example.com$request_uri;
}
if ($host ~* ^example.com$) {
set $subdomain "";
return 301 https://example.com$request_uri;
}
index index.html index.htm index.nginx-debian.html index.php;
if ($uri !~* ^/downloads/(.+)$) {
return 301 https://example.com/downloads/$1;
}
location / {
try_files $uri $uri/ =404;
}
location /munin/ {
alias /var/cache/munin/www/;
}
}
server {
listen *:443 ssl;
listen [::]:443;
server_name example.com *.example.com;
root /var/www/html/$subdomain;
set $subdomain "";
if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
set $subdomain $1;
}
if ($host ~* ^example.com$) {
set $subdomain "";
}
index index.php index.html index.htm;
ssl_certificate /etc/ssl/example_com_crt.crt;
ssl_certificate_key /etc/ssl/example_com.key;
location / {
try_files $uri $uri/ =404;
}
#rewrite ^/(downloads) http://$server_name$request_uri permanent;
rewrite ^/downloads/(.+)$ http://example.com/downloads/$1 permanent;
location /munin/ {
alias /var/cache/munin/www/;
}
location ~* \.php$ { try_files $uri = 404; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
сам сайт работает по https все ок, php работает, поддомены работают, но вот когда перехожу на
example.com/downloads/testarch.zip или
example.com/downloads/testfi.amx то получаю ответ от браузера
Страница недоступна
Сайт example.com выполнил переадресацию слишком много раз.
ERR_TOO_MANY_REDIRECTS
а если пробую перейти на
example.com/downloads то редиректит на
https://example.com (на главную)
Помогите разобраться пожалуйста!