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;
MYSQLfor 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
In the first line you want to say „sudo apt-get install nginx“ 😉
many thanks
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)
#!/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