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