Nginx vor ein Apache2 zu schalten sollte nicht so schwer sein.
Dies kann täuschen.
Standard Seite vom Apache2 läuft:
http://www.murawski.ch:80/index.php
Nginx liefert den statischen Content direkt, funktioniert auch:
http://www.murawski.ch:8080/wp-img/smu.jpg
Seite über Nginx, rennt nicht, sondern Standard Apache2 Seite wird ausgeliefert:
http://www.murawski.ch:8080/index.php
Doch was läuft falsch? Die Antwort ist schnell gefunden, aber sehr verwirrend… und hier setzt das Problem ein, wie lösen??
Die Nginx Konfiguration lautet:
server { listen 8080; server_name www.murawski.ch; root /var/www/web0/html/murawski.ch/blog/; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php; } location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; access_log off; add_header Cache-Control public; } location ~* .php$ { # Set header to be what we requested proxy_pass http://127.0.0.1:80; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } location ~ /\.ht { deny all; } }
Bei deiser Konfiguration, ist eben gesagtes Problem, dass apache2 immer die Standard Webseite „localhost“ ausliefert anstelle den Vhost.
Würde ich die Zeile in:
proxy_pass http://www.murawski.ch:80;
anpassen, würde die Webseite ausgeliefert werden.
Laut meiner Meinung müsste die Anweisung:
proxy_set_header Host $host;
Genau dem Apache2 sagen, welche Seite er ausliefern müsste.
Nachtrag:
Das Problem habe ich unterdessen gefunden. Es bestand darin, dass mein Apache2 nicht auf *:80 gebunden ist, sondern auf einer fixen IP Adresse, da ich mehrere Seiten mit verschiedenen IPs besitze (SSL Zertifikate und so).
Somit ist unter 127.0.0.1 keinerlei vhosts erreichbar ausser der Standard Vhost. Ich muss daher den Apache gezielt mit der richtigen IP Adresse ansprechen. Nun wirds erst recht interessant wie man dies dann abbildet, das die SSL Zertifikate immer noch passen über den Nginx ;)