Home > Linux > nginx als reverse proxy vor apache2 mit froxlor

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 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

Tags:
  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks