X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=installation%2Fpleroma-apache.conf;h=0d627f2d71e98a1a8550cf65481b1cce570728b7;hb=2c55f7d7cb25b857265df67c21bc59f7778653ee;hp=e45ebf1075549049372c1cfee7371d137aaba5f6;hpb=210755ac46d7f1b909b74c75e9c7cce4dd9df7ba;p=akkoma diff --git a/installation/pleroma-apache.conf b/installation/pleroma-apache.conf index e45ebf107..0d627f2d7 100644 --- a/installation/pleroma-apache.conf +++ b/installation/pleroma-apache.conf @@ -1,27 +1,73 @@ - -#Example configuration for when Apache httpd and Pleroma are on the same host. -#Needed modules: proxy proxy_http proxy_wstunnel rewrite -#This assumes a Debian style Apache config. Put this in /etc/apache2/sites-available -#Doesn't include SSL, just run certbot and let it take care of that. +# default Apache site config for Pleroma +# +# needed modules: define headers proxy proxy_http proxy_wstunnel rewrite ssl +# optional modules: cache cache_disk +# +# Simple installation instructions: +# 1. Install your TLS certificate, possibly using Let's Encrypt. +# 2. Replace 'example.tld' with your instance's domain wherever it appears. +# 3. This assumes a Debian style Apache config. Copy this file to +# /etc/apache2/sites-available/ and then add a symlink to it in +# /etc/apache2/sites-enabled/ by running 'a2ensite pleroma-apache.conf', then restart Apache. +# +# Optional: enable disk-based caching for the media proxy +# For details, see https://git.pleroma.social/pleroma/pleroma/wikis/How%20to%20activate%20mediaproxy +# +# 1. Create the directory listed below as the CacheRoot, and make sure +# the Apache user can write to it. +# 2. Configure Apache's htcacheclean to clean the directory periodically. +# 3. Run 'a2enmod cache cache_disk' and restart Apache. + +Define servername example.tld +ServerName ${servername} +ServerTokens Prod -#Change this: -ServerName pleroma.example.com +ErrorLog ${APACHE_LOG_DIR}/error.log +CustomLog ${APACHE_LOG_DIR}/access.log combined -RewriteEngine On -RewriteCond %{HTTP:Connection} Upgrade [NC] -RewriteCond %{HTTP:Upgrade} websocket [NC] -RewriteRule /(.*) ws://localhost:4000/$1 [P,L] + + Redirect permanent / https://${servername} + -ProxyRequests off -ProxyPass / http://localhost:4000/ -ProxyPassReverse / http://localhost:4000/ + + SSLEngine on + SSLCertificateFile /etc/letsencrypt/live/${servername}/fullchain.pem + SSLCertificateKeyFile /etc/letsencrypt/live/${servername}/privkey.pem -#Change this too: -RequestHeader set Host "pleroma.example.com" -ProxyPreserveHost On + # Mozilla modern configuration, tweak to your needs + SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 + SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 + SSLHonorCipherOrder on + SSLCompression off + SSLSessionTickets off - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined + # uncomment the following to enable mediaproxy caching on disk + # + # CacheRoot /var/cache/apache2/mod_cache_disk + # CacheDirLevels 1 + # CacheDirLength 2 + # CacheEnable disk /proxy + # CacheLock on + # + RewriteEngine On + RewriteCond %{HTTP:Connection} Upgrade [NC] + RewriteCond %{HTTP:Upgrade} websocket [NC] + RewriteRule /(.*) ws://localhost:4000/$1 [P,L] + + ProxyRequests off + # this is explicitly IPv4 since Pleroma.Web.Endpoint binds on IPv4 only + # and `localhost.` resolves to [::0] on some systems: see issue #930 + ProxyPass / http://127.0.0.1:4000/ + ProxyPassReverse / http://127.0.0.1:4000/ + + RequestHeader set Host ${servername} + ProxyPreserveHost On + +# OCSP Stapling, only in httpd 2.3.3 and later +SSLUseStapling on +SSLStaplingResponderTimeout 5 +SSLStaplingReturnResponderErrors off +SSLStaplingCache shmcb:/var/run/ocsp(128000)