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 >> >> >>