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