我正在运行一个 wordpress 网站,我的前端由 Nginx 管理。Nginx 将所有动态内容转发到 varnish,varnish 随后转发到 apache。现在我想这样配置,如果 varnish 停止/失败,nginx 将请求直接转发到 apache。我该怎么做。
答案1
可以通过负载平衡方法来实现。Nginx负载平衡使用模块。最简单的方法是在位于 的文件upstream
中的 http 字段内添加上游块。nginx.conf
/etc/nginx/
http {
upstream backend {
server 127.0.0.1:8081;
server 127.0.0.1:8088;
# server Backend_Server_IP;
}
...
}
在这里我已经考虑过漆localhost
正在运行port 8081
阿帕奇localhost
正在运行port 8088
。这里不需要指定 Varnish 的 IP 地址和端口号,但是为了以防万一我还是添加了它。
此后,您只需编辑位于目录中的站点设置即可/etc/nginx/sites-available/
。只需打开您的站点文件并在其中添加以下几行即可。
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
现在保存它,关闭它,然后通过输入以下内容检查 nginx 配置文件是否存在语法错误:
sudo nginx -t
如果语法正确,请重新启动 nginx 服务。
sudo service nginx restart
它会像魔法一样工作。您可以通过停止 varnish 服务来检查它,然后访问您的站点。nginx将绕过漆如果 Varnish 服务失败,它会将请求转发给阿帕奇:-)