Server-Konfiguration · 3 min read · Feb 01, 2026

Nginx Catch-All Host Als Frontend Für Apache Für ISPConfig 2 Auf CentOS 5

Nginx Catch-All Host Als Frontend Für Apache Für ISPConfig 2 Auf CentOS 5

Nginx (ausgesprochen “engine X”) ist ein leichter, leistungsstarker Webserver/Reverse-Proxy und E-Mail (IMAP/POP3) Proxy, lizenziert unter einer BSD-ähnlichen Lizenz. Er läuft auf UNIX, GNU/Linux, BSD-Varianten, Mac OS X, Solaris und Microsoft Windows. Die Leistung von Apache ist ebenfalls im Allgemeinen sehr gut. In einer ressourcenbeschränkten Umgebung bietet Apache jedoch nicht unbedingt optimale Leistung oder Ressourcennutzung. Eine der “Best Practices”, um die Belastung von Apache zu reduzieren, besteht darin, einen schlankeren Webserver die Bereitstellung der statischen Dateien der Website (Bilder, Javascript, CSS usw.) übernehmen zu lassen, während Apache die schwere Arbeit der Bereitstellung des dynamischen Inhalts übernimmt. Dieses Tutorial zeigt, wie Sie Nginx als Frontend für Apache für ISPConfig 2 auf CentOS 5.x einrichten können.

Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!

Konfigurieren von ISPConfig 2

Zuerst müssen Sie die Konfigurationsdatei von ISPConfig 2 wie folgt ändern:

cp -v /root/ispconfig/scripts/lib/config.lib.php /root/ispconfig/scripts/lib/config.lib.php.orig  
vi /root/ispconfig/scripts/lib/config.lib.php

Suchen Sie die Zeilennummer 1283 und ändern Sie den Port 80 in 8080:

$web_port = ":80";
$web_port = ":8080";

Suchen Sie die Zeilennummern 2088 und 2089 und ändern Sie den Port 80 ebenfalls in 8080:

  $test_vhost = "\n".'
ServerName www.test.tld:80
ServerAdmin [email protected]
DocumentRoot /home
'.$web_httpd_include.'
';
  $test_vhost = "\n".'
ServerName www.test.tld:8080
ServerAdmin [email protected]
DocumentRoot /home
'.$web_httpd_include.'
';

Wenn Sie eine viel einfachere Methode bevorzugen, verwenden Sie:

sed -ie 's/:80/:8080/g' /root/ispconfig/scripts/lib/config.lib.php

Konfigurieren von Apache

Ändern Sie den Standardport, auf dem Apache lauscht, von 80 auf 8080.

vi /etc/httpd/conf/httpd.conf
Listen 80
UseCanonicalName Off
Listen 8080
UseCanonicalName On

Nginx installieren

Um den Nginx-Webserver zu installieren:

yum install httpd-devel pcre perl pcre-devel zlib zlib-devel  
cd /tmp  
wget http://download.fedora.redhat.com/pub/epel/5/i386/nginx-0.6.39-5.el5.i386.rpm  
rpm -ivh nginx-0.6.39-5.el5.i386.rpm

Hinweis: Wenn Sie die neueste Version von Nginx installieren möchten, überprüfen Sie bitte diesen Link: Install Nginx On CentOS 5.5 With SSL, PCRE, GeoIP, Zlib, Gzip And DAV Support

Und jetzt müssen Sie Nginx konfigurieren.

vi /etc/nginx/nginx.conf
user nginx;
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
#----------------------------------------------------------------------
# Events-Modul 
#
# http://wiki.codemongers.com/NginxEventsModule
#
#----------------------------------------------------------------------
events {
    worker_connections 1024;
    use epoll;
}
#----------------------------------------------------------------------
# HTTP-Kernmodul
#
# http://wiki.codemongers.com/NginxHttpCoreModule 
#
#----------------------------------------------------------------------
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    
    log_format main '$remote_addr - $remote_user [$time_local] $request '
    "$status" $body_bytes_sent "$http_referer" '
    "$http_user_agent" "$http_x_forwarded_for";
    
    access_log /var/log/nginx/access.log main;
    
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    
    keepalive_timeout 65;
    
    gzip on;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_buffers 16 8k;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    
    # 
    proxy_temp_path /var/cache/nginx/temp;
    proxy_cache_path /var/cache/nginx/cached levels=1:2 keys_zone=global:60m inactive=15m max_size=1G;
    proxy_cache_valid    200 302 10m;
    proxy_cache_valid    301 1h;
    proxy_cache_valid    404 3m;    
    proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; 
    proxy_cache_key "$scheme$host$request_uri $cookie_user";
    #
    
    upstream apache {
    server PLACE-IP-ADDRESS-OF-YOUR-SERVER-HERE:8080;
    }
    ###########################################################
    #
    # Der Standardserver
    #
    server {
    
        proxy_cache global;
        
        listen 80;
        server_name _;
        server_name_in_redirect off;
        resolver 127.0.0.1;
        server_tokens off;
        
        if ($host ~* ^(www\.)(.+)) {
            set $rawdomain $2;
            rewrite ^/(.*)$ http://$rawdomain/$1 permanent;
        }
        
        client_max_body_size 30m;
        client_body_buffer_size 256k;
        
        location / {
        
        if (-d $request_filename) {
            rewrite ^/(.+[^/])$ http://$host/$1/ permanent;
        }
        
        proxy_pass http://apache;
        proxy_redirect off;
        proxy_pass_header Set-Cookie;
        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_connect_timeout 120;
        proxy_send_timeout 120;
        proxy_read_timeout 120;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        
        root /var/www/www.$host/web;
            index index.php index.html index.htm default.htm default.html;
        }
        
        error_page 404 /404.html;
        location = /404.html {
            root /usr/share/nginx/html;
        }
        
        # Serverfehlerseiten auf die statische Seite /50x.html umleiten
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
        
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
            root /var/www/www.$host/web; 
            access_log off;
            proxy_cache_valid 200 10h;
            expires 3d;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}

Wichtiger Hinweis: Vergessen Sie nicht, die IP-ADRESSE Ihres Apache-Servers in dieser Konfigurationsdatei zu ersetzen.

Erforderliche Dienste neu starten und genießen!

Starten Sie die Dienste ISPConfig und Apache neu und starten Sie den Nginx-Dienst.

service httpd restart  
service ispconfig_server restart   
service nginx start

Testen

Überprüfen Sie zuerst die virtuelle Host-ISPConfig-Datei:

cat /etc/httpd/conf/vhosts/Vhosts_ispconfig.conf

Sie sollte wie folgt aussehen:

######################################
# Vhost: www.example.com:8080
######################################
#
#
ServerName www.example.com:8080
ServerAdmin [email protected]
DocumentRoot /var/www/web100/web
...

Überprüfen Sie zweitens die Nginx-Protokoll- und Fehlerdateien.

tail -f /var/log/nginx/access.log  
tail -f /var/log/nginx/error.log

Starten Sie den Server bei Bedarf neu.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.