@chipirov
web-разработчик

Как правильно настроить редирект с http на https в Symfony 3?

Добрый день! Настроил переадресацию на https через nginx:
server {
	location / {
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			try_files $uri $uri/ @fallback;
		}
		location / {
			try_files /does_not_exists @fallback;
		}
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @fallback;
		}
	}
	location @fallback {
		error_log /dev/null crit;
		proxy_pass http://127.0.0.1:8080;
		proxy_set_header Host $host;
		rewrite ^(.*)$ https://site.ru$1 permanent;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Port $server_port;
		access_log off ;
		proxy_redirect http://127.0.0.1:8080 /;
	}
	listen [ip address]::80;
}
server {
	location / {
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			try_files $uri $uri/ @fallback;
		}
		location / {
			try_files /does_not_exists @fallback;
		}
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @fallback;
		}
		
	}
	location @fallback {
		error_log /dev/null crit;
		proxy_pass http://127.0.0.1:8080;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Port $server_port;
		access_log off ;
		proxy_redirect http://127.0.0.1:8080 /;
	}
	listen [ip address]:443;
}

Редирект работает, но в Symfony использую LiipImageBundle, он генерит ссылки на изображения, которые идут через http. Не пойму как заставить работать через https. В настройках роутов ставил schema: [https], так выходит бесконечное зацикливание. Думаю по причине смешанного содержимого возникает проблема с отправкой письма через smtp.yandex.ru. Помогите разобраться
  • Вопрос задан
  • 529 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Arik
Можно текущий сервер(nginx секцию) настроить полностью под 443 и отдельно для этих доменов поднять сервер для 80 порт, там уже сделать переадресацию на https
server {
    listen 80;
    server_name example.com www.example.com *.example.com;
#    listen [::]:80;

    access_log off;

    #include acme;?

    location / {
        return 301 https://example.com$request_uri;
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы