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 <thumbs@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 <kaushalshriyan@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 <thumbs@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-apache@listmail.innovate.net> wrote:
>>>
>>>>
>>>>
>>>>
>>>> > Date: Sunday, June 25, 2023 16:09:23 +0530
>>>> > From: Kaushal Shriyan <kaushalshriyan@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-unsubscribe@httpd.apache.org
>>>> For additional commands, e-mail: users-help@httpd.apache.org
>>>>
>>>>