{"id":21,"date":"2008-05-24T16:22:33","date_gmt":"2008-05-24T23:22:33","guid":{"rendered":"http:\/\/www.reisun.com\/2008\/05\/24\/reverse-proxying-on-windows-for-plone\/"},"modified":"2008-05-24T16:22:33","modified_gmt":"2008-05-24T23:22:33","slug":"reverse-proxying-on-windows-for-plone","status":"publish","type":"post","link":"https:\/\/www.reisun.com\/?p=21","title":{"rendered":"Reverse Proxying on Windows for Plone"},"content":{"rendered":"<p>I have finally gotten a reverse proxy app to work on the Windows Server 2003 machine.<\/p>\n<p>The solution:<\/p>\n<ol>\n<li>Install <a href=\"http:\/\/www.cygwin.com\">cygwin<\/a>. This by far was the biggest stumbling block, as I didn&#8217;t want to install cygin on a production server. However, after scouring the web (and google) for free\/open source reverse proxy apps for Windows, I came to the conclusion that the only ones available require cygwin.<\/li>\n<li>Get <a href=\"http:\/\/www.apsis.ch\/pound\/\">Pound<\/a>. I&#8217;ve looked at a variety of reverse proxys (nginx, lighttpd, apache, etc.) and each one seemed to have some disadvantage that I couldn&#8217;t ignore. Not to mention many of the alternatives weren&#8217;t dedicated reverse proxys but web servers. More details are <a href=\"http:\/\/www.apsis.ch\/pound\/pound_list\/archive\/2007\/2007-04\/1175510663000\">here<\/a>.\n<ul>\n<li>One caution is that the most recent version of pound (2.4.2) would not compile, as it required some IPv6 support in the headers. I chose to download the previous version (2.3.2) and it did compile smoothly.<\/li>\n<li>.\/configure &#8211;without-ssl &#8211;disable-log &#8211;disable-dynscale<\/li>\n<li>Strangely enough, even with the &#8211;without-ssl option the openssl library is linked into the pound.exe executable.<\/li>\n<li>make<\/li>\n<li>Copy the pound.exe and the associated DLLs ( cygssl-0.9.8.dll, cygcrypto-0.9.8.dll, cygrunsrv.exe, cygwin1.dll, cygpcre-0.dll, cygpcreposix-0.dll) to a new directory (e.g. c:\\apps\\pound)<\/li>\n<\/ul>\n<\/li>\n<li>Create a pound.cfg file in the c:\\apps\\pound directory. Note that the sample config files shown in <a href=\"http:\/\/wiki.zope.org\/zope2\/ZopeAndPound\">this<\/a> site do not work. I am assuming they use commands for an older version of pound that have since been removed\n<ul>\n<li>A sample config file that works for me is:<\/li>\n<li><code><br \/>\n# Set pound to run like a normal app, so that cygrunsrv can daemonize it<br \/>\nDaemon 0<br \/>\nListenHTTP<br \/>\nAddress 1.2.3.4<br \/>\nPort 80# Prevent any access to the ZMI from outside<br \/>\nService<br \/>\nURL \".*\/manage\"<br \/>\nEnd# If you have multiple domains, repeat the Service block<br \/>\nService<br \/>\nHeadRequire \"Host: .*A.edu.*\"<br \/>\nBackEnd<br \/>\nAddress 127.0.0.1<br \/>\nPort 8123<br \/>\nEnd<br \/>\nEnd<br \/>\nEnd<\/p>\n<p><\/code><\/li>\n<li>Note that for this to make sense,\u00c2\u00a0the web server (Zope in this case) should be configured to listen only\u00c2\u00a0on the localhost ip address (127.0.0.1), and the firewall to block port 8123, otherwise\u00c2\u00a0the intent of\u00c2\u00a0having\u00c2\u00a0only pound exposed to the\u00c2\u00a0internet will not be realized.<\/li>\n<li>By the way, adding multiple BackEnd directives allows for load balancing, even with prioritization. Really simple and cool!<\/li>\n<\/ul>\n<\/li>\n<li>Once you have pound running and have tested it on the command line (pound -f pound.cfg), you want to install it as a service so that it will be automatically started on startup.\n<ul>\n<li>cygrunsrv &#8211;install Pound &#8211;path C:\\Apps\\Pound\\pound.exe &#8211;args &#8220;-f<br \/>\nC:\\Apps\\Pound\\pound.cfg&#8221; &#8211;stdout C:\\Apps\\Pound\\pound.log &#8211;stderr<br \/>\nC:\\Apps\\Pound\\pound.log<\/li>\n<\/ul>\n<\/li>\n<li>I haven&#8217;t configured it yet, but I will be adding additional URL filters to reverse proxy to the IIS server.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>I have finally gotten a reverse proxy app to work on the Windows Server 2003 machine. The solution: Install cygwin. This by far was the biggest stumbling block, as I didn&#8217;t want to install cygin on a production server. However, after scouring the web (and google) for free\/open source reverse proxy apps for Windows, I [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,17],"tags":[],"class_list":["post-21","post","type-post","status-publish","format-standard","hentry","category-site-admin","category-web"],"_links":{"self":[{"href":"https:\/\/www.reisun.com\/index.php?rest_route=\/wp\/v2\/posts\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reisun.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reisun.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reisun.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reisun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21"}],"version-history":[{"count":0,"href":"https:\/\/www.reisun.com\/index.php?rest_route=\/wp\/v2\/posts\/21\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.reisun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reisun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reisun.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}