【发布时间】:2015-11-23 12:08:39
【问题描述】:
我已经用 nginx 和 apache 设置了我的本地机器。我使用 nginx 作为所有 nodejs 通信的前端服务器。每个 nodejs 应用程序都有一个自己的上游定义和我的 hosts 文件中的一个条目,这样我就可以得到一个方便的 URL 来使用。另外,我为 apache 定义了一个上游,它在我的配置中的端口 8080 上工作 - 这样我所有的 php 应用程序都可以在 localhost/* 下使用(内部是 localhost:8080/*)。这个配置现在可以正常工作几个月了。但是这次我想在我的本地机器上安装一个magento。为此,我将127.0.0.1 magento.local添加到我的主机文件中(就像我对所有nodejs应用程序所做的那样)并将以下内容添加到我的nginx.conf中:
upstream apache {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name magento.local;
client_max_body_size 1024M;
root /Users/phunkei/htdocs/magento;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://apache;
}
}
这会将所有内容重写为 /Users/phunkei/htdocs/,这是我的 apache 根。我已经尝试将子文件夹添加到上游定义server 127.0.0.1:8080/magento,但 nginx 不允许这样做。
【问题讨论】:
-
不确定您要达到的目标。但是
root语句是多余的。它不是必需的,也不使用。你是在尝试proxy_pass http://apache/magneto/;吗? -
是的,它会将“magento”添加到 url,从而产生
http://magento.local/magento。我试图让http://magento.local/指向/Users/phunkei/htdocs/magento或http://localhost:8080/magento