Ah01102 error reading status line from remote server

Unable to login, Proxy Error — Error reading from remote server

Since this morning, without any change on the server and any change on the confluence app, I cannot loggin to the app.

confluence version: 5.3.1

I use Apache/2.4.7 with mod_proxy

I restart both confluence and apache without success.

Confluence is running, the disk is not full.

Each attempt result to the following http error:

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request POST /confluence/dologin.action .

Reason: Error reading from remote server

On apache server log i found the following logs:

[Wed Feb 27 16:56:10.546387 2019] [proxy_http:error] [pid 3833] (70007)The timeout specified has expired: [client] AH01102: error reading status line from remote server localhost:8090, referer: http://xxx/confluence/dologin.action
[Wed Feb 27 16:56:10.546451 2019] [proxy:error] [pid 3833] [client] AH00898: Error reading from remote server returned by /confluence/dologin.action, referer: http://xxx/confluence/dologin.action
[Wed Feb 27 16:56:10.556796 2019] [proxy_http:error] [pid 1107] (70007)The timeout specified has expired: [client] AH01102: error reading status line from remote server localhost:8090, referer: http://xxx/confluence/dologin.action
[Wed Feb 27 16:56:10.556843 2019] [proxy:error] [pid 1107] [client] AH00898: Error reading from remote server returned by /confluence/dologin.action, referer: http://xxx/confluence/dologin.action

I tried to update the ProxyTimeout without success.

I don’t know where to search since I did not found any related issue.


apache2 proxy recursion

После установки веб-приложение создало конфиг apache и стало доступно по

Требуется сделать приложение доступным по DNS, причем приведенный конфиг нельзя править.

На такое в логеapache2/errror.log возмущение:

Погоди. Твой nginx слушает *:80 и выполняет проксирование на localhost:80 ? Ничего не смущает?

Где-то здесь и появился адский редирект. Возможно из-за того, что proxy_pass прямо в server, без location

И в логе apache какой-то прокси упомянут, хотя в конфиге его не вижу

Разнеси nginx и apache по разным портам, будет гораздо легче

Если это невозможно — по разным хостам

Ну в крайнем случае nginx на нестандартный порт и через iptables — редирект _внешних_ обращений на nginx

Потом уже можно будет смотреть в дампе, кто именно возвращает редиректы и дебажить

Где-то здесь и появился адский редирект. Возможно из-за того, что proxy_pass прямо в server, без location

приходит на nginx запрос

Он его проксирует на

, попадает на тот же самый nginx на _дефолтный_ сайт, и снова проксирует на

Где тут вклинился апач я не вижу, но редирект именно из-за того, что на nginx редирект на тот же самый nginx

попадает на тот же самый nginx на _дефолтный_ сайт, и снова проксирует на

Ну в крайнем случае nginx на нестандартный порт и через iptables — редирект _внешних_ обращений на nginx

Воот, это должно сработать.

Про nginx это меня переклинило, у тебя же один апач


Apache reverse proxy? #378


gerroon commented Jan 24, 2019 •

How can I run the docker install behind Apache reverse proxy?

I tried this line below under Apache and it does not work (Docker port is 8000 btw for me)

It works fine inside my network but I want to access it from outside

Читайте также:  Sqlite error opening 14

it redirects to /login

The text was updated successfully, but these errors were encountered:

pcause commented Jan 24, 2019

Know they are different, but I am using ngix and this is what I have in my config file:

location /trilium/ <
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

maybe something here gives you a hint at other directives you might need.

gerroon commented Jan 24, 2019

Thanks but I do not use nginx and I am not seeing anything in your lines that can be helpful with apache.

zadam commented Jan 24, 2019

I’ve never tried Trilium with Apache, but there shouldn’t be any special setup required, just standard reverse proxy config.

pcause commented Jan 24, 2019

@zadam perhaps when @gerroon posts what he did to get it working you could add a wiki page that has the nginx and apache config data.

zadam commented Jan 24, 2019

Good idea, for now I added your config to https://github.com/zadam/trilium/wiki/Server-installation (I hope it’s ok for you)

gerroon commented Jan 24, 2019

See my first post, I have what I put in my apache config.

Entering URL/trilium redirects to URL/login so it breaks the url structure

zadam commented Jan 24, 2019 •

Trilium redirect and all referencing is done with relative paths so proxy forwarding needs to be done to «trilium/» (notice slash at the end)

gerroon commented Jan 24, 2019

yeah it does not work

gerroon commented Jan 24, 2019 •

This kind of works , I can get to login screen but afterwords I get an error

Just after pressing login

pcause commented Jan 26, 2019

thanks for the wiki update. hope it helps others.

gerroon commented Mar 6, 2019

I am still not getting any success with this 🙁 If anyone has any updated info on this, that would be great

truejelly commented Sep 25, 2019

I have also experienced some problems with running Trilium in docker behind Apache reverse proxy. Using config provided on wiki Apache-proxy-setup allows me to access my instance just fine, I can not however change note’s original type. Doing so gives me an error:
Error when calling PUT notes/xu9IvQFyCa1q/type/code/mime/text%2Fx-c%2B%2Bsrc: 404 — Not Found
After that, the note still behaves as if it was of the original type. That is changing note type from text to C++ does not result in the proper highlighting of c++ syntax. This issue does not occur on local network which leads me to believe that the problem is with my apache config. I’m running Apache 2.4.6 on CentOS 7.6.1810 Below are some more details:

Apache error log:

browser developer log:

Any help would be appreciated

MetroWind commented Nov 22, 2019 •

My apache config is

Trilium server was running on port 8181. However after I got to the setup page, clicking “Finish setup” didn’t work. Looking at the HTTP requests in the browser dev tool, it’s this problem.

Читайте также:  Error unable to append to permission denied


App behind mod_proxy is only partially reachable #14


jfmcbrayer commented Apr 17, 2015

This is, unfortunately, another vague-ish bug report.

I have ownCloud running in a kvm-qemu VM. The host machine is running my main apache server, to which I’ve just added mod_h2. The VM’s apache is proxied like this:

Most of the resources load, but for a few, I am getting a 502 Bad Gateway error.

The errors in the ssl_errors.log on the host machine look like

There are no errors in the error_log on the guest machine (the one behind the proxy), and the access_log on the guest machine is showing either 200 or 304 results for all of those requests.

After disabling mod_h2, things work normally.

Again, I’m sorry if this bug report is not very helpful. I think mod_h2 is a great thing and I’m really looking forward to being able to use it.

The text was updated successfully, but these errors were encountered:

icing commented Apr 21, 2015

Thanks for the update. Yes, that would make sense.

In the meantime I installed rainloop and did some rework of the header conversions and input handling. The initial login problems appear for me now sometimes, most of the times the admin login works. It looks ok from my side, but I do not know what to expect of rainloop. If you could give the current github master a try and report your experience, that’d be nice.

If you continue to have problems, could reproduce this with
LogLevel h2:trace1
and send the the error log? Thanks!

This appears to be fixed as of 6b44c55, probably thanks to the Host header fixes. It’s still not possible to log in to this ownCloud site, but that’s probably the same issue as #13.

Reply to this email directly or view it on GitHub.

bytes GmbH
Hafenweg 16, 48155 Münster, Germany
Phone: +49 251 2807760. Amtsgericht Münster: HRB5782


Ошибка прокси 502 «Причина: ошибка чтения с удаленного сервера» с Apache 2.2.3 (Debian) mod_proxy и Jetty 6.1.18

Apache получает запросы через порт 80 и передает их в Jetty через порт 8080

Моя дилемма: все работает нормально (быстрые запросы, несколько секунд или несколько десятков секунд, запросы обрабатываются нормально ). Проблемы возникают, когда обработка запроса занимает много времени (несколько минут?).

Если я вместо этого выдаю запрос непосредственно в Jetty через порт: 8080, запрос обрабатывается ОК. Так что проблема, скорее всего, находится где-то между Apache и Jetty, где я использую mod_proxy . Как это решить?

Я уже попробовал некоторые «хитрости», связанные с настройками KeepAlive, но без удачи. Вот моя текущая конфигурация, есть предложения?

Вот также журнал отладки из ошибочного запроса:

Я решил проблему. Keepalive=On Должен быть вставлен в ProxyPass конфигурации линии:

там? Это критично;)

Вы пробовали установку setenv proxy-initial-not-pooled 1 ?

Эта ошибка также может произойти, если вы не заканчиваете свой URL прокси с / . Либо оба пути должны заканчиваться / или ни тем, ни другим.

Читайте также:  Crazy error exe download

Глядя на журнал, есть время ожидания 5 минут (= 300 секунд). Это довольно долго ждать ответа. Когда вы обращаетесь к серверу Jetty напрямую, действительно ли этот ресурс занимает столько времени для получения ответа?

Если пять минут действительно находятся в пределах возможного времени ответа, вы можете попробовать настроить директиву конфигурации ProxyTimeout.

В зависимости от настроек вашей сети, вполне может быть, что нет никакой причины даже пытаться использовать какую-либо систему поддержки активности (существует ли межсетевой экран между сервером приложений и прокси-сервером, который может быть настроен для удаления сеансов, которые простаивают слишком долго?) , но ProxyTimeout повлияет на поведение самого прокси.

Если тот же прокси-сервер также обслуживает другие бэкэнды, было бы лучше сохранить текущий ProxyTimeout и настроить время ожидания в директиве ProxyPass (см. Документацию mod_proxy).

Если, однако, ответы без прокси-сервера постоянно меньше, чем пять минут, которые мы здесь рассматриваем как предел отсечения, тогда между прокси-сервером и сервером приложений могут существовать некоторые странные помехи, но вы ничего не предоставляете значение для определения того, что это может быть.

Для меня удаление значения заголовка Transfer-Encoding» (binary) в моем приложении-сервере (PHP) решило проблему для:

[proxy_http: ошибка] [pid 17623] (22) Недопустимый аргумент: [клиент] AH01102: ошибка чтения строки состояния с удаленного сервера

Все остальные предложения понравились SetEnv proxy-initial-not-pooled или Keep-Alive не сделали.

Если вышеприведенные решения не работают, можно попробовать включить все ваши модули apache, чтобы убедиться, что нет нужного вам модуля, который каким-то образом случайно отключен.

Например, я обнаружил, что причиной моей проблемы была замена всех экземпляров #LoadModule на LoadModule во всех моих конфигурационных файлах Apache. Так как это решило проблему для меня, поэтому я знал, что моя проблема не была отсутствующим аргументом директивы KeepAlive, а скорее моей проблемой была отсутствующая зависимость.

Потому что, помните, .so файлы — это в основном статические библиотеки. Включение модуля не означает, что он привыкнет, но его отключение означает, что он не может быть использован, и поэтому все, что от него зависит, обязательно потерпит неудачу.

Примечание: этот ответ получил некоторые отрицательные голоса из-за того, что мой первоначальный ответ, казалось, предлагал оставить все модули включенными, навсегда. Хотя теоретически вы можете сделать это, не обязательно что-то сломать, очевидно, что это не лучшее практическое решение.

Поэтому, пожалуйста, поймите, я просто предлагаю это как шаг устранения неполадок, а не окончательное решение.

Также обратите внимание: я использую специальный проект git для отслеживания всех файлов конфигурации apache моей локальной машины. Таким образом, я могу выполнять такие виды глобальных операций поиска и замены в моем рабочем каталоге конфигурации Apache, как этап устранения неполадок. Если включение всех модулей выполнено успешно, попробуйте отключить их снова один за другим и перезапустить apache между ними, пока не найдете нужный модуль, который нужно оставить включенным. Как только вы это выясните, верните репо в исходное состояние и включите только тот модуль, который должен быть включен.

Вы также обнаружите, что использование git для отслеживания ваших конфигурационных файлов apache очищает эти каталоги, так как вам больше не понадобятся эти старомодные файлы .bak и .default.


Оцените статью