Nginx ist ein leichter Webserver, der nachweislich statische Dateien schneller als Apache bereitstellt. In diesem Tutorial erfahren Sie, wie Sie Nginx als Reverse-Proxy über den Apache-Webserver installieren.
Bedarf
Sie haben Apache auf Ihrem Server installiert. Apache führt bereits eine Site auf Port 80 aus.
Ändern Sie den Apache-Überwachungsport
Bearbeiten /etc/apache2/ports.conf, damit Apache Port 8080 anstelle von Standardport 80 abhört.
Finden Sie folgende Zeile:
NameVirtualHost *:80
Listen 80
Ändern Sie es in:
NameVirtualHost *:8080
Listen 8080
Vergessen Sie nicht, Ihren vorhandenen vhost-Listening-Port einzuschalten /etc/apache2/sites-enabled/*
Veränderung:
<VirtualHost *:80>
Zu:
<VirtualHost *:8080>
Deaktivieren Sie nicht verwendete Module in Apache
Da HTTP-Anforderungen jetzt von Nginx verarbeitet werden, können wir KeepAlive in Apache deaktivieren. Bearbeiten /etc/apache2/apache2.confund ändern:
KeepAlive Off
Führen Sie außerdem die folgenden Befehle aus, um nicht verwendete Module zu deaktivieren.
a2dismod deflate
a2dismod cgi
a2dismod autoindex
a2dismod negotiation
a2dismod ssl
Vorwärtsmodul installieren
Installieren Sie mod_rpaf in Apache, um die Besucher-IP an Apache weiterzuleiten. Andernfalls lesen Ihre Skripte REMOTE_ADDR-Werte als Server-IP.
apt-get install libapache2-mod-rpaf
Beenden Sie den Apache-Dienst
/etc/init.d/apache2 restart
Richten Sie Nginx ein
Installieren Sie Nginx.
apt-get install nginx
Entfernen Sie den Standard-vhost, um Konflikte zu vermeiden.
rm -rf /etc/nginx/sites-enabled/*
Erstellen Sie einen neuen Standard-vhost:
cat >/etc/nginx/sites-available/000-default <<EOF
server {
access_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
EOF
ln -s /etc/nginx/sites-available/000-default /etc/nginx/sites-enabled/000-default
Erstellen Sie vhost für eine vorhandene Website, um die Anfrage an Apache weiterzuleiten:
cat >/etc/nginx/sites-available/domain.com <<EOF
server {
server_name www.domain.com domain.com;
root /var/www/domain.com/;
access_log off;
# Static contents
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)$ {
expires max;
}
# Dynamic content, forward to Apache
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
EOF
ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/domain.com
Starten Sie Nginx neu und fertig.
/etc/init.d/nginx restart