-
04.02.2012, 15:07 #1
[HowTo] Nginx as reverse Proxy
Moin,
da ich gerade etwas Zeit habe zeige ich euch mal wie man Nginx als reverse Proxy zu apache einrichtet. Das hat den Vorteil, dass euer VPS mehr requests schafft, da nginx besser die statischen Inhalte verarbeiten kann und apache2 besser für dynamische Sachen geeignet ist.
Welche Kenntnisse benötigt ihr?
- Ihr müsst Dateien bearbeiten können
- Etwas Linux Kenntnisse sind natürlich vorrausgesetzt, damit ihr auch wisst was ihr macht.
Ich zeige das ganze unter Debian 6.0.4
[code][root@washyourmom ~]# cat /etc/debian_version
6.0.4[code]
Apache2
Da die Repos von Debian6 mpm-worker installieren, wir aber mod-php5 haben wollen, installieren wir danach nochCode:aptitude install apache2
Nun werden wir gefragt ob apache2-mpm-worker ersetzt werden soll und das bestätigen wir.Code:aptitude install libapache2-mod-php5
Damit ist apache2 erst mal installiert.
Damit kommen wir zur apache2 Konfiguration, ich zeige euch wie ich das ganze immer Aufbau um die Übersicht zu behalten.
Domain ist natürlich durch eure Domain zu ersetzen.Code:mkdir /var/www/Domain touch /var/www/Domain/index.php mkdir /var/log/apache2/Domain/ touch /var/log/apache2/Domain/error.log touch /var/log/apache2/Domain/access.log chown -R www-data:www-data /var/www/Domain/
Damit der Websrver auch auf dem richtigen Port lauscht, erzählen wir ihm das auch gleich mal, hier könnt ihr irgend einen Port über 1024 einsetzen. In meinem Beispiel nutze ich dafür Port 8080.Code:/etc/apache2/ports.conf
Also steht dann da:
Warum 127.0.0.1? Damit wirklich nur Nginx später auf apache zugreift.Code:NameVirtualHost 127.0.0.1:8080 Listen 127.0.0.1:8080
Danach löschen wir erstmal den Default Virtualhost von apache
und legen eine neue Datei unter /etc/apache2/sites-available an.Code:a2dissite default
Den Virtualhost werde ich jetzt nicht im Detail erklären, dazu kann man sich gerne die Dokumentation durchlesen.Code:<VirtualHost 127.0.0.1:8080> ServerAdmin root ServerName Domain ServerAlias www.Domain DocumentRoot /var/www/Domain <Directory /> AllowOverride None </Directory> <Directory /var/www/Domain> Options FollowSymLinks MultiViews </Directory> ErrorLog /var/log/apache2/Domain/error.log LogLevel warn CustomLog /var/log/apache2/Domain/access.log combined </VirtualHost>
Dann noch
und wir sind mit der Konfiguration für den backend fertig.Code:a2ensite Domain && apache2ctl restart
Nginx
Bei nginx machen wir eigentlich fast das gleiche. Zu erst einen neuen Virtualhost anlegen, diesen aktivieren und nginx auf Port 80 lauschen lassen. Im Virtualhost wird auch der reverse Proxy eingestellt.Code:aptitude install nginx
Also erstellen wir mal einen neuen Vhost in
Code:/etc/nginx/sites-available/Domain
Es ist eindeutig zu sehen was hier passiert. Alles was nicht gekennzeichnet ist wird erstmal zu apache2 weitergeleitet.Code:server { listen 80; server_name Domain; location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect default; } location ~* ^.+.(htm|html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz| rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|b mp|rtf|js)$ { access_log off; expires max; root /var/www/Domain; } }
Zum aktivieren einfach:
Jetzt noch nginx mitCode:ln -s /etc/nginx/sites-available/Domain /etc/nginx/sites-enabled/Domain
neustarten und wir sind fertig.Code:/etc/init.d/nginx restart
Ist nicht sonderlich toll erklärt, aber wie oben gesagt, mit etwas Erfahrung im Bereich Linux wird sich das ganze von selbst erklären.
Falls Fragen sind oder ich was vergessen habe, schreibt es einfach, ich kann euch gerne helfen.
//EDIT:
Nach ein "paar" Monaten ist mir jetzt mal aufgefallen das ich eine wichtige Sache vergessen habe.
Ihr braucht noch unter /etc/nginx/conf.d/ eine .conf Datei (Ich nenne diese proxy.conf) mit folgendem Inhalt:
Code: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; client_header_buffer_size 64k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 16k; proxy_buffers 32 16k;
Geändert von Darkfield (03.02.2014 um 11:34 Uhr)
-
The Following 8 Users Say Thank You to Ta1lor For This Useful Post:
Ähnliche Themen
-
Reverse Engineering - Crackme v5
Von Snees im Forum AufgabenAntworten: 6Letzter Beitrag: 19.07.2013, 15:34 -
Reverse Engineering - Crackm3
Von Snees im Forum AufgabenAntworten: 9Letzter Beitrag: 06.05.2013, 18:49 -
[Artikel] Server Load Balancing (SLB) mit nginx
Von Devon im Forum Server-AdministrationAntworten: 0Letzter Beitrag: 15.08.2012, 23:03
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.
Zitieren