2018-11-03 18:59:52 -04:00
|
|
|
# default Apache site config for Pleroma
|
|
|
|
#
|
|
|
|
# needed modules: define headers proxy proxy_http proxy_wstunnel rewrite ssl
|
2019-02-22 14:18:03 -05:00
|
|
|
# optional modules: cache cache_disk
|
2018-11-03 18:59:52 -04:00
|
|
|
#
|
|
|
|
# Simple installation instructions:
|
|
|
|
# 1. Install your TLS certificate, possibly using Let's Encrypt.
|
2018-11-04 08:06:18 -05:00
|
|
|
# 2. Replace 'example.tld' with your instance's domain wherever it appears.
|
2018-11-03 18:59:52 -04:00
|
|
|
# 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.
|
2019-02-22 14:18:03 -05:00
|
|
|
#
|
|
|
|
# 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.
|
2018-08-28 19:29:04 -04:00
|
|
|
|
2018-11-04 08:06:18 -05:00
|
|
|
Define servername example.tld
|
2018-11-03 18:41:37 -04:00
|
|
|
|
|
|
|
ServerName ${servername}
|
2018-08-28 19:29:04 -04:00
|
|
|
ServerTokens Prod
|
|
|
|
|
|
|
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
|
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
|
|
|
|
2018-04-08 15:22:24 -04:00
|
|
|
<VirtualHost *:80>
|
2018-11-03 18:41:37 -04:00
|
|
|
Redirect permanent / https://${servername}
|
2018-08-28 19:29:04 -04:00
|
|
|
</VirtualHost>
|
|
|
|
|
|
|
|
<VirtualHost *:443>
|
|
|
|
SSLEngine on
|
2018-11-03 18:41:37 -04:00
|
|
|
SSLCertificateFile /etc/letsencrypt/live/${servername}/cert.pem
|
|
|
|
SSLCertificateKeyFile /etc/letsencrypt/live/${servername}/privkey.pem
|
|
|
|
SSLCertificateChainFile /etc/letsencrypt/live/${servername}/fullchain.pem
|
2018-08-28 19:29:04 -04:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2019-02-22 14:18:03 -05:00
|
|
|
# uncomment the following to enable mediaproxy caching on disk
|
|
|
|
# <IfModule mod_cache_disk.c>
|
|
|
|
# CacheRoot /var/cache/apache2/mod_cache_disk
|
|
|
|
# CacheDirLevels 1
|
|
|
|
# CacheDirLength 2
|
|
|
|
# CacheEnable disk /proxy
|
|
|
|
# CacheLock on
|
|
|
|
# </IfModule>
|
|
|
|
|
2018-04-10 04:08:27 -04:00
|
|
|
RewriteEngine On
|
|
|
|
RewriteCond %{HTTP:Connection} Upgrade [NC]
|
|
|
|
RewriteCond %{HTTP:Upgrade} websocket [NC]
|
|
|
|
RewriteRule /(.*) ws://localhost:4000/$1 [P,L]
|
2018-08-28 19:29:04 -04:00
|
|
|
|
2018-04-10 04:08:27 -04:00
|
|
|
ProxyRequests off
|
|
|
|
ProxyPass / http://localhost:4000/
|
|
|
|
ProxyPassReverse / http://localhost:4000/
|
2018-08-28 19:29:04 -04:00
|
|
|
|
2018-11-03 18:41:37 -04:00
|
|
|
RequestHeader set Host ${servername}
|
2018-04-10 04:08:27 -04:00
|
|
|
ProxyPreserveHost On
|
2018-04-08 15:22:24 -04:00
|
|
|
</VirtualHost>
|
2018-09-03 15:41:21 -04:00
|
|
|
|
|
|
|
# OCSP Stapling, only in httpd 2.3.3 and later
|
|
|
|
SSLUseStapling on
|
|
|
|
SSLStaplingResponderTimeout 5
|
|
|
|
SSLStaplingReturnResponderErrors off
|
2018-11-03 18:41:37 -04:00
|
|
|
SSLStaplingCache shmcb:/var/run/ocsp(128000)
|