Nginx'in arkasında FastCGI çalıştırıyorum ve URL'ye HTTPS aracılığıyla erişildiğinde bunu tespit etmem gerekiyor. Ancak, Django web uygulamam her zaman bağlantının HTTP olduğunu bildiriyor (request.is_secure() == False). Ancak, SSL doğru şekilde kuruldu ve https: // adreslerimin SSL denetleyicisi ile güvende olduğunu doğruladım.NGINX'in arkasındaki FastCGI uygulaması, HTTPS güvenli bağlantının kullanıldığını algılayamıyor
Django, isteğin bir HTTPS URL'sinden ne zaman doğru olduğunu algılamasını nasıl sağlayabilirim?
Benim Nginx ayarlar şunlardır:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
listen 443 default ssl;
ssl_certificate /home/webapp/ssl.crt
ssl_certificate_key /home/webapp/ssl.key
server_name myapp.com;
access_log /home/webapp/access.log
error_log /home/webapp/error.log
root /home/mywebapp;
location/{
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:8801;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}
}
}
Birlikte Django FastCGI işlemi başlatmak: Make
python /home/webapp/manage.py runfcgi method=threaded host=127.0.0.1 port=8801 pidfile=/home/webapp/fastcgi.pid
Ah, teşekkürler. Bu parametreyi sadece 443 numaralı bağlantı noktası için ayarlamanın bir yolu var mı? Yani, tüm yapılandırma bloğunu kopyalamak zorunda kalmadan mı? –
Aşağıda gösterildiği gibi ... portu 80 için de "off" olarak ayarlamalısınız. –