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

Reply via email to