> As far as I understood, the "P" flag implies "L"

True, so that part of the docs seems redundant

> Reading through the report, this bug probably hit me, too. GitLab is a Ruby-
on-rails application using a Puma Webserver internally, connected to Apache 
all over UNIX-sockets; this cable-stuff mentioned in the report is RoR's 
action cable that is used in GitLab, too. And basically the "working" solution 
I found, too; I'm not quite sure whether using two Location directives in my 
config makes a difference over giving the location directly to ProxyPass...

So do you have a working solution after applying the workaround from the 
bugzilla ticket or is there still a 400 response after that?

In any case, what is the current state of the config? Since there were a few 
suggested changes since your first mail I just want to make sure we're still on 
the same page before investigating further ideas.


Am 27. Dezember 2022 21:39:30 MEZ schrieb Jan Kohnert 
<nospam001-li...@jan-kohnert.de>:
>Am Dienstag, 27. Dezember 2022, 20:32:28 CET schrieb Florian Schwalm:
>> As far as I understand Gitlab sends a HTTP GET request first to ask the
>> backend to upgrade to websockets. By always proxying /-/cable to ws right
>> away you prevent that first upgrade request from succeeding which is
>> probably where the new error message originates. That's why the
>> mod_proxy_wstunnel docs recommend using the RewriteRule method in that
>> case.
>
>True, I just tried it again, using your suggestion:
>
>> So a working section could be
>> 
>> RewriteEngine on
>> RewriteCond %{HTTP:Upgrade} websocket [NC]
>> RewriteCond %{HTTP:Connection} upgrade [NC]
>> RewriteRule ^/?(.*) "unix:///opt/gitlab/gitlab/tmp/sockets/gitlab-
>> workhorse.socket|ws://127.0.0.1/$1" [P,NE]
>
>Using this configuration results in a 400 error in Apache's logs, and I cannot 
>find a corresponding log entry in GitLab's logs:
>
>$REMOTE_IP - - [27/Dec/2022:21:22:16 +0100] "GET /-/cable HTTP/1.1" 400 30 "-" 
>"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) 
>Chrome/108.0.0.0 Safari/537.36"
>
>> The mod_proxy_wstunnel docs also use the L or last flag for the RewriteRule,
>> so maybe also add this if necessary.
>
>As far as I understood, the "P" flag implies "L", but regardless whether I set 
>"L" or not, the behaviour stays the same. If I remove the "NE" flag, the DSO 
>error returns, so I think, I at least have to set "P,NE"
>
>> When trying this, in combination with unix domain sockets and websockets you
>> may also want to consider this workaround, it's unclear to me if that bug
>> has already been fixed:
>> https://bz.apache.org/bugzilla/show_bug.cgi?id=65958
>
>Reading through the report, this bug probably hit me, too. GitLab is a Ruby-
>on-rails application using a Puma Webserver internally, connected to Apache 
>all over UNIX-sockets; this cable-stuff mentioned in the report is RoR's 
>action cable that is used in GitLab, too. And basically the "working" solution 
>I found, too; I'm not quite sure whether using two Location directives in my 
>config makes a difference over giving the location directly to ProxyPass...
>
>Thanks, again!
>
>-- 
>MfG Jan
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
>For additional commands, e-mail: users-h...@httpd.apache.org
>

Reply via email to