FASTCGI: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
Zeile 90: Zeile 90:
Erstelle eine Konfigurationsdateib in dem Verzeichnis /etc/nginx/sites-available/thomas.conf
Erstelle eine Konfigurationsdateib in dem Verzeichnis /etc/nginx/sites-available/thomas.conf
<pre>
<pre>
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/cron.d/thomas.con
sudo nano /etc/nginx/cron.d/thomas.con
</pre>
</pre>

Version vom 14. Januar 2025, 17:33 Uhr

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).

FASTCGI

FastCGI ist ein Protokoll, das es ermöglicht, Webserver und Anwendungen zu entkoppeln. FastCGI-Anwendungen können in verschiedenen Programmiersprachen geschrieben werden, darunter auch C.

Nginx, FastCGI und C

Nginx ist ein Webserver, der sich durch seine hohe Performance auszeichnet. Er kann mit FastCGI kommunizieren, um dynamische Inhalte zu generieren.

FastCGI-Anwendung in C und spawn-fcgi

Um eine FastCGI-Anwendung in C zu schreiben, benötigen Sie eine FastCGI-Bibliothek wie `libfcgi`. Hier ist ein einfaches Beispiel für eine FastCGI-Anwendung in C. Spawn-fcgi ist ein kleines Programm, das FastCGI-Anwendungen startet und verwaltet.

FastCGI-Bibliothek, spawn-fcgi und nginx installieren

sudo apt-get install libfcgi-dev
sudo apt-get install spawn-fcgi
sudo apt-get install nginx

CMakelists.txt erstellen

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_C_STANDARD 16)

add_executable(demo main.c)

target_link_libraries(demo fcgi)

main.c erstellen

#include <fcgi_stdio.h>

int main(void) {
    while (FCGI_Accept() >= 0) {
        printf("Content-type: text/html\r\n\r\n");
        printf("<html><body><h1>Hallo Welt!</h1></body></html>");
    }
    return 0;
}


spawn-fcgi mit systemctl erstellen

Erstelle eine Datei in /etc/systemd/system/thorsten.service

sudo nano /etc/systemd/system/thorsten.service

Füge folgenden Inhalt hinzu:

[Unit]
Description=Spawn FastCGI Process
After=network.target

[Service]

ExecStart=/usr/bin/spawn-fcgi -s /var/run/thomas.socket  -U www-data -G www-data   -n /home/thorsten/thorsten/build/thorsten
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


Dateiberechtigungen ändern und Verzeichnisse erstellen:


sudo mkdir -p /home/thorsten/thorsten/build  # Verzeichnis für die FastCGI-Anwendung
sudo chown -R www-data:www-data /home/thorsten/thorsten/build # Berechtigungen setzen
sudo mkdir -p /var/run/thorsten # Verzeichnis für den Socket
sudo chown -R www-data:www-data /var/run/thorsten # Berechtigungen setzen

Starte den Service:

sudo systemctl start thorsten

Aktiviere den Service:

sudo systemctl enable thorsten


nginx konfigurieren

Erstelle eine Konfigurationsdateib in dem Verzeichnis /etc/nginx/sites-available/thomas.conf

sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/cron.d/thomas.con

Füge folgenden Inhalt hinzu:

server {
    listen 80;
    server_name test.localhost;
    location / {
          fastcgi_pass unix:/var/run/thorsten/thomas.socket;
        include fastcgi_params;
    }
}

sudo systemctl restart nginx

Öffne deinen Browser und gebe die Adresse http://localhost ein. Du solltest die Ausgabe deiner FastCGI-Anwendung sehen.

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).