This isn't how ProxyPassReverse is to be used, see:

https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse

On Tue, Jul 4, 2023 at 1:21 PM Kaushal Shriyan <kaushalshri...@gmail.com>
wrote:

> Hi,
>
> I have added the below ProxyPassMatch and ProxyPassReverse in
> /etc/httpd/conf.d/phpnodejs.conf after referring to
> https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassmatch
>
> ProxyPassMatch    "/demo(.*)" "http://localhost:8000/$1
> <http://localhost:8000/demo$1>"
> ProxyPassReverse  "/demo(.*)" "http://localhost:8000/$1
> <http://localhost:8000/demo$1>"
>
> *#cat /etc/httpd/conf.d/phpnodejs.conf*
> <VirtualHost *:80>
>     ServerName phpnodejs.mydomain.com
>     Redirect / https://phpnodejs.mydomain.com/
>  </VirtualHost>
> <VirtualHost *:443>
> DocumentRoot /var/www/html/phpcode/cardium-version-1/web
>         DirectoryIndex index.php
> ServerName phpnodejs.mydomain.com
> Header add Access-Control-Allow-Origin "*"
>         SSLEngine on
>         SSLCertificateFile /etc/letsencrypt/live/
> phpnodejs.mydomain.com/cert.pem
>         SSLCertificateKeyFile /etc/letsencrypt/live/
> phpnodejs.mydomain.com/privkey.pem
>         SSLCertificateChainFile /etc/letsencrypt/live/
> phpnodejs.mydomain.com/chain.pem
>         Header always set Strict-Transport-Security "max-age=63072000;
> includeSubDomains"
>         ProxyPass /index.php !
>         ProxyPassMatch    "/demo(.*)" "http://localhost:8000/$1
> <http://localhost:8000/demo$1>"
>         ProxyPassReverse  "/demo(.*)" "http://localhost:8000/$1
> <http://localhost:8000/demo$1>"
>
> <Directory "/var/www/html/phpcode/cardium-version-1/web">
> DirectoryIndex index.html index.php
> Options FollowSymLinks
> AllowOverride All
>         Require valid-user
>         AuthType Basic
>         AuthName "Restricted Content"
>         AuthUserFile /var/www/html/phpcode/cardium-version-1/web/.htpasswd
> </Directory>
> </VirtualHost>
>
> When I hit https://phpnodejs.mydomain.com the html and php code it works
> perfectly along with loading the resources like js, css and html pages.
> Whereas when I hit https://phpnodejs.mydomain.com/demo (/demo) which is
> the node.js backend listening on port 8000, I see the below logs in
> /var/log/httpd/ssl_access_log
>
> /demo is the node.js backend service listening on port 8000.
>
> 172.16.16.45 - - [04/Jul/2023:22:35:05 +0530] "GET
> /demo/element/index.html HTTP/1.1" 304 -
> 172.16.16.45 - - [04/Jul/2023:22:35:05 +0530] "GET /demo/element/vendor.js
> HTTP/1.1" 304 -
> 172.16.16.45 - - [04/Jul/2023:22:35:05 +0530] "GET
> /demo/element/demo/apic-build.js HTTP/1.1" 304 -
> 172.16.16.45 - drupaladmin [04/Jul/2023:22:35:05 +0530] "GET
> /__es-dev-server__/message-channel HTTP/1.1" 404 25657
>
> More details here -> http://sprunge.us/6DFmPx
>
> # apachectl -S
> VirtualHost configuration:
> *:443                  phpnodejs.mydomain.com
> (/etc/httpd/conf.d/phpnodejs.conf:5)
> *:80                   is a NameVirtualHost
>          default server phpnodejs.mydomain.com
> (/etc/httpd/conf.d/phpnodejs.conf:1)
>          port 80 namevhost phpnodejs.mydomain.com
> (/etc/httpd/conf.d/phpnodejs.conf:1)
>          port 80 namevhost phpnodejs.mydomain.com
> (/etc/httpd/conf.d/phpnodejs.conf:1)
> ServerRoot: "/etc/httpd"
> Main DocumentRoot: "/var/www/html"
> Main ErrorLog: "/etc/httpd/logs/ssl_error_log"
> Mutex authdigest-opaque: using_defaults
> Mutex watchdog-callback: using_defaults
> Mutex proxy-balancer-shm: using_defaults
> Mutex rewrite-map: using_defaults
> Mutex ssl-stapling-refresh: using_defaults
> Mutex authdigest-client: using_defaults
> Mutex lua-ivm-shm: using_defaults
> Mutex ssl-stapling: using_defaults
> Mutex proxy: using_defaults
> Mutex authn-socache: using_defaults
> Mutex ssl-cache: using_defaults
> Mutex default: dir="/run/httpd/" mechanism=default
> Mutex mpm-accept: using_defaults
> Mutex cache-socache: using_defaults
> PidFile: "/run/httpd/httpd.pid"
> Define: DUMP_VHOSTS
> Define: DUMP_RUN_CFG
> User: name="apache" id=48
> Group: name="apache" id=48
> #
>
> Please guide me. Thanks in advance.
>
> Best Regards,
>
> Kaushal
>
> On Mon, Jul 3, 2023 at 10:54 PM Kaushal Shriyan <kaushalshri...@gmail.com>
> wrote:
>
>>
>>
>> On Mon, Jul 3, 2023 at 10:44 PM Richard <
>> lists-apa...@listmail.innovate.net> wrote:
>>
>>>
>>>
>>> > Date: Monday, July 03, 2023 22:22:04 +0530
>>> > From: Kaushal Shriyan <kaushalshri...@gmail.com>
>>> >
>>> > On Mon, Jul 3, 2023 at 10:10 PM Richard wrote:
>>> >
>>> >>
>>> >> > Date: Monday, July 03, 2023 20:35:36 +0530
>>> >> > From: Kaushal Shriyan <kaushalshri...@gmail.com>
>>> >> >
>>> >> > I have initiated a new thread to discuss the new issue. I am
>>> >> > running node.js application on port 8000 and Apache HTTP server
>>> >> > on CentOS Linux release 7.9.2009 (Core)
>>> >> >
>>> >> ># node --version
>>> >> > *v16.20.0*
>>> >> ># httpd -v
>>> >> > Server version: *Apache/2.4.57 (IUS)*
>>> >> > Server built:   Apr  7 2023 14:49:47
>>> >> >#
>>> >> >
>>> >> > *#cat /etc/httpd/conf.d/phpnodejs.conf*
>>> >> > <VirtualHost *:80>
>>> >> >     ServerName phpnodejs.mydomain.com
>>> >> >     Redirect / https://phpnodejs.mydomain.com/
>>> >> >  </VirtualHost>
>>> >> > <VirtualHost *:443>
>>> >> > DocumentRoot /var/www/html/phpcode/cardium-version-1/web
>>> >> >         DirectoryIndex index.php
>>> >> > ServerName phpnodejs.mydomain.com
>>> >> > Header add Access-Control-Allow-Origin "*"
>>> >> >         SSLEngine on
>>> >> >         SSLCertificateFile /etc/letsencrypt/live/
>>> >> > phpnodejs.mydomain.com/cert.pem
>>> >> >         SSLCertificateKeyFile /etc/letsencrypt/live/
>>> >> > phpnodejs.mydomain.com/privkey.pem
>>> >> >         SSLCertificateChainFile /etc/letsencrypt/live/
>>> >> > phpnodejs.mydomain.com/chain.pem
>>> >> >         Header always set Strict-Transport-Security
>>> >> > "max-age=63072000; includeSubDomains"
>>> >> >         ProxyPass /index.php !
>>> >> >         ProxyPassMatch "^/(.+)$" "http://localhost:8000/$1";
>>> >> >
>>> >> > <Directory "/var/www/html/phpcode/cardium-version-1/web">
>>> >> > DirectoryIndex index.html index.php
>>> >> > Options FollowSymLinks
>>> >> > AllowOverride All
>>> >> >         Require valid-user
>>> >> >         AuthType Basic
>>> >> >         AuthName "Restricted Content"
>>> >> >         AuthUserFile
>>> >> > /var/www/html/phpcode/cardium-version-1/web/.htpasswd
>>> >> > </Directory> </VirtualHost>
>>> >> >
>>> >> > When I hit  https://phpnodejs.mydomain.com it works perfectly
>>> >> > fine. But when I click on any of the links on the home page
>>> >> > which adds /en at the end of all the links, I get Not Found on
>>> >> > the browser for all the links.
>>> >> >
>>> >> > For example https://https://phpnodejs.mydomain.com/en returns Not
>>> >> > Found.                      https://
>>> >> > https://phpnodejs.mydomain.com/en/community/webinars returns Not
>>> >> > Found.
>>> >> > https://phpnodejs.mydomain.com/en/community/articles returns Not
>>> >> > Found.
>>> >> >
>>> >> > When I hit https://phpnodejs.mydomain.com/nodejssl/server.js
>>> >> > works perfectly fine as expected.
>>> >> >
>>> >> > [image: image.png]
>>> >> >
>>> >> > cat /var/log/httpd/ssl_access_log
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:09:27 +0530] "GET
>>> >> > /en/community/webinars HTTP/1.1" 404 9
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:09:35 +0530] "GET
>>> >> > /en/apis/use-cases HTTP/1.1" 404 9
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:09:45 +0530] "GET
>>> >> > /en/support/contact-us HTTP/1.1" 404 9
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:10:02 +0530] "-" 408 -
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:09:12 +0530] "GET
>>> >> > /__es-dev-server__/message-channel HTTP/1.1" 200 30
>>> >> > 172.16.16.45 - drupaladmin [03/Jul/2023:20:11:00 +0530] "GET /
>>> >> > HTTP/1.1" 200 45339
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:11:03 +0530] "GET
>>> >> > /en/community/webinars HTTP/1.1" 404 9
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:11:09 +0530] "GET
>>> >> > /en/apis/use-cases HTTP/1.1" 404 9
>>> >> > 172.16.16.45 - - [03/Jul/2023:20:11:11 +0530] "GET /en HTTP/1.1"
>>> >> > 404 9 172.16.16.45 - - [03/Jul/2023:20:11:29 +0530] "-" 408 -
>>> >> >
>>> >>
>>> >> You need to make some efforts to debug things yourself. Start by
>>> >> looking in the *appropriate* error_log file for the entries
>>> >> *matching* the above access_log 404s. I suspect that that could
>>> >> enlighten you.
>>> >>
>>> >>
>>> >>
>>> >> ------------------------------------------------------------------
>>> >> --- To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org For
>>> >> additional commands, e-mail: users-h...@httpd.apache.org
>>> >>
>>> >>
>>> > Thanks Richard for the hint and appreciate it. Using the below
>>> > config file while commenting both ProxyPass and ProxyPassMatch
>>> > directive it works perfectly fine.
>>> >
>>> ># ProxyPass /index.php !
>>> ># ProxyPassMatch "^/(.+)$" "http://localhost:8000/$1";
>>> >
>>>    . . .
>>> >
>>> > I will continue to debug and analyse the cause of the "Not Found"
>>> > issue. Thanks in advance.
>>> >
>>>
>>> Look at, and understand, the implications of the syntax of those
>>> proxypass lines in the context of where your content is. The
>>> documentation page referenced previously:
>>>
>>> <https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassmatch
>>> >
>>>
>>> should help. Are the pages that you are getting 404s on on the proxy?
>>>
>>>
>> Thanks Richard for the quick response. When I enable the below, I
>> encounter 404 while hitting the main webpage
>> https://phpnodejs.mydomain.com/en.
>>
>> # ProxyPass /index.php !
>> # ProxyPassMatch "^/(.+)$" "http://localhost:8000/$1";
>>
>> <Directory "/var/www/html/phpcode/cardium-version-1/web"> as per
>> /etc/httpd/conf.d/phpnodejs.conf
>> # pwd
>> /var/www/html/phpcode/cardium-version-1/web
>> # ls -l
>> total 36
>> -rw-rw-r--  1 apache apache  315 May 15 18:21 autoload.php
>> drwxrwxr-x 12 apache apache 4096 Apr 26 18:23 core
>> -rw-rw-r--  1 apache apache 1507 Mar  8 19:40 example.gitignore
>> -rw-rw-r--  1 apache apache  549 Mar  8 19:40 index.php
>> -rw-rw-r--  1 apache apache   94 Mar  8 19:40 INSTALL.txt
>> drwxrwxr-x  4 apache apache   52 Apr 11 20:51 libraries
>> drwxrwxr-x  5 apache apache   75 Mar  8 19:38 modules
>> drwxrwxr-x  2 apache apache   24 Mar  8 19:16 profiles
>> -rw-rw-r--  1 apache apache 3205 Mar  8 19:16 README.md
>> -rw-rw-r--  1 apache apache 1706 Apr 27 22:33 robots.txt
>> drwxrwxr-x  3 apache apache  130 Mar  8 19:40 sites
>> drwxrwxr-x  4 apache apache   53 Mar  8 19:39 themes
>> -rw-rw-r--  1 apache apache  804 Mar  8 19:40 update.php
>> -rw-rw-r--  1 apache apache 4039 Mar  8 19:40 web.config
>> #
>>
>> Is there a way to enable debug logs for ProxyPass and ProxyPassMatch
>> directive?
>>
>> Please suggest and guide me.  Thanks in advance.
>>
>> Best Regards,
>>
>> Kaushal
>>
>>
>>

Reply via email to