seeseekey.net - Invictus Deus Ex Machina

Gogs ist ein Git-Service welcher eine ähnliche Funktionalität wie der bekannte Dienst GitHub zur Verfügung stellt. Standardmäßig läuft der Dienst auf dem Port 3000. Möchte man ihn über die normalen Ports für HTTP (80) bzw. HTTPS (443) erreichbar machen, kann man hierfür einen Reverse Proxy nutzen. Dafür eignen würde sich zum Beispiel Nginx, der im ersten Schritt auf dem Server installiert werden muss:

apt-get install nginx

Anschließend wird die Konfiguration angelegt:

nano /etc/nginx/sites-available/example

In diesem Fall befasst sich die Konfiguration mit der verschlüsselten Kommunikation per HTTPS und der Weiterleitung von unverschlüsselten Verbindung in Richtung der verschlüsselten Verbindung.

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        return 301 https://$host$request_uri$is_args$args;
}

server {
    listen 443;
    listen [::]:443 default_server;

    ssl on;
    ssl_certificate        /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;

    client_max_body_size 500m;

    location / {
        proxy_pass https://localhost:3000;
    }
}

Nachdem die Konfiguration für Nginx hinterlegt ist, wird die Standardkonfiguration entfernt und ein symbolischer Link für die neue Konfiguration erstellt. Anschließend wird Nginx neugestartet, damit die geänderte Konfiguration wirksam wird:

rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
service nginx restart

Nach der Anpassung der Nginx-Konfiguration, muss die app.ini (sie befindet sich im gogs/custom/conf/ Ordner) von Gogs angepasst werden und dort die neue ROOT_URL ohne zusätzlichen Port angegeben werden. Anschließend kann auf Wunsch, per Firewall, der Port 3000 für Zugriffe von außen gesperrt werden.

Einführung in die uncomplicated firewall

Sollte man mit seiner Webseite unerwartete Lastspitzen erfahren, gibt es einige Möglichkeiten wie man mit diesen umgeht. Neben der Möglichkeit ein paar mehr Server bereitzustellen gibt es auch Dienste wie CloudFlare. CloudFlare als solches stellt ein Content Delivery Network zur Verfügung und funktioniert für die eigene Webseite als Reverse Proxy.

Die unterschiedlichen CloudFlare Pakete

Die unterschiedlichen CloudFlare Pakete

Neben den kostenpflichtigen Paketen bietet CloudFlare auch eine kostenloses Paket, mit welchem man den Dienst testen und an seine Bedürfnisse anpassen kann. Im ersten Schritt muss ein Account bei CloudFlare angelegt werden. Nach der Anmeldung legt man seine erste Domain fest und trägt die DNS-Records für diese bei CloudFlare ein.

Anschließend ändert man die Nameserver für die Domain auf die von CloudFlare vorgeschlagenen DNS-Server. Damit entscheiden die CloudFlare Server beim Aufruf der Domain ob sie auf den echten Server weitergeleitet werden oder ob die Seite aus dem Cache angezeigt wird. Damit sollten auch größere Lasten auf der eigenen Webseite kein Problem mehr darstellen.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/CloudFlare