nginx als reverse proxy vor apache2 mit froxlor

nginx ist ein kleiner hochperformanter Webserver und Proxy für http, pop3 und imap.

Dieser Artikel basiert auf dem help.ubuntu.com Eintrag Nginx/ReverseProxy.

Nginx Installation auf Debian Systemen:

sudo apt-get install nginx

Nginx Proxy Configuration (nur reverse, kein caching Proxy). Diese unter /etc/nginx/proxy.conf speichern.

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;

Nginx vhost Vorlage für Froxlor Domains, speichern unter /etc/nginx/TEMPLATE:

server {
listen 80;
server_name DOMAIN www.DOMAIN;
access_log /var/log/nginx/DOMAIN.access.log;
location / {
proxy_pass http://127.0.0.1:8888;
include /etc/nginx/proxy.conf;
}
}

Unter server_name werden die Froxlor Domains eingetragen, dazu gibt es gleich ein Script. proxy_pass verweisst auf die Apache2 Instanz, die hier unter 127.0.0.1 Port 8888 erreicht wird.

Froxlor Domains aus der MySQL Datenbank abfragen und als nginx vhosts speichern unter /etc/nginx/CREATE_VHOSTS:


DOMAINS=/etc/nginx/domainlist.txt
USE froxlor ; SELECT domain FROM panel_domains;
MYSQL

for domain in `cat $DOMAINS`
do
# echo $domain
sed s/DOMAIN/$domain/g /etc/nginx/TEMPLATE >/etc/nginx/sites-enabled/$domain
done

Domains auslesen und Vhosts schreiben:

sh /etc/nginx/CREATE_VHOSTS

Apache und Froxlor Configuration:

sudo apt-get install libapache2-mod-rpaf

Damit die wirkliche remote IP Adresse im Apache Logfile landet, muss das Apache2 mitgeteilt werden. In Froxlor wird unter SERVER > IPs and Ports > bearbeiten > Webserver domain config folgendes eingetragen:


<ifmodule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 83.151.25.150
</ifmodule>

RPAFproxy_ips sind die nginx IP Adressen, meist also die public IP. Mehreinträge sind möglich.

Proxy und Webserver neustarten:

invoke-rc.d nginx reload
invoke-rc.d apache2 reload

3 Gedanken zu „nginx als reverse proxy vor apache2 mit froxlor

  1. Ich habe ein Problem mit der Datei CREATE_VHOSTS

    # sh /etc/nginx/CREATE_VHOSTS

    gibt mir

    /etc/nginx/CREATE_VHOSTS: line 2: USE: command not found
    /etc/nginx/CREATE_VHOSTS: line 2: SELECT: command not found
    /etc/nginx/CREATE_VHOSTS: line 3: MYSQL: command not found
    cat: /etc/nginx/domainlist.txt: No such file or directory

    Danke Schone (on Debian Squeeze)

  2. #!/bin/sh
    DOMAINS=`mysql -u -p -se „select domain from panel_domains“ froxlor`

    for domain in $DOMAINS
    do
    if [ ! -e /etc/nginx/conf.d/${domain}.conf ]; then
    sed s/DOMAIN/$domain/g /etc/nginx/conf.d/TEMPLATE > /etc/nginx/conf.d/${domain}.conf
    fi
    done

    This Better

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert