Hi Frank, When I set the below in /etc/httpd/conf.d/phpnodejs.conf. When I hit https://phpnodejs.mydomain.com which is the html content, the images are broken and unable to load javascript, CSS etc...
ProxyPass /index.html ! ProxyPassMatch ^/(.+) http://localhost:3000/ #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 ! ProxyPassMatch ^/(.+) http://localhost:3000/ </VirtualHost> Please guide me. Thanks in advance. Best Regards, Kaushal On Sun, Jul 2, 2023 at 8:57 PM Frank Gingras <thu...@apache.org> wrote: > ^/(.+) will already match /demo, why are you changing the expression? > > On Sun, Jul 2, 2023 at 10:42 AM Kaushal Shriyan <kaushalshri...@gmail.com> > wrote: > >> 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 >>>> >>>