我在 Windows 上运行 nginx+PHP+MySQL 和 tomcat+postresql(我知道它不是很好地利用资源,我只需要它们全部用于某些项目)。
我需要一些关于 nginx 配置的帮助。我最终计划在端口 80 上运行 nginx,其中 wiki.example.com 和 site.example.com 是相同的 IP。但我想将 site.example.com 的请求转发到 localhost:8080 的 tomcat,并且 wiki.example.com 的请求将由 nginx 提供服务。
我知道我的问题出在配置中,只是因为我可以在控制台中看到错误;即使它们位于不同的服务器块中,我也无法设置两个“位置/”设置。这是我的配置,有人知道如何解决吗?
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;
}
}
}
编辑:
非常感谢您的帮助。我已经按照你的指示编辑了配置,它大部分都有效!!:) 导航到 site.example.com 将加载站点(由 nginx 代理并通过 tomcat 提供服务)
但是导航到 wiki.example.com 会产生 nginx 404 消息,但是导航到 wiki.example.com/index.php?title=Main_Page 会正常加载 mediawiki。所以似乎 wiki 服务器块的默认设置被搞砸了。
http://pastebin.com/znT8q6WQ
这看起来像错误的部分吗?