加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

NginX-> Varnish-> PHP-FPM空白页面

发布时间:2020-12-13 21:16:51 所属栏目:Nginx 来源:网络整理
导读:我想把nginx放在Varnish面前,同时它会回到nginx来为PHP(Drupal)提供服务. 但我只得到空白页面(来自Varnish)200响应,但长度为0.只有重新启动清漆工作后的第一次访问,但随后是空白页面. 这是Nginx的配置: server{ listen 80; server_name myserver access_log

我想把nginx放在Varnish面前,同时它会回到nginx来为PHP(Drupal)提供服务.

但我只得到空白页面(来自Varnish)200响应,但长度为0.只有重新启动清漆工作后的第一次访问,但随后是空白页面.

这是Nginx的配置:

server{
  listen 80; 
  server_name myserver

  access_log  /var/log/nginx/ssl_access.log main;
  error_log   /var/log/nginx/ssl_error.log warn;

  location / { 
    proxy_pass http://127.0.0.1:6081;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_redirect off;
  } 

然后清漆配置只是默认设置,尝试调试:

backend default {
  .host = "127.0.0.1";
  .port = "8080";
}

然后再次为8080的nginx配置是:

server{
  listen       8080; 
  access_log  /var/log/nginx/fromvarnish.log main;
  error_log   /var/log/nginx/fromvarnisherror.log warn;

  server_name myserver

  location / { 
    try_files $uri /index.php?$query_string; 
  }
  location ~ '.php$|^/update.php' {
     include fastcgi_params;
     fastcgi_pass 127.0.0.1:9001;
     fastcgi_index index.php;
  }
}

访问我的网页只返回空的html但200响应.没有PHP错误或任何东西. Nginx上的访问日志只是访问,没有错误.

如果我直接从Varnish访问(我通过端口mywbpage.com:6081访问)或者如果我将它设置为端口80它可以工作.

如果我将php执行后端设置为Apache php-fpm(而不是Nginx:nginx-> varnish-> apache)它也可以正常工作(虽然如果php执行者是HHVM,但我可能会遇到同样的问题问题).

编辑:抱歉这是错误的,如果我使用apache它只有当我取消选中drupal的默认缓存(未经身份验证的用户的缓存页面)时才有效.使用nginx无关紧要,无论使用此复选框,它都无法运行.

你们中的任何人都知道可以指导我的事情吗?

最佳答案
所以我希望有人给出答案,但与此同时我做了它,所以我将解释如何:

nginx配置在服务器部分端口80.用户将首先访问的那个,添加:

proxy_http_version 1.1;

看一下清漆日志,来自nginx -blank page-的请求之间的一点差异:

ReqProtocol HTTP/1.0

一个直接从webbrowser访问清漆端口(例如:mypage:6081) – 正确地工作 – 是:

ReqProtocol HTTP/1.1

所以我强迫nginx使用1.1,现在它可以工作了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读