Hi there, I am running ISPConfig 3.1.5p3 on Ubuntu 18.04, multiserver setup. I would like advice on hosting one of the customers whose website uses Node.js. All the files and folders have been uploaded to the web server (slave) and the index.js file exists. index.html has been moved. Attached is what the website appears as so far Permissions Code: root@web:/var/www/clients/client275/web105/web# ll total 60 drwxr-xr-x 9 web105 client275 4096 Jul 30 14:18 ./ drwxr-xr-x 10 root root 4096 Jul 27 13:24 ../ drwxr-xr-x 2 web105 client275 4096 Jul 27 13:24 error/ -rwxr-xr-x 1 web105 client275 7358 Jul 27 13:24 favicon.ico* -rwxr-xr-x 1 web105 client275 6968 Mar 12 17:16 index.js* drwxr-xr-x 2 web105 client275 4096 Jul 29 12:19 models/ drwxr-xr-x 6 web105 client275 4096 Jul 29 12:19 public/ -rwxr-xr-x 1 web105 client275 14 Jul 27 13:24 robots.txt* drwxr-xr-x 2 web105 client275 4096 Jul 29 12:19 routes/ drwxr-xr-x 2 web105 client275 4096 Jul 27 17:33 stats/ drwxr-xr-x 2 web105 client275 4096 Jul 29 12:19 uploads/ drwxr-xr-x 2 web105 client275 4096 Jul 29 12:19 views/ Code: root@web:/var/www/clients/client275/web105# ll total 40 drwxr-xr-x 10 root root 4096 Jul 27 13:24 ./ drwxr-xr-x 3 root root 4096 Jul 27 13:24 ../ drwxr-xr-x 2 web105 client275 4096 Jul 27 13:24 cgi-bin/ drwxr-xr-x 2 root root 4096 Jul 30 00:18 log/ drwx--x--- 2 web105 client275 4096 Jul 27 13:24 private/ drwx------ 2 web105 client275 4096 Jul 27 13:24 .ssh/ drwxr-xr-x 2 root root 4096 Jul 27 13:24 ssl/ drwxrwx--- 2 web105 client275 4096 Jul 27 13:24 tmp/ drwxr-xr-x 9 web105 client275 4096 Jul 30 14:18 web/ drwx--x--- 2 web105 client275 4096 Jul 27 13:24 webdav/
Hi, Kindly requesting for a tutorial (ISPConfig) to get a website that uses NodeJS running on a slave server. I've installed nodejs,npm, forever and pm2 as well as added this code to the Apache directives on the ISPConfig portal Code: ProxyRequests Off ProxyPreserveHost on ProxyPass / http:// localhost:8080 ProxyPassReverse / http:// localhost:8080 <Proxy *> Order deny,allow Allow from all </Proxy> I could use some guidance
i'm not sure you need any of that apache directive for node.js or npm. i've installed nodejs and npm and composer globally on an ipsconfig and added them to jailkit and am hosting some sites that use them without any problems. more details here: https://www.howtoforge.com/community/threads/ispconfig-3-running-nginx-and-nodejs.84017/#post-400965
Thank you for your response. I have removed the apache directives and edited jailkit as instructed but still get the same thing. I may have missed something prior to this but I cannot tell what it is
dunno, on the sites i'm hosting, i don't think any .js files are being called directly by apache, the starting point is still php files. maybe setting Code: DirectoryIndex index.js index.php index.html as an apache directive or in .htaccess i would also suggest turning off the indexes option in /etc/apache2/apache2.conf: Code: <Directory /var/www/> Options -Indexes +FollowSymLinks AllowOverride None Require all granted </Directory> so that any visitors connecting to the site can't see the list of files that exist if a folder doesn't contain an index file that apache is running.
I've never used node.js, but as far as I know, it has it's own service to run js scripts on the server-side, so the js scripts don't get interpreted by Apache. It is likely that you must use proxying as you did in your first implementation attempt.
One of my customer using nodejs part of project for websocket implementation (CMS Article locking in realtime) server debian buster so i can share my setting. For nodejs itself i made system.d unit file so it act like service, loging to syslog, but docker principe is also applicable, incrontab to restart service if customer uploads new index.js. From ispconfig side i make domain and proxy its trafic to internal localhost port, page itself have ssl and LE enabled and is maintained from ispconfig side. Works ok. Web Domain > Options tab > Apache Directives Code: SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io [NC] RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) ws://localhost:3001/$1 [P,L] ProxyPass /.well-known/ ! ProxyPass / http://localhost:3001/ ProxyPassReverse / http://localhost:3001/ for websocket on apache specificly you need proxy module enabled in debian to correctly handle websocket requests. Code: a2enmod proxy_wstunnel Hope this helps