29 Nisan 2024 01:43

Anasayfa

undefined...

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>

Makdos Bilişim Teknolojileri 2015 - 2022