Hi Frank, Thanks a lot. It worked perfectly. I have a follow up question for /demo path (as part of node.js code so /demo has all nodejs code) just as an improvement . I modified the ProxyPassMatch directive as per the below example and it returned http 404.
ProxyPassMatch ^/demo(.+) http://localhost:3000/ Am I missing anything? Apologies for bugging you. Please guide me. Thanks in advance. Best Regards, Kaushal On Sun, Jul 2, 2023 at 8:00 AM Frank Gingras <thu...@apache.org> wrote: > This thread is getting very tiresome. So, let's summarize: > > - You want to request /, serve index.html > - For all other requests, proxy internally > > As such, keep the ProxyPass /index.html ! for clarity and change your > existing ProxyPass directive to: > > ProxyPassMatch ^/(.+) http://localhost:3000/ > > In short, this means that requesting / will not match, and requesting /foo > will proxy. > > On Sat, Jul 1, 2023 at 9:22 PM Kaushal Shriyan <kaushalshri...@gmail.com> > wrote: > >> >> >> >> >> On Sun, Jul 2, 2023 at 6:20 AM Kaushal Shriyan <kaushalshri...@gmail.com> >> wrote: >> >>> >>> >>> On Sun, Jul 2, 2023 at 6:14 AM Kaushal Shriyan <kaushalshri...@gmail.com> >>> wrote: >>> >>>> >>>> >>>> On Sat, Jul 1, 2023 at 7:50 AM Kaushal Shriyan < >>>> kaushalshri...@gmail.com> wrote: >>>> >>>>> Hi Frank, >>>>> >>>>> Thanks for the email response and much appreciated. I added the >>>>> ProxyPass /index.html ! directive in /etc/httpd/conf.d/phpnodejs.conf >>>>> >>>>> #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/htmlcode >>>>> 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.html ! >>>>> ProxyPass / http://localhost:3000/ >>>>> </VirtualHost> >>>>> >>>>> # apachectl configtest >>>>> Syntax OK >>>>> #apachectl -S >>>>> VirtualHost configuration: >>>>> *:80 phpnodejs.mydomain.com >>>>> (/etc/httpd/conf.d/phpnodejs.conf:1) >>>>> *:443 phpnodejs.mydomain.com >>>>> (/etc/httpd/conf.d/phpnodejs.conf:5) >>>>> ServerRoot: "/etc/httpd" >>>>> Main DocumentRoot: "/var/www/html" >>>>> Main ErrorLog: "/etc/httpd/logs/error_log" >>>>> Mutex mpm-accept: using_defaults >>>>> Mutex cache-socache: using_defaults >>>>> 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 >>>>> PidFile: "/run/httpd/httpd.pid" >>>>> Define: DUMP_VHOSTS >>>>> Define: DUMP_RUN_CFG >>>>> User: name="apache" id=48 >>>>> Group: name="apache" id=48 >>>>> # >>>>> >>>>> when I hit https://phpnodejs.mydomain.com/ it still points to the >>>>> nodejs server.js file located in /var/www/html/nodejssl. For testing >>>>> purposes, I stopped the node js code to execute. I get the below message >>>>> on >>>>> the browser which is expected behaviour. >>>>> >>>>> [image: image.png] >>>>> >>>>> I am still unable to render the index.html file from the document root >>>>> in /var/www/html/htmlcode which I created a new folder for testing >>>>> purposes. >>>>> >>>>> Please suggest and guide me. Thanks in advance. >>>>> >>>>> Best Regards, >>>>> >>>>> Kaushal >>>>> >>>> >>>> Hi, >>>> >>>> I have referred to https://httpd.apache.org/docs/2.4/mod/mod_dir.html >>>> by adding DirectoryIndex index.html directive in 443 virtualhost. The issue >>>> still persists. >>>> >>>> #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/htmlcode >>>> DirectoryIndex index.html >>>> 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.html ! >>>> ProxyPass / http://localhost:3000/ >>>> </VirtualHost> >>>> >>>> Please suggest further and guide me. Thanks in advance. >>>> >>>> Best Regards, >>>> >>>> Kaushal >>>> >>> >>> >>> Further to the earlier email, I am sharing the log files. >>> >>> #cd /var/log/httpd/ >>> #pwd >>> /var/log/httpd >>> # cat access_log >>> 172.16.16.45 - - [02/Jul/2023:06:17:19 +0530] "GET / HTTP/1.1" 200 11 >>> "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 >>> Firefox/114.0" >>> 172.16.16.45 - - [02/Jul/2023:06:17:58 +0530] "GET /nodejssl/server.js >>> HTTP/1.1" 200 11 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; >>> rv:109.0) Gecko/20100101 Firefox/114.0" >>> 172.16.16.45 - - [02/Jul/2023:06:18:03 +0530] "GET / HTTP/1.1" 200 11 >>> "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 >>> Firefox/114.0" >>> # cat error_log >>> [Sun Jul 02 06:17:14.849472 2023] [suexec:notice] [pid 31795:tid 31795] >>> AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) >>> [Sun Jul 02 06:17:14.880212 2023] [ssl:warn] [pid 31795:tid 31795] >>> AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] >>> [Sun Jul 02 06:17:14.881405 2023] [http2:warn] [pid 31795:tid 31795] >>> AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm >>> determines how things are processed in your server. HTTP/2 has more demands >>> in this regard and the currently selected mpm will just not do. This is an >>> advisory warning. Your server will continue to work, but the HTTP/2 >>> protocol will be inactive. >>> [Sun Jul 02 06:17:14.882256 2023] [lbmethod_heartbeat:notice] [pid >>> 31795:tid 31795] AH02282: No slotmem from mod_heartmonitor >>> [Sun Jul 02 06:17:14.887938 2023] [mpm_prefork:notice] [pid 31795:tid >>> 31795] AH00163: Apache/2.4.57 (IUS) OpenSSL/1.0.2k-fips configured -- >>> resuming normal operations >>> [Sun Jul 02 06:17:14.887993 2023] [core:notice] [pid 31795:tid 31795] >>> AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' >>> # >>> >>> Best Regards, >>> >>> Kaushal >>> >> >> Hi, >> >> I have enabled debug logging by adding LogLevel debug in 443 virtualhost. >> >> #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/htmlcode >> DirectoryIndex index.html >> ServerName phpnodejs.mydomain.com >> Header add Access-Control-Allow-Origin "*" >> LogLevel debug >> 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.html ! >> ProxyPass / http://localhost:3000/ >> </VirtualHost> >> >> debug apache error log file -> http://sprunge.us/kndkvL >> >> Please suggest further and guide me. Thanks in advance. >> >> Best Regards, >> >> Kaushal >> >