проблема с прокси-сервером Apache docker ERR_CONTENT_LENGTH_MISMATCH - PullRequest
0 голосов
/ 03 мая 2019

Загруженные файлы CSS и JS появляются случайным образом net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK).После экспериментов выясняется, что причиной является мой прокси-контейнер httpd: 2.4-alpine, поскольку проблема не возникает при непосредственном доступе к другим контейнерам.Вот файл conf для прокси-контейнера, который вызывает проблему.

<VirtualHost *:80>
    TimeOut -1

    ProxyPass "/support" "http://172.20.0.5/support"
    ProxyPassReverse "/support" "http://172.20.0.5/support"
    ProxyPass "/" "http://172.20.0.2/"
    ProxyPassReverse "/" "http://172.20.0.2/"

    ProxyPreserveHost On
    TimeOut -1
</VirtualHost>

Это та же проблема, о которой сообщается здесь Не удалось загрузить ресурс: net :: ERR_CONTENT_LENGTH_MISMATCH .Однако упомянутое там решение docker nginx не работает для меня;у прокси-сервера нет тома, и очистка журналов в других контейнерах не влияет.Принятый ответ на самом деле не дает решения, он просто дает больше информации об ошибке.

Стоит также отметить, что единственными людьми, которые, кажется, имеют эту ошибку, являются команда переднего плана, которая постоянно перестраивает ихvue / npm / sass / webpack и все остальное.

Dockerfile

FROM httpd:2.4-alpine

RUN apk update && apk add --no-cache alpine-sdk zlib-dev libpng-dev libxml2-dev libmcrypt-dev curl-dev && apk upgrade

RUN sed -i '/LoadModule proxy_module/s/^#//g' /usr/local/apache2/conf/httpd.conf
RUN sed -i '/LoadModule proxy_fcgi_module/s/^#//g' /usr/local/apache2/conf/httpd.conf
RUN sed -i '/LoadModule rewrite_module/s/^#//g' /usr/local/apache2/conf/httpd.conf
RUN sed -i '/LoadModule deflate_module/s/^#//g' /usr/local/apache2/conf/httpd.conf
RUN sed -i '/LoadModule proxy_http_module/s/^#//g' /usr/local/apache2/conf/httpd.conf
RUN sed -i '/LoadModule expires_module/s/^#//g' /usr/local/apache2/conf/httpd.conf

RUN echo 'Include conf.d/*.conf' >> /usr/local/apache2/conf/httpd.conf && mkdir /usr/local/apache2/conf.d

ARG vhostsFileName

COPY httpd-vhosts/$vhostsFileName /usr/local/apache2/conf.d/httpd-vhosts.conf
RUN cp /usr/local/apache2/conf/extra/httpd-default.conf /usr/local/apache2/conf.d/

#Disable apache crontab
RUN echo 'apache' >> /etc/cron.deny
...