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


On Sat, Jul 1, 2023 at 2:08 AM Frank Gingras <thu...@apache.org> wrote:

> To exclude index.html from your proxying, use ProxyPass /index.html !
> before the existing ProxyPass directive.
>
> On Fri, Jun 30, 2023 at 1:24 PM Kaushal Shriyan <kaushalshri...@gmail.com>
> wrote:
>
>> Hi,
>>
>> I have set up a new server with the below details. I am running node.js
>> application on port 3000 and Apache HTTP server on CentOS Linux release
>> 7.9.2009 (Core)
>>
>> # node --version
>> *v16.20.0*
>> # httpd -v
>> Server version: *Apache/2.4.57 (IUS)*
>> Server built:   Apr  7 2023 14:49:47
>> #
>>
>> *Nodejs code document root -> /var/www/html/nodejssl (Node Port 3000)*
>> # pwd
>> /var/www/html/nodejssl
>> # ls -l
>> -rw-r--r-- 1 root root 336 Jun 27 09:43 server.js
>> #
>> *cat server.js*
>> const http = require('http');
>>
>> const hostname = '0.0.0.0';
>> const port = 3000;
>>
>> const server = http.createServer((req, res) => {
>>   res.statusCode = 200;
>>   res.setHeader('Content-Type', 'text/plain');
>>   res.end('Hello World');
>> });
>>
>> server.listen(port, hostname, () => {
>>   console.log(`Server running at http://${hostname}:${port}/`);
>> });
>>
>>
>> *Website php code document root -> /var/www/html/phpcode (Port 443)*
>>
>> #pwd
>> /var/www/html/phpcode/
>> # ls -l
>> -rw-r--r-- 1 root root 336 Jun 27 09:43 index.html
>> #
>> #cat index.html
>> <!DOCTYPE html>
>> <html lang="en">
>>
>>     <head>
>>         <meta charset="UTF-8">
>>         <title>Hello!</title>
>>     </head>
>>
>>     <body>
>>         <h1>Hello World!</h1>
>>         <p>This is a simple paragraph.</p>
>>     </body>
>>
>> </html>
>>
>> #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/phpcode
>>         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 / http://localhost:3000/
>> </VirtualHost>
>>
>> When i hit https://phpnodejs.mydomain.com/nodejssl/server.js I see
>> "Hello World" which works as expected but when i hit
>> https://phpnodejs.mydomain.com/ I do not see the html code index.html
>> file content. Is there a way to render both index.html and node.js
>> server.js file? For example when i hit https://phpnodejs.mydomain.com/
>> it renders index.html file content and when i hit
>> https://phpnodejs.mydomain.com/nodejssl/server.js it renders node.js
>> server.js file content.
>>
>> Please suggest and guide me. Thanks in advance.
>>
>> Best Regards,
>>
>> Kaushal
>>
>> On Sun, Jun 25, 2023 at 10:13 PM Frank Gingras <thu...@apache.org> wrote:
>>
>>> None of those entries point to your 404 error.
>>>
>>> Make sure that you are reaching the proper vhost (with the scheme and
>>> hostname) by running apachectl -S.
>>>
>>> There is just far too much noise in the backlog of this thread to make
>>> sense of it so far.
>>>
>>> On Sun, Jun 25, 2023 at 11:46 AM Richard <
>>> lists-apa...@listmail.innovate.net> wrote:
>>>
>>>>
>>>>
>>>>
>>>> > Date: Sunday, June 25, 2023 16:09:23 +0530
>>>> > From: Kaushal Shriyan <kaushalshri...@gmail.com>
>>>> >
>>>> > I have modified the nodejsbackendssl.conf file located
>>>> > in /etc/httpd/conf.d/ to the below configuration.
>>>> >
>>>> > *#cat  /etc/httpd/conf.d/nodejsbackendssl.conf*
>>>> > <VirtualHost *:80>
>>>> >         ServerName nodejs.mydomain.com
>>>> >         ProxyPass / http://localhost:8000/
>>>> >         LogLevel debug
>>>> >         ErrorLog /var/log/httpd/nodejssslerror.log
>>>> >         CustomLog /var/log/httpd/nodejssslaccess.log combined
>>>> > </VirtualHost>
>>>> >
>>>> > Below are the logs in /var/log/httpd/nodejssslerror.log
>>>> >
>>>> > [Sun Jun 25 16:04:40.289171 2023] [proxy:debug] [pid 6223:tid 6223]
>>>> >> proxy_util.c(2155): AH00925: initializing worker
>>>> >> http://localhost:8000/ shared
>>>>
>>>> If you are still getting errors (e.g., 404s) on the front-end please
>>>> provide the relevant lines from the front-end server's error_log. The
>>>> proxy's corresponding log entries may be of value, but without the
>>>> detail from the front-end it's hard to tell.
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
>>>> For additional commands, e-mail: users-h...@httpd.apache.org
>>>>
>>>>

Reply via email to