summaryrefslogtreecommitdiff
path: root/installation
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-01-21 12:25:18 -0600
committerMark Felder <feld@feld.me>2021-01-21 12:25:18 -0600
commit3078e62488ad1d94d1d3b83faf9f2b070e4aff06 (patch)
tree6be5d95e034545c7d0276440e7729038f6f12669 /installation
parentd8860eaee46c9bc0a079e90dfb008c54923d7330 (diff)
Update Apache configuration. This has been tested.
Diffstat (limited to 'installation')
-rw-r--r--installation/pleroma-apache.conf91
1 files changed, 51 insertions, 40 deletions
diff --git a/installation/pleroma-apache.conf b/installation/pleroma-apache.conf
index 0d627f2d7..139abe9e1 100644
--- a/installation/pleroma-apache.conf
+++ b/installation/pleroma-apache.conf
@@ -1,73 +1,84 @@
-# default Apache site config for Pleroma
-#
-# needed modules: define headers proxy proxy_http proxy_wstunnel rewrite ssl
-# optional modules: cache cache_disk
+# Sample Apache config for Pleroma
#
# 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.
+# 1. Install your TLS certificate. We recommend using Let's Encrypt via Certbot
+# 2. Replace 'example.tld' with your instance's domain.
+# 3. This assumes a Debian-style Apache config. Copy this file to
+# /etc/apache2/sites-available/ and then activate the site 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
+# 1. Create a directory as shown below for 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.
+# Your OS may provide a service you can enable to do this automatically.
Define servername example.tld
+<IfModule !proxy_module>
+ LoadModule proxy_module libexec/apache24/mod_proxy.so
+</IfModule>
+<IfModule !proxy_http_module>
+ LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so
+</IfModule>
+<IfModule !proxy_wstunnel_module>
+ LoadModule proxy_wstunnel_module libexec/apache24/mod_proxy_wstunnel.so
+</IfModule>
+<IfModule !rewrite_module>
+ LoadModule rewrite_module libexec/apache24/mod_rewrite.so
+</IfModule>
+<IfModule !ssl_module>
+ LoadModule ssl_module libexec/apache24/mod_ssl.so
+</IfModule>
+<IfModule !cache_module>
+ LoadModule cache_module libexec/apache24/mod_cache.so
+</IfModule>
+<IfModule !cache_disk_module>
+ LoadModule cache_disk_module libexec/apache24/mod_cache_disk.so
+</IfModule>
+
ServerName ${servername}
ServerTokens Prod
-ErrorLog ${APACHE_LOG_DIR}/error.log
-CustomLog ${APACHE_LOG_DIR}/access.log combined
+# If you want Pleroma-specific logs
+#ErrorLog /var/log/httpd-pleroma-error.log
+#CustomLog /var/log/httpd-pleroma-access.log combined
<VirtualHost *:80>
- Redirect permanent / https://${servername}
+ RewriteEngine on
+ RewriteCond %{SERVER_NAME} =${servername}
+ RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/${servername}/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/${servername}/privkey.pem
+ # Make sure you have the certbot-apache module installed
+ Include /etc/letsencrypt/options-ssl-apache.conf
- # 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
-
- # 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>
+ # Uncomment the following to enable MediaProxy caching on disk
+ #CacheRoot /tmp/pleroma-media-cache/
+ #CacheDirLevels 1
+ #CacheDirLength 2
+ #CacheEnable disk /proxy
+ #CacheLock on
+ #CacheHeader on
+ #CacheDetailHeader on
+ ## 16MB max filesize for caching, configure as desired
+ #CacheMaxFileSize 16000000
+ #CacheDefaultExpire 86400
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
- RewriteRule /(.*) ws://localhost:4000/$1 [P,L]
+ RewriteRule /(.*) ws://127.0.0.1:4000/$1 [P,L]
+ #ProxyRequests must be off or you open your server to abuse as an open proxy
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
</VirtualHost>
-
-# OCSP Stapling, only in httpd 2.3.3 and later
-SSLUseStapling on
-SSLStaplingResponderTimeout 5
-SSLStaplingReturnResponderErrors off
-SSLStaplingCache shmcb:/var/run/ocsp(128000)