Apache HTTP servisi ile Django projelerde HTTP/2 Brotli ve Gzip kullanmak için gerekli ayarlar.
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /home/muslu/django/domain/
ServerAdmin musluyuksektepe@gmail.com
Protocols h2 http/1.1
WSGIScriptAlias / /home/muslu/django/domain/domain/wsgi.py
WSGIDaemonProcess domain python-path=/usr/local/lib/python3.6/dist-packages/:/home/muslu/django/domain/
WSGIProcessGroup domain
WSGIApplicationGroup %{GLOBAL}
ErrorLog /home/muslu/django/domain/logs/error_log
<Directory "/home/muslu/django/domain/domain/">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
<Directory "/home/muslu/django/domain/static/">
Require all granted
</Directory>
<Directory "/home/muslu/django/domain/">
Require all granted
</Directory>
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
#SSLUseStapling on
#SSLEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/www.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain.com/privkey.pem
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon
BrotliFilterNote Input brotli_input_info
BrotliFilterNote Output brotli_output_info
BrotliFilterNote Ratio brotli_ratio_info
LogFormat '"%r" %{brotli_output_info}n/%{brotli_input_info}n (%{brotli_ratio_info}n%%)' brotli
CustomLog "|${APACHE_ROOT}/bin/rotatelogs ${APACHE_LOG_DIR}/brotli_log.%Y%m%d 86400" brotli
Header append Vary User-Agent env=!dont-vary
</IfModule>
#########################################################
#########################################################
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A172800
<filesMatch "\.(js|css|pdf|xml|txt)$">
ExpiresDefault "access 10 days"
</filesMatch>
<filesMatch "\.(jpg|jpeg|png|ico)$">
ExpiresDefault "access 30 days"
</filesMatch>
</IfModule>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css text/javascript application/javascript
<filesMatch "\.(js|css|html)$">
SetOutputFilter DEFLATE
</filesMatch>
</IfModule>
<IfModule mod_headers.c>
Header unset ETag
Header set X-UA-Compatible "IE=Edge,chrome=1"
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|mp4|svg|eot|ttf|otf|woff|ico|webp)$">
Header unset X-UA-Compatible
Header set Cache-Control "max-age=604800, must-revalidate"
</FilesMatch>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
Header set Cache-Control "max-age=604800, must-revalidate"
</FilesMatch>
</IfModule>
Apache
hakkında diğer konular