Drupal Media,apache的nginx代理,收到502错误的进度条请求

时间:2019-05-15 06:28:08

标签: apache nginx drupal drupal-7

我已经将Drupal网站迁移到了我的服务器,

服务器使用nginx进行ssl终止,然后让apache进行其余操作,例如nginx充当代理。

但是,使用Drupal Media-Browser上传文件时,我收到“ 502 Bad Gateway”错误,要求实际/file/progress/xyz(我认为它是进度栏)上的实际文件上传可以。

这是该站点的nginx服务器块:

server {
  listen  443 ssl;
  listen  [::]:443 ssl;
  server_name  www.example.com;
  port_in_redirect off;

  ssl                  on;
  ssl_certificate /etc/ssl/certs/xyz.crt;
  ssl_certificate_key  /etc/ssl/certs/xyz.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
  ssl_prefer_server_ciphers   on;

  ssl_session_cache   shared:SSL:20m;
  ssl_session_timeout 60m;

  add_header Strict-Transport-Security "max-age=31536000";
  add_header X-Content-Type-Options nosniff;

  location / {
    gzip_static on;

    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header HTTPS "on";

    include /etc/nginx/proxy.conf;

  }
}

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com;
  return 301 https://$server_name$request_uri;
}

这是我的proxy.conf

proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering Off;
proxy_buffers           32 4m;
proxy_busy_buffers_size     25m;
proxy_buffer_size 512k;
proxy_ignore_headers "Cache-Control" "Expires";
proxy_max_temp_file_size 0;
client_max_body_size        1024m;
client_body_buffer_size     4m;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_intercept_errors off;

我还尝试将其添加到nginx.conf的http块中

fastcgi_temp_file_write_size 10m;
fastcgi_busy_buffers_size 512k;
fastcgi_buffer_size 512k;
fastcgi_buffers 16 512k;
client_max_body_size 50M;

没有成功,所以我基本上尝试了我在网上找到的有关该主题的所有内容,都没有成功,尽管我对nginx还是很陌生,所以也许我只是在监督某事?

Nginx记录到error_log:

2019/05/15 08:09:26 [error] 21245#0: *42 upstream prematurely closed connection while reading response header from upstream, 
client: 55.10.229.62, server: www.example.com, request: "GET /file/progress/190432132829 HTTP/1.1", 
upstream: "http://127.0.0.1:8080/file/progress/190432132829", 
host: "www.example.com", 
referrer: "https://www.example.com/media/browser?render=media-popup&options=Uusog2IwkXxNr-0EaqD1L6-Y0aBHQVunf-k4J1oUb_U&plugins="

所以也许是因为上游是http?

让我更加担心的是,我在httpd-error_log中记录了段错误

[core:notice] [pid 21277] AH00052: child pid 21280 exit signal Segmentation fault (11)

我拥有最新的Drupal-7.67内核,并且所有模块都是最新的

在CENTOS7上使用PHP 7.2.17 使用nginx 1:1.12.2-2.el7
和httpd 2.4.6-88.el7.centos

我也将此添加到了drupal的settings.php

$conf['reverse_proxy'] = TRUE;
$conf['reverse_proxy_addresses'] = ['127.0.0.1'];

但它似乎没有任何作用

更新:

为完成此项功能,以下是失败请求的详细信息(来自chrome network-tab)

响应标题

Connection: keep-alive
Content-Length: 575
Content-Type: text/html
Date: Wed, 15 May 2019 06:09:26 GMT
Server: nginx/1.12.2

请求标头

Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate, br
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Cookie: _pk_ses.10.9e92=1; has_js=1; cookie-agreed=2; SSESS812a016a321fb8affaf4=pY3nnqqagiCksF61R45R6Zrmi6g6DdMcYRxSPM1HLP0; Drupal.toolbar.collapsed=0; _pk_id.10.9e92=614e315e332df7.1557898005.1.1557900255.1557898005.
Host: www.example.com
Referer: https://www.example.com/media/browser?render=media-popup&options=Uusog2IwkXxNr-0EaqD1L6-Y0aBHQVunf-k4J1oUb_U&plugins=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
X-Requested-With: XMLHttpRequest

当我删除php pecl-uploadprogress

yum remove php-pecl-uploadprogress.x86_64

错误消失了,但是即使我有apc,进度条也无法正常工作。他们在Pecl-uploadprogress page上提到,不幸的是,除了使用mod_php的apache之外,其他SAPI实现仍然存在问题。 我猜我遇到了其中之一, 但是我非常乐意让Apache报告进度。

0 个答案:

没有答案