3.1 KiB
| date | title | draft | type | menu | ||||
|---|---|---|---|---|---|---|---|---|
| 2019-02-12:00:00+02:00 | Reverse Proxy | false | doc |
|
Setup behind a reverse proxy which also serves the frontend
These examples assume you have an instance of the backend running on your server listening on port 3456.
If you've changed this setting, you need to update the server configurations accordingly.
{{< table_of_contents >}}
NGINX
Below are two example configurations which you can put in your nginx.conf:
You may need to adjust server_name and root accordingly.
with gzip enabled (recommended)
{{< highlight conf >}} gzip on; gzip_disable "msie6";
gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 256; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml;
server { listen 80; server_name localhost;
location / {
root /path/to/vikunja/static/frontend/files;
try_files $uri $uri/ /;
index index.html index.htm;
}
location ~* ^/(api|dav|\.well-known)/ {
proxy_pass http://localhost:3456;
client_max_body_size 20M;
}
} {{< /highlight >}}
client_max_body_size in the nginx proxy config.
without gzip
{{< highlight conf >}} server { listen 80; server_name localhost;
location / {
root /path/to/vikunja/static/frontend/files;
try_files $uri $uri/ /;
index index.html index.htm;
}
location ~* ^/(api|dav|\.well-known)/ {
proxy_pass http://localhost:3456;
client_max_body_size 20M;
}
} {{< /highlight >}}
client_max_body_size in the nginx proxy config.
Apache
Put the following config in cat /etc/apache2/sites-available/vikunja.conf:
{{< highlight aconf >}} <VirtualHost *:80> ServerName localhost
<Proxy *>
Order Deny,Allow
Allow from all
</Proxy>
ProxyPass /api http://localhost:3456/api
ProxyPassReverse /api http://localhost:3456/api
ProxyPass /dav http://localhost:3456/dav
ProxyPassReverse /dav http://localhost:3456/dav
ProxyPass /.well-known http://localhost:3456/.well-known
ProxyPassReverse /.well-known http://localhost:3456/.well-known
DocumentRoot /var/www/html
RewriteEngine On
RewriteRule ^\/?(config\.json|favicon\.ico|css|fonts|images|img|js|api|dav|\.well-known) - [L]
RewriteRule ^(.*)$ /index.html [QSA,L]
{{< /highlight >}}
Note: The apache modules proxy, proxy_http and rewrite must be enabled for this.
For more details see the [frontend apache configuration]({{< ref "install-frontend.md#apache">}}).