Line 65: |
Line 65: |
| yum --enablerepo=epel update nodejs c-ares19 http-parser libuv v8 | | yum --enablerepo=epel update nodejs c-ares19 http-parser libuv v8 |
| * NodeJS updates are released every 3 - 12 weeks; check for updates regularly. | | * NodeJS updates are released every 3 - 12 weeks; check for updates regularly. |
− | <headertabs/> | + | <headertabs /> |
| | | |
| | | |
Line 100: |
Line 100: |
| ==Test== | | ==Test== |
| node -v | | node -v |
| + | |
| | | |
| == Port Redirect for each application== | | == Port Redirect for each application== |
− | Each application you build must run on a different port. Configure that way in app.js file. | + | |
− | If you don't want to put that port each time but redirect an external URL (if the app is a website hosted on your SME server) you need to: | + | {{Note box|| This is still work in progress and may not work correctly}} |
| + | |
| + | Each Node application you build must run on a different port. This can be configured in app.js |
| + | |
| + | If you want to redirect an external URL to the app port using a reverse proxy you can do the following |
| + | |
| a) create that external domain on SME web interface for domain as '''www.your.externaldomain.tld''' | | a) create that external domain on SME web interface for domain as '''www.your.externaldomain.tld''' |
| | | |
| b) create a new variable (NodePort) to specify that port | | b) create a new variable (NodePort) to specify that port |
− | db domains setprop www.your.externadomain.tld NodePort 3003 | + | db domains setprop '''www.your.externadomain.tld''' NodePort 3003 |
− | | |
− | c) use a custom fragment template file [b]/etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/27ProxyNodeJS[/b] with:
| |
| | | |
− | { | + | c) use a custom fragment template file '''/etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/27ProxyNodeJS''' with: |
| + | <nowiki> |
| + | { |
| use esmith::DomainsDB; | | use esmith::DomainsDB; |
| my $domains = esmith::DomainsDB->open_ro; | | my $domains = esmith::DomainsDB->open_ro; |
Line 123: |
Line 129: |
| $OUT .= " ProxyPass / http://localhost:$nodeport/\n" unless $nodeport eq 'disabled'; | | $OUT .= " ProxyPass / http://localhost:$nodeport/\n" unless $nodeport eq 'disabled'; |
| $OUT .= " ProxyPassReverse / http://localhost:$nodeport/\n" unless $nodeport eq 'disabled'; | | $OUT .= " ProxyPassReverse / http://localhost:$nodeport/\n" unless $nodeport eq 'disabled'; |
− |
| |
| } | | } |
| + | </nowiki> |
| | | |
| Now just expand templates and restart | | Now just expand templates and restart |
Line 130: |
Line 136: |
| /etc/init.d/httpd-e-smith restart | | /etc/init.d/httpd-e-smith restart |
| | | |
− | That's all. It's working. ou can access you app extrnally using '''http://www.your.externaldomain.tld'''
| + | You should be able to access your app externally using '''http://www.your.externaldomain.tld''' |
| + | |
| It's possible to access using SME with one LetsEncrypt certificate by directory/port | | It's possible to access using SME with one LetsEncrypt certificate by directory/port |
| | | |
| ---- | | ---- |
| [[Category:Howto]] | | [[Category:Howto]] |