Nginx: Kompilieren Sie ein externes Modul

In diesem Tutorial erkläre ich, wie man ein externes Modul für Nginx kompiliert, um dem Webserver zusätzliche Funktionalität hinzuzufügen.

Zur Veranschaulichung dieses Tutorials nehme ich das Modul als Beispiel http-headers-more-filter Dadurch können Sie die von HTTP-Anfragen gesendeten Header (Hörer) ändern.

Bevor Sie beginnen, stellen Sie sicher, dass der Compiler installiert ist:

sudo apt install gcc

Der erste Schritt besteht darin, zu überprüfen, ob das Modul vorhanden ist. Geben Sie zur Überprüfung den folgenden Befehl ein.

nginx -V 2>&1 | grep --color 'http-headers-more-filter'

Wenn der Befehl nichts zurückgibt, ist das Modul nicht vorhanden.

Um das Modul zu kompilieren, benötigen wir die Nginx-Quellen. Rufen Sie die installierte Version mit dem folgenden Befehl ab:

nginx-V

Wie im Screenshot unten zu sehen ist, ist Nginx 1.21.0 installiert.

Laden Sie die Quellen der installierten Nginx-Version herunter. Im Beispiel verwende ich den folgenden Befehl:

wget https://nginx.org/download/nginx-1.21.0.tar.gz

Entpacken Sie das Archiv mit dem Befehl tar:

tar -xzvf nginx-1.21.0.tar.gz

Mit dem Befehl ll können wir sehen, dass das Archiv entpackt ist.

Sie müssen nun die Modulquellen herunterladen. Die Quellen des Hearers-More-Moduls finden Sie hier : openresty/headers-more-nginx-module: Set, add, and clear arbitrary output headers in NGINX http servers (github.com).

Wir klonen das Repository mit dem Git-Befehl:

git clone https://github.com/openresty/headers-more-nginx-module.git

Listen Sie dann auf, um zu überprüfen, ob das Repository geklont ist.

Abhängig von den gewünschten Modulen können Abhängigkeiten notwendig sein, hier müssen Sie folgende Pakete installieren:

  • libpcre3-dev
  • zlib1g
sudo apt install libpcre3-dev zlib1g

Gehen Sie zu dem Ordner, der die Nginx-Quellen enthält:

cd nginx-1.21.0

Jetzt konfigurieren wir die Kompilierung des Moduls mit dem folgenden Befehl:

./configure --add-dynamic-module=../headers-more-nginx-module

Passen Sie den Pfad des Parameters –add-dynamic-module= an, den Sie kompilieren möchten.

Sobald die Kompilierung konfiguriert ist, kompilieren Sie sie mit dem folgenden Befehl:

make modules

Das Modul ist kompiliert, die .so-Datei des Moduls befindet sich im objs-Ordner des Nginx-Quellordners.

Sie müssen nun die .so-Datei in den Ordner /etc/nginx/modules verschieben. Sobald die Datei verschoben wurde, müssen Sie Nginx anweisen, das Modul zu laden.

Öffnen Sie die Datei nginx.conf und fügen Sie die Anweisung „load_module“ hinzu.

load_module modules/ngx_http_header_more_filter_modules.so

Starten Sie dann Nginx neu

sudo systemctl restart nginx

Sie wissen jetzt, wie Sie ein externes Modul für Nginx kompilieren.




Schreibe einen Kommentar