February 10, 2012

Apache und co

ich hab mal wieder paar Tipps.

Ein Link Tipp: buecher.lingoworld.de/apache2/showdir.php?id=604 – Hier wird die Konfigurationsdirektive MaxClients erklärt

Weiterleitung per htaccess:

RewriteCond %{HTTP_HOST} ^domain.de$ [NC] 
RewriteRule ^(.*) http://www.domain.de/$1 [L,R=301]

domain.de dann natürlich anpassen.

FileSystem gewechselt bzw. Tod ?

Mit dmesg kann man sehen, warum linux auf read-only gewechselt hat.

HowTo: SSL User anlegen, habe irgendwo mal gefunden und gespeichert…

Oki, los gehts, und zwar ausgehend mit SuSE 9.0 und Confixx 3.0x, sollte aber auch für andere Server helfen:

Ich gehe hier aber mal davon aus, dass man weiss, wie ein SSL-Proxy generell arbeitet und wofür man ihn braucht, dass sollte ansonsten an anderer Stelle schon ausreichend beschrieben worden sein.

Der “Basiscode” eines solchen Proxies sollte immer gleich sein:

Code:

ServerName ssl.ssldomain.de
DocumentRoot /home/htdocs/web0/html

# php_admin_value open_basedir /home/htdocs/
# php_admin_flag safe_mode On

SSLEngine on
# SSLCACertificateFile /etc/apache2/xxx.ca
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSL v2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/xxx.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/xxx.key

SetEnvIf User-Agent “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

- Die Zeile mit “SSLCACertificateFile” ist nur bei mir notwendig, aufgrund meines Certs. Könnte aber sein, dass es jemanden genauso geht… Wink
- Je nach Server-Config müssen (nur bei Alias!) evtl. die php_admin_x zeilen eingefügt werden!

Es gibt nun meines Wissens nach 3(!) Möglichkeiten, SSL-Umleitungen zu realisieren, die erste davon nutze ich seit über einem Jahr für größere Shop- und Versicherungssysteme ohne Probleme, aber sie wurde bisher in keinem Forum erwähnt?!

1. Man nimmt die Alias-Directive (dateiseitig)
———————————————-
Code:

Alias /testssl1.de/ /home/htdocs/web1/html/
Alias /testssl2.de/ /home/htdocs/web2/html/
usw…

(Natürlich muss z.b. die Domain testssl1.de auch unter web1 eingerichtet sein!)

Dann würden beim Aufruf von
https://ssl.ssldomain.de/testssl1.de/
alle Dateien dieser Domain einfach aus einem anderen Home-Verzeichnis auf dem Server geholt. Wer es nicht glaubt: einfach ausprobieren. Wie gesagt, läuft es so seit einiger Zeit völlig problemfrei in Shopsystemen (bei Bedarf kann ich auch Beispiele nennen… Wink)

Vorteil:
- Super einfach Smile
- man braucht KEINE extra Module

Nachteil:
- evtl. etwas ungewohnt, und fummelig statt der Domainnamen auch immer die zugehörigen webXX-Nummern parat zu haben
- durch “php_admin_value open_basedir /home/htdocs/” evtl. ein wenig unsicherer? (FTP sollte man lieber eh für web0 verbieten!!!)

2. die ProxyPass + ProxyPassReverse Directive (domainseitig)
————————————————————
Code:

RedirectPermanent /testssl1.de https://ssl.ssldomain.de/testssl1.de/
ProxyPass /testssl1.de/ http://testssl1.de/
ProxyPassReverse /testssl1.de/ http://testssl1.de/

RedirectPermanent /testssl2.de https://ssl.ssldomain.de/testssl2.de/
ProxyPass /testssl2.de/ http://testssl2.de/
ProxyPassReverse /testssl2.de/ http://testssl2.de/
usw…

oder (1und1 FAQ)
3. die mod_rewrite-Technik (domainseitig)
—————————————–
Code:

RewriteEngine on
RewriteLog /var/log/apache2/sslproxy.log
RewriteLogLevel 1
RewriteMap lowercase int:tolower
RewriteMap domaindb txt:/etc/apache2/ssl_domains.db
RewriteRule ^/icons/(.+) – [L]
RewriteRule ^/w3c/(.+) – [L]
RewriteRule ^/([^/]+)/(.*) /${lowercase:$1}/$2 [S=1]
RewriteRule ^/(.*) /${lowercase:$1}
RewriteRule ^/www\.([^/]+)/(.*) /${domaindb:$1|%{HTTP_HOST}/$1}/$2 [S=2]
RewriteRule ^/([^/]+)/(.*) /${domaindb:$1|%{HTTP_HOST}/$1}/$2 [S=1]
RewriteRule ^/(.+) /$1/ [R,L]
RewriteRule ^/(.*) http://$1 [P,L]

und in der Datei /etc/apache2/ssl_domains.db steht z.b.:
Code:

testssl1.de testssl1.de
testssl2.de testssl2.de

Für die letzten BEIDEN Varianten (auch rewrite!) ist es ganz WICHTIG, in der Datei
/etc/sysconfig/apache2
die Zeile APACHE_MODULES=”…” am Ende zu ergänzen:
Und zwar nicht nur um ” proxy”, sondern AUCH um ” proxy_http”!!!
Das bewirkt nach einen “rcapache2 restart” das Einbinden der nötigen Proxy-Module in die Datei
/etc/apache2/sysconfig.d/loadmodule.conf
Nur “proxy” reicht nicht aus, sonst kommen nur bekannte Logfehler!!!

Vhost setzen (Apache) damit eine Seite von Server aufgerufen werden kann. (Wenn kein Controll Interface auf dem Server installiert ist)

  ServerName domain.de
  ServerAlias www.domain.de

  DocumentRoot /usr/share/phpmyadmin
 

Kommen wir mal zum was anderen:
Auf eine bestimmte Seite nach dateiendungen suchen (per Google).

inurl:avi|mpg|wmv site:domain.de für Videos
inurl:exe|rar|zip site:domain.de für Archive, Ausführbare Dateien
inurl:wma|mp3|ogg site:domain.de für Audio Files

Apache, Mysql, Postfix automatisch per Cronjob restarten.

vi /root/restart.sh 

Reinschreiben:

#!/bin/sh
/etc/init.d/apache2 restart
/etc/init.d/mysql restart
/etc/init.d/postfix restart 

Speichern mit :wq

Cronjob anlegen:

Zitat:
crontab -e 

Einfügen:

0 3 * * * /root/restart.sh 

Nächter HowTo wird sein: Installation von Debian mit Confixx 3.

Speak Your Mind

*

Auch interessant...