I would read this page:

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

On Sun, Jul 2, 2023 at 1:03 PM Kaushal Shriyan <kaushalshri...@gmail.com>
wrote:

> Hi Frank,
>
> Thanks for the quick response. I will appreciate it if you can help me
> understand by considering the below directive. I am not sure about placing
> $1 to the target. Any examples which will be easy to understand?
>
> ProxyPass /index.html !
> ProxyPassMatch ^/(.+) http://localhost:3000/
>
> Please suggest further and guide me. Thanks in advance.
>
> Best Regards,
>
> Kaushal
>
> On Sun, Jul 2, 2023 at 9:31 PM Frank Gingras <thu...@apache.org> wrote:
>
>> Try adding $1 to the target to use the captured value.
>>
>> Also, depending on the response from the backend, you may need a
>> ProxyPassReverse directive.
>>
>> On Sun, Jul 2, 2023 at 11:41 AM Kaushal Shriyan <kaushalshri...@gmail.com>
>> wrote:
>>
>>> 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
>>>>>>>
>>>>>>

Reply via email to