Mehrere NGINX-Serverblöcke mit Reverse Proxy

Ich verwende nginx + PHP + MySQL und tomcat + postresql unter Windows (ich weiß, dass es keine sehr gute Ressourcennutzung ist, ich brauche sie nur für bestimmte Projekte).

und ich brauche ein wenig hilfe bei der nginx config. Ich plane schließlich, Nginx auf Port 80 auszuführen, wo wiki.example.com und site.example.com die gleiche IP sind. Ich möchte jedoch Anfragen für site.example.com an tomcat unter localhost: 8080 weiterleiten. Anfragen für wiki.example.com werden von nginx bearbeitet.

Ich weiß, wo mein Problem in der Konfiguration liegt, nur weil ich den Fehler in der Konsole sehen kann; Ich kann nicht zwei "Ort /" -Einstellungen festlegen, selbst wenn sie sich in verschiedenen Serverblöcken befinden. hier ist meine Konfig, weiß jemand, wie man es repariert?

http {
include       mime.types;
default_type  application/octet-stream;

server {
listen 8080 default_server;
server_name _;
server_name_in_redirect off;
root  www/html;
}

server {
    listen       wiki.example.com:8080;
    server_name  wiki.example.com;

    location / {
        #proxy_pass http://localhost:80/;
        #proxy_set_header  Host $http_host;
        root   www/wiki;
        index  index.html index.htm index.php;
    }

    location ~ .php$ {
        root           www/wiki;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
        index index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

server {
    listen site.example.com:8080;
    server_name site.example.com;
    root www/html;

    location / {
        proxy_pass http://localhost:80/;
        proxy_set_header  Host $http_host;
        root   www/html;
        index  index.html index.htm index.php;
    }

    }

}

BEARBEITEN:

Vielen Dank für Ihre Hilfe. Ich habe die Konfiguration gemäß Ihrer Anweisung bearbeitet und es funktioniert meistens !! :) Wenn Sie zu site.example.com navigieren, wird die Site geladen (von nginx vertreten und über tomcat bereitgestellt).

ABER Wenn Sie zu wiki.example.com navigieren, wird eine Nginx 404-Nachricht angezeigt. Wenn Sie jedoch zu wiki.example.com/index.php?title=Main_Page navigieren, wird MediaWiki wie gewohnt geladen. Es scheint also, dass die Standardeinstellungen für den Wiki-Server-Block durcheinander sind.

http://pastebin.com/znT8q6WQ

sieht das wie das teil mit dem fehler aus?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage