* static url
* add cors support for static resources
* [assets] work on the migration to configurable url for assets
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* [misc] fix whitespace
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* [assets] fix the loading of the manifest.json
It is generated dynamically, and as such can not be served by the cdn.
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* Revert "add cors support for static resources"
This reverts commit 42f964fd181dbb8b139808b9be623470d4f0e40f
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* [docs] add the STATIC_URL_PREFIX option
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* [docs] reverse-proxy: nginx: add two setups for STATIC_URL_PREFIX
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* [assets] migrate the url of a new asset to the static url prefix
REF: f2a3abc683
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
4.6 KiB
date | title | slug | weight | toc | draft | menu | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2018-05-22T11:00:00+00:00 | Usage: Reverse Proxies | reverse-proxies | 17 | true | false |
|
Using Nginx as a reverse proxy
If you want Nginx to serve your Gitea instance, you can the following server
section inside the http
section of nginx.conf
:
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
Using Nginx with a sub-path as a reverse proxy
In case you already have a site, and you want Gitea to share the domain name, you can setup Nginx to serve Gitea under a sub-path by adding the following server
section inside the http
section of nginx.conf
:
server {
listen 80;
server_name git.example.com;
location /git/ { # Note: Trailing slash
proxy_pass http://localhost:3000/; # Note: Trailing slash
}
}
Then set [server] ROOT_URL = http://git.example.com/git/
in your configuration.
Using Nginx as a reverse proxy and serve static resources directly
We can tune the performance in splitting requests into categories static and dynamic.
CSS files, JavaScript files, images and web fonts are static content. The front page, a repository view or issue list is dynamic content.
Nginx can serve static resources directly and proxy only the dynamic requests to gitea. Nginx is optimized for serving static content, while the proxying of large responses might be the opposite of that (see https://serverfault.com/q/587386).
Download a snap shot of the gitea source repository to /path/to/gitea/
.
We are only interested in the public/
directory and you can delete the rest.
Depending on the scale of your user base, you might want to split the traffic to two distinct servers, or use a cdn for the static files.
using a single node and a single domain
Set [server] STATIC_URL_PREFIX = /_/static
in your configuration.
server {
listen 80;
server_name git.example.com;
location /_/static {
alias /path/to/gitea/public;
}
location / {
proxy_pass http://localhost:3000;
}
}
using two nodes and two domains
Set [server] STATIC_URL_PREFIX = http://cdn.example.com/gitea
in your configuration.
# application server running gitea
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
# static content delivery server
server {
listen 80;
server_name cdn.example.com;
location /gitea {
alias /path/to/gitea/public;
}
location / {
return 404;
}
}
Using Apache HTTPD as a reverse proxy
If you want Apache HTTPD to serve your Gitea instance, you can add the following to your Apache HTTPD configuration (usually located at /etc/apache2/httpd.conf
in Ubuntu):
<VirtualHost *:80>
...
ProxyPreserveHost On
ProxyRequests off
AllowEncodedSlashes NoDecode
ProxyPass / http://localhost:3000/ nocanon
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
Note: The following Apache HTTPD mods must be enabled: proxy
, proxy_http
Using Apache HTTPD with a sub-path as a reverse proxy
In case you already have a site, and you want Gitea to share the domain name, you can setup Apache HTTPD to serve Gitea under a sub-path by adding the following to you Apache HTTPD configuration (usually located at /etc/apache2/httpd.conf
in Ubuntu):
<VirtualHost *:80>
...
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
AllowEncodedSlashes NoDecode
# Note: no trailing slash after either /git or port
ProxyPass /git http://localhost:3000 nocanon
ProxyPassReverse /git http://localhost:3000
</VirtualHost>
Then set [server] ROOT_URL = http://git.example.com/git/
in your configuration.
Note: The following Apache HTTPD mods must be enabled: proxy
, proxy_http
Using Caddy as a reverse proxy
If you want Caddy to serve your Gitea instance, you can add the following server block to your Caddyfile:
git.example.com {
proxy / http://localhost:3000
}
Using Caddy with a sub-path as a reverse proxy
In case you already have a site, and you want Gitea to share the domain name, you can setup Caddy to serve Gitea under a sub-path by adding the following to your server block in your Caddyfile:
git.example.com {
proxy /git/ http://localhost:3000 # Note: Trailing Slash after /git/
}
Then set [server] ROOT_URL = http://git.example.com/git/
in your configuration.