Tutorials  /  Linux Basics

NGINX unter CentOS aus Quellcode installieren & kompilieren

Ccentron Redaktion · Juni 2025 ·5 Min. Lesezeit ·Linux Basics, Tutorial

NGINX ist ein leistungsstarkes Werkzeug, das als HTTP/HTTPS-Server, Reverse Proxy, Mail-Proxy, Load Balancer, TLS-Terminierungsstelle oder Caching-Server eingesetzt werden kann. Die modulare Struktur unterstützt sowohl native Module als auch Erweiterungen aus der Community. Da es in C programmiert ist, bietet es hohe Geschwindigkeit bei geringem Ressourcenverbrauch.

NGINX-Versionen im Überblick

NGINX wird parallel in zwei Hauptversionen weiterentwickelt: der Mainline-Version und der stabilen Version. Beide können produktiv eingesetzt werden, wobei die Mainline-Version wegen ihrer Aktualität empfohlen wird.

VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Überblick: Installation aus dem Quellcode

Die Installation von NGINX aus dem Quellcode ist unkompliziert. Man lädt die aktuellste Version herunter, passt die Konfiguration an, kompiliert den Code und installiert das Ergebnis. In dieser Anleitung wird die Mainline-Version 1.13.2 verwendet. Bei neueren Releases sollten die Versionsnummern entsprechend angepasst werden.

Wichtige Voraussetzungen zur Kompilierung

Erforderliche Komponenten:

  • OpenSSL-Bibliothek in der Version zwischen 1.0.2 und 1.1.0
  • zlib-Kompressionsbibliothek, Version 1.1.3 bis 1.2.11
  • PCRE (Perl Compatible Regular Expressions) in den Versionen 4.4 bis 8.40
  • GCC Compiler-Suite

Optionale Komponenten:

  • PERL-Unterstützung
  • libatomic_ops Bibliothek
  • LibGD zur Bildverarbeitung
  • MaxMind GeoIP-Bibliothek
  • libxml2 XML-Parser
  • libxslt XSLT-Prozessor

Erste Vorbereitungen vor der Installation

Vor dem Start der eigentlichen Installation sollten folgende Vorarbeiten durchgeführt werden:

Benutzerkonto mit Sudo-Rechten anlegen

Richte zunächst einen Benutzer ohne Root-Rechte ein, der jedoch administrative Befugnisse besitzt.

Zum neuen Benutzer wechseln

Code
su - <username>

Betriebssystem aktualisieren

Konsole
sudo yum check-update || sudo yum update -y

NGINX unter CentOS aus Quellcode kompilieren und installieren

Benötigte Entwicklungstools installieren

Installiere zunächst alle nötigen Entwicklerpakete sowie den Texteditor Vim:

Konsole
sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim

EPEL-Repository aktivieren

Installiere das Repository „Extra Packages for Enterprise Linux“ (EPEL):

Konsole
sudo yum install -y epel-release

Optionale Abhängigkeiten installieren

Installiere zusätzliche Pakete, die genutzt werden können:

Konsole
sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel

NGINX-Quellcode herunterladen und entpacken

Lade die aktuelle Mainline-Version von NGINX herunter und entpacke sie:

Konsole
wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz

Benötigte Bibliotheken herunterladen

NGINX setzt auf drei externe Bibliotheken: PCRE, zlib und OpenSSL. Lade deren Quellcode herunter und entpacke sie:

Konsole
# PCRE Version 8.40
wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.tar.gz

# zlib Version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz

# OpenSSL Version 1.1.0f
wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz

Archivdateien entfernen

Code
rm -rf *.tar.gz

Ins NGINX-Verzeichnis wechseln und Dateien prüfen

Konsole
cd ~/nginx-1.13.2
ls
# auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

Man-Seite von NGINX installieren

Konsole
sudo cp ~/nginx-1.13.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
man nginx

Konfigurationsoptionen anzeigen lassen

Code
./configure --help
./configure --help | grep -F =dynamic

Konfiguration, Kompilierung und Installation

Code
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=CentOS \
--builddir=nginx-1.13.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.40 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.0f \
--with-openssl-opt=no-nextprotoneg \
--with-debug

make 
sudo make install

Erstelle eine symbolische Verknüpfung vom Modulverzeichnis zur NGINX-Konfiguration:

Konsole
sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules

Build-Informationen und Version prüfen

Konsole
sudo nginx -V

NGINX-Benutzer anlegen und Konfiguration validieren

Konsole
sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
sudo nginx -t
sudo mkdir -p /var/cache/nginx && sudo nginx -t

Systemd-Dienstdatei für NGINX erstellen

Konsole
sudo vim /usr/lib/systemd/system/nginx.service

Füge folgenden Inhalt ein:

Code
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

NGINX-Dienst starten und aktivieren

Konsole
sudo systemctl start nginx.service && sudo systemctl enable nginx.service
sudo systemctl is-enabled nginx.service
sudo systemctl status nginx.service
ps aux | grep nginx
curl -I 127.0.0.1

Neustart und Aufräumen

Konsole
sudo shutdown -r now
sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf

Syntax-Highlighting in Vim aktivieren

Konsole
mkdir ~/.vim/
cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/

Standard-Backup-Konfigurationsdateien entfernen

Konsole
sudo rm /etc/nginx/*.default

Fazit

Damit ist die Einrichtung abgeschlossen. Du hast nun erfolgreich die neueste NGINX-Version installiert. Diese wurde statisch mit essenziellen Bibliotheken wie OpenSSL kompiliert. Da viele Betriebssysteme veraltete OpenSSL-Versionen mitbringen, bietet dir diese Methode die Möglichkeit, von aktuellen Verbesserungen zu profitieren. Dazu gehören moderne Verschlüsselungsverfahren wie CHACHA20_POLY1305 und neue Protokolle wie TLS 1.3, das mit OpenSSL 1.1.1 eingeführt wird (zum Zeitpunkt dieses Schreibens noch nicht veröffentlicht).

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren