How to detect https?
Andrew Kopeyko
kaa at ramtel.ru
Thu Mar 16 17:42:21 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?
А вы вынесите в include-файл только параметры fastcgi
server {
listen 80;
location / {
include foo.conf;
fastcgi_param HTTPS NO;
}
}
server {
listen 443;
ssl on;
location / {
include foo.conf;
fastcgi_param HTTPS YES;
}
}
foo.conf
fastcgi_pass ...
> Нашёл упоминание о нём разве что в Referer:
>
> set $https "off";
> if ($http_referer ~ "^https://") {
> set $https "on";
> }
>
> fastcgi_param HTTPS $https;
>
> Однако, реферера может не быть, или он сознательно
> ссылается с http-страницы на https- .
referrer штука хорошая, но доверять ему нельзя - что пользователь туда
напишет, то вы и получите.
--
Best regards,
Andrew Kopeyko <kaa at ramtel.ru>
More information about the nginx-ru
mailing list