{"id":3753,"date":"2012-11-24T22:29:03","date_gmt":"2012-11-24T22:29:03","guid":{"rendered":"http:\/\/zerokidz.com\/ideas\/?p=3753"},"modified":"2014-06-14T20:12:13","modified_gmt":"2014-06-15T00:12:13","slug":"node-js-reverse-proxy-in-ubuntu-apache2","status":"publish","type":"post","link":"https:\/\/reactivemusic.net\/?p=3753","title":{"rendered":"node.js reverse proxy in Ubuntu Apache2"},"content":{"rendered":"<p>(update) having problems with this when using socket.io from external clients. So it may be worth looking at the alternatives described in the Shelley Powers book on NODE.js<\/p>\n<div class=\"panel\">\n<p>\u00a0original post<\/p>\n<\/div>\n<p>Here is now to set up a reverse proxy so that a node.js server is visible from the outside world. In our case we redirected any traffic with the subdirectory \/nodejs\/ to port 8124<\/p>\n<p>for example, this web address http:\/\/zerokidz.com\/nodejs\/<\/p>\n<p>Add the following to the \/etc\/apache2\/sites-enabled\/default file: (inside the section already set aside for the virtual host zerokidz)<\/p>\n<pre>ProxyPass \/nodejs\/ http:\/\/127.0.0.1:8124\/\r\nProxyPassReverse \/nodejs\/ http:\/\/127.0.0.1:8124\/\r\n&lt;Proxy *&gt;\r\n Order deny,allow\r\n Allow from all\r\n&lt;\/Proxy&gt;<\/pre>\n<p>So it will look something like this:<\/p>\n<pre>&lt;VirtualHost *:80&gt;\r\n\u00a0 ServerName www.zerokidz.com\r\n\u00a0 ServerAlias zerokidz.com *.zerokidz.com\r\n\u00a0 DocumentRoot \/home\/tkzic\/public_html\/zerokidz\r\n\r\n# Nodejs reverse proxy rule\r\n# sends all traffic for zerokidz.com\/nodejs\r\n# to the nodejs server on port 8124\r\n\r\nProxyPass \/nodejs\/ http:\/\/127.0.0.1:8124\/\r\n\u00a0 ProxyPassReverse \/nodejs\/ http:\/\/127.0.0.1:8124\/\r\n\u00a0 &lt;Proxy *&gt;\r\n\u00a0\u00a0\u00a0 Order deny,allow\r\n\u00a0\u00a0\u00a0 Allow from all\r\n\u00a0 &lt;\/Proxy&gt;\r\n\r\n&lt;\/VirtualHost&gt;<\/pre>\n<p>Then restart apache, of course<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(update) having problems with this when using socket.io from external clients. So it may be worth looking at the alternatives described in the Shelley Powers book on NODE.js \u00a0original post Here is now to set up a reverse proxy so that a node.js server is visible from the outside world. In our case we redirected &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/reactivemusic.net\/?p=3753\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;node.js reverse proxy in Ubuntu Apache2&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[230,143],"tags":[46,90,6,190,25,12],"class_list":["post-3753","post","type-post","status-publish","format-standard","hentry","category-development","category-interactive-media-art","tag-connections","tag-how-to","tag-interactive-media","tag-portfolio","tag-programming","tag-web-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>node.js reverse proxy in Ubuntu Apache2 - reactive music<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/reactivemusic.net\/?p=3753\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"node.js reverse proxy in Ubuntu Apache2 - reactive music\" \/>\n<meta property=\"og:description\" content=\"(update) having problems with this when using socket.io from external clients. So it may be worth looking at the alternatives described in the Shelley Powers book on NODE.js \u00a0original post Here is now to set up a reverse proxy so that a node.js server is visible from the outside world. In our case we redirected &hellip; Continue reading &quot;node.js reverse proxy in Ubuntu Apache2&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/reactivemusic.net\/?p=3753\" \/>\n<meta property=\"og:site_name\" content=\"reactive music\" \/>\n<meta property=\"article:published_time\" content=\"2012-11-24T22:29:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-06-15T00:12:13+00:00\" \/>\n<meta name=\"author\" content=\"Tom Zicarelli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tom Zicarelli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753\"},\"author\":{\"name\":\"Tom Zicarelli\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#\\\/schema\\\/person\\\/56224d281582df7e5518e037ca63e571\"},\"headline\":\"node.js reverse proxy in Ubuntu Apache2\",\"datePublished\":\"2012-11-24T22:29:03+00:00\",\"dateModified\":\"2014-06-15T00:12:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753\"},\"wordCount\":115,\"keywords\":[\"connections\",\"how to\",\"interactive media\",\"portfolio\",\"programming\",\"web development\"],\"articleSection\":[\"development\",\"interactive media art\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753\",\"url\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753\",\"name\":\"node.js reverse proxy in Ubuntu Apache2 - reactive music\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#website\"},\"datePublished\":\"2012-11-24T22:29:03+00:00\",\"dateModified\":\"2014-06-15T00:12:13+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#\\\/schema\\\/person\\\/56224d281582df7e5518e037ca63e571\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/reactivemusic.net\\\/?p=3753\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=3753#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/reactivemusic.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"node.js reverse proxy in Ubuntu Apache2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#website\",\"url\":\"https:\\\/\\\/reactivemusic.net\\\/\",\"name\":\"reactive music\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/reactivemusic.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#\\\/schema\\\/person\\\/56224d281582df7e5518e037ca63e571\",\"name\":\"Tom Zicarelli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g\",\"caption\":\"Tom Zicarelli\"},\"sameAs\":[\"http:\\\/\\\/tomzicarelli.com\"],\"url\":\"https:\\\/\\\/reactivemusic.net\\\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"node.js reverse proxy in Ubuntu Apache2 - reactive music","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/reactivemusic.net\/?p=3753","og_locale":"en_US","og_type":"article","og_title":"node.js reverse proxy in Ubuntu Apache2 - reactive music","og_description":"(update) having problems with this when using socket.io from external clients. So it may be worth looking at the alternatives described in the Shelley Powers book on NODE.js \u00a0original post Here is now to set up a reverse proxy so that a node.js server is visible from the outside world. In our case we redirected &hellip; Continue reading \"node.js reverse proxy in Ubuntu Apache2\"","og_url":"https:\/\/reactivemusic.net\/?p=3753","og_site_name":"reactive music","article_published_time":"2012-11-24T22:29:03+00:00","article_modified_time":"2014-06-15T00:12:13+00:00","author":"Tom Zicarelli","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tom Zicarelli","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/reactivemusic.net\/?p=3753#article","isPartOf":{"@id":"https:\/\/reactivemusic.net\/?p=3753"},"author":{"name":"Tom Zicarelli","@id":"https:\/\/reactivemusic.net\/#\/schema\/person\/56224d281582df7e5518e037ca63e571"},"headline":"node.js reverse proxy in Ubuntu Apache2","datePublished":"2012-11-24T22:29:03+00:00","dateModified":"2014-06-15T00:12:13+00:00","mainEntityOfPage":{"@id":"https:\/\/reactivemusic.net\/?p=3753"},"wordCount":115,"keywords":["connections","how to","interactive media","portfolio","programming","web development"],"articleSection":["development","interactive media art"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/reactivemusic.net\/?p=3753","url":"https:\/\/reactivemusic.net\/?p=3753","name":"node.js reverse proxy in Ubuntu Apache2 - reactive music","isPartOf":{"@id":"https:\/\/reactivemusic.net\/#website"},"datePublished":"2012-11-24T22:29:03+00:00","dateModified":"2014-06-15T00:12:13+00:00","author":{"@id":"https:\/\/reactivemusic.net\/#\/schema\/person\/56224d281582df7e5518e037ca63e571"},"breadcrumb":{"@id":"https:\/\/reactivemusic.net\/?p=3753#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/reactivemusic.net\/?p=3753"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/reactivemusic.net\/?p=3753#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/reactivemusic.net\/"},{"@type":"ListItem","position":2,"name":"node.js reverse proxy in Ubuntu Apache2"}]},{"@type":"WebSite","@id":"https:\/\/reactivemusic.net\/#website","url":"https:\/\/reactivemusic.net\/","name":"reactive music","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/reactivemusic.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/reactivemusic.net\/#\/schema\/person\/56224d281582df7e5518e037ca63e571","name":"Tom Zicarelli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g","caption":"Tom Zicarelli"},"sameAs":["http:\/\/tomzicarelli.com"],"url":"https:\/\/reactivemusic.net\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts\/3753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3753"}],"version-history":[{"count":6,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts\/3753\/revisions"}],"predecessor-version":[{"id":13745,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts\/3753\/revisions\/13745"}],"wp:attachment":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}