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.phpSuchen 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.phpKonfigurieren von Apache
Ändern Sie den Standardport, auf dem Apache lauscht, von 80 auf 8080.
vi /etc/httpd/conf/httpd.confListen 80
UseCanonicalName OffListen 8080
UseCanonicalName OnNginx 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.rpmHinweis: 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.confuser 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 startTesten
Überprüfen Sie zuerst die virtuelle Host-ISPConfig-Datei:
cat /etc/httpd/conf/vhosts/Vhosts_ispconfig.confSie 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.logStarten Sie den Server bei Bedarf neu.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.