How to detect https?
Igor Sysoev
is at rambler-co.ru
Thu Mar 16 17:28:25 MSK 2006
On Thu, 16 Mar 2006, Grigory Batalov wrote:
> On Thu, 16 Mar 2006 16:45:41 +0300 (MSK)
> Igor Sysoev wrote:
>
>> server {
>> listen 80;
>>
>> location / {
>> fastcgi_pass ...
>> fastcgi_param HTTPS NO;
>> }
>> }
>>
>> server {
>> listen 443;
>> ssl on;
>>
>> location / {
>> fastcgi_pass ...
>> fastcgi_param HTTPS YES;
>> }
>> }
>
> В этом случае location / просто дублируется. У меня его
> настройки тоже полностью совпадают, поэтому я вынес их
> в файл foo.conf:
>
> server {
> listen 80;
>
> include foo.conf;
> }
>
> server {
> listen 443;
> ssl on;
>
> include foo.conf;
> }
>
> Как теперь в foo.conf добавить проверку HTTPS?
>
> Нашёл упоминание о нём разве что в Referer:
>
> set $https "off";
> if ($http_referer ~ "^https://") {
> set $https "on";
> }
>
> fastcgi_param HTTPS $https;
>
> Однако, реферера может не быть, или он сознательно
> ссылается с http-страницы на https- .
Можно так, но будет чуть медленее:
server {
listen 80;
set $https NO;
include foo.conf;
}
server {
listen 443;
ssl on;
set $https YES;
include foo.conf;
}
foo.conf:
...
fastcgi_param HTTPS $https;
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list