Django:Nginx und Gunicorn mit Socket und Spring Boot: Unterschied zwischen den Seiten

Aus ahrensburg.city
(Unterschied zwischen Seiten)
Zur Navigation springen Zur Suche springen
(// via Wikitext Extension for VSCode)
 
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
==Django: Nginx und Gunicorn mit unix:socket==
Spring Boot ist ein Open-Source-Framework, das auf dem Spring-Framework basiert. Es bietet eine schnelle Möglichkeit, eine Produktionsbereitschaft für Spring-Anwendungen zu erreichen. Es ist eine Möglichkeit, Spring-Anwendungen mit sehr wenig Konfiguration zu erstellen. Es kann als Standalone-Anwendung ausgeführt werden.


Gunicorn ist ein WSGI-HTTP-Server für Python-Anwendungen. Er ist eine Alternative zu uWSGI und mod_wsgi. Gunicorn ist ein reiner Python-Server und kann mit Django, Flask und anderen Python-Web-Frameworks verwendet werden.
Spring Boot bietet eine Reihe von Funktionen, die die Entwicklung von Spring-Anwendungen erleichtern. Einige der wichtigsten Funktionen sind:


In diesem Tutorial werden wir zeigen, wie
# Automatische Konfiguration: Spring Boot bietet eine automatische Konfiguration, die die Konfiguration von Spring-Anwendungen vereinfacht. Es erkennt automatisch die erforderlichen Bibliotheken und Konfigurationen und konfiguriert sie entsprechend.
# Starter-Abhängigkeiten: Spring Boot bietet Starter-Abhängigkeiten, die die Verwaltung von Abhängigkeiten in Spring-Anwendungen vereinfachen. Diese Starter-Abhängigkeiten enthalten alle erforderlichen Bibliotheken und Konfigurationen, die für die Entwicklung von Spring-Anwendungen erforderlich sind.
# Embedded-Server: Spring Boot bietet einen eingebetteten Server, der die Bereitstellung von Spring-Anwendungen erleichtert. Es kann als Standalone-Anwendung ausgeführt werden, ohne dass ein externer Server erforderlich ist.
# Actuator: Spring Boot bietet Actuator, der die Überwachung und Verwaltung von Spring-Anwendungen erleichtert. Es bietet Endpunkte, die Informationen über den Zustand der Anwendung bereitstellen.


- Django-Anwendung auf einem Gunicorn-Server ausgeführt wird.
* [[Spring Boot:Installieren|Spring Boot installieren]]
- Nginx als Reverse-Proxy-Server für Gunicorn konfiguriert wird.
* [[Tomcat Installieren|Spring Boot:Tomcat Installueren]]
- Gunicorn mit einem Unix-Socket anstelle eines TCP-Sockets konfiguriert wird.
 
===Schritt 1: Gunicorn mit einem Unix-Socket===
 
Gunicorn kann mit einem Unix-Socket anstelle eines TCP-Sockets konfiguriert werden. Ein Unix-Socket ist ein Kommunikationsendpunkt, der auf dem Dateisystem erstellt wird. Es ist schneller als ein TCP-Socket, da es keine Netzwerkschicht durchläuft.
 
Erstellen Sie ein Verzeichnis für die Sockeldatei:
 
<pre>
sudo rm -f /run/gunicorn/thorsten.sock
sudo mkdir /run/gunicorn
</pre>
 
Erstellen Sie eine Sockeldatei:
 
Ändern Sie die Berechtigungen der Sockeldatei:
 
<pre>
sudo chown -R www-data:www-data /home/thorsten/portal
sudo chmod -R 755 /home/thorsten/portal
sudo mkdir -p /run/gunicorn
sudo chown www-data:www-data /run/gunicorn
sudo chmod 755 /run/gunicorn
</pre>
 
Erstellen Sie eine Systemd-Dienstdatei für Gunicorn:
 
<pre>
sudo nano /etc/systemd/system/gunicorn.service
</pre>
 
Fügen Sie den folgenden Inhalt hinzu:
 
<pre>
[Unit]
Description=gunicorn daemon
After=network.target
 
[Service]
User=www-data
Group=www-data
WorkingDirectory=/home/thorsten/portal
ExecStart=/home/thorsten/portal/.venv/bin/gunicorn --access-logfile - --workers 3  --bind unix:/run/gunicorn/thorsten.sock portal.wsgi:application
 
[Install]
WantedBy=multi-user.target
</pre>
 
Starten und aktivieren Sie den Gunicorn-Dienst:
 
<pre>
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
</pre>
 
===Schritt 2: Nginx als Reverse-Proxy-Server für Gunicorn===
 
Nginx kann als Reverse-Proxy-Server für Gunicorn konfiguriert werden. Ein Reverse-Proxy-Server empfängt Anfragen von Clients und leitet sie an den entsprechenden Server weiter.
 
Erstellen Sie eine Nginx-Konfigurationsdatei:
 
<pre>
sudo nano /etc/nginx/conf.d/start.conf
</pre>
 
Fügen Sie den folgenden Inhalt hinzu:
 
<pre>
server {
    listen 80;
    server_name localhost;
 
    location / {
        proxy_pass http://unix:/run/gunicorn/thorsten.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
      location static/ {
        alias /home/thorsten/portal/static/;
    }
 
    location /media/ {
        alias /home/thorsten/portal/media/;
    }
}
</pre>
 
 
 
## Erzeuge in Django die statischen Dateien
Die statischen Dateien von Django müssen in das Verzeichnis kopiert werden, das in der Nginx-Konfiguration als Alias für statische Dateien definiert ist.
 
Verzeichnis für statische Dateien erstellen und Benutzerrechte setzen:
<pre>
sudo chown -R $USER:$USER /home/thorsten/portal/static
sudo chmod -R 777 /home/thorsten/portal/static
</pre>
 
Statische Dateien kopieren:
<pre>
python manage.py collectstatic
</pre>

Version vom 10. Oktober 2024, 15:58 Uhr

Spring Boot ist ein Open-Source-Framework, das auf dem Spring-Framework basiert. Es bietet eine schnelle Möglichkeit, eine Produktionsbereitschaft für Spring-Anwendungen zu erreichen. Es ist eine Möglichkeit, Spring-Anwendungen mit sehr wenig Konfiguration zu erstellen. Es kann als Standalone-Anwendung ausgeführt werden.

Spring Boot bietet eine Reihe von Funktionen, die die Entwicklung von Spring-Anwendungen erleichtern. Einige der wichtigsten Funktionen sind:

  1. Automatische Konfiguration: Spring Boot bietet eine automatische Konfiguration, die die Konfiguration von Spring-Anwendungen vereinfacht. Es erkennt automatisch die erforderlichen Bibliotheken und Konfigurationen und konfiguriert sie entsprechend.
  2. Starter-Abhängigkeiten: Spring Boot bietet Starter-Abhängigkeiten, die die Verwaltung von Abhängigkeiten in Spring-Anwendungen vereinfachen. Diese Starter-Abhängigkeiten enthalten alle erforderlichen Bibliotheken und Konfigurationen, die für die Entwicklung von Spring-Anwendungen erforderlich sind.
  3. Embedded-Server: Spring Boot bietet einen eingebetteten Server, der die Bereitstellung von Spring-Anwendungen erleichtert. Es kann als Standalone-Anwendung ausgeführt werden, ohne dass ein externer Server erforderlich ist.
  4. Actuator: Spring Boot bietet Actuator, der die Überwachung und Verwaltung von Spring-Anwendungen erleichtert. Es bietet Endpunkte, die Informationen über den Zustand der Anwendung bereitstellen.