Ah. Look closely. I'm redirecting http://buystuff.com/manage to HTTPS://zope.domain.com/buystuff/manage Patrick Kirk wrote:
I like the way you shield zope behind apache for all purposes but I don't understand the sections that say Zope management rule.
Why do you use http://zope.domain.com/buystuff/manage instead of www.buystuff.com/manage?
Best regards,
Patrick Kirk Mobile: 07876 560 646
Troy Farrell wrote:
Looks good. I'd make one change. In my setups, I'm adamant that Zope is not accessed, except by via apache. I edit my zope setup to listen only on localhost (127.0.0.1) and change my Apache RewriteRules to use that instead of the server ip (111.111.111.111.) I also like my managing to be done via https so passwords are not passed cleartext. For that to work, I have an additional domain (or sub-domain.)
Zope looks like this:
Zope root (zope.domain.com) + buystuff (buystuff.com) + mycause (mycause.com)
Apache listens on 443 and 80, then I use the following rewrite rules
buystuff.com: # Zope management rule RewriteRule ^(.*)/manage(.*) https://zope.domain.com/buystuff$1/manage$2 [R] # Zope VHM rule RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/www.buystuff.com:80/buystuff/Virt... [L,P]
mycause.org: # Zope management rule RewriteRule ^(.*)/manage(.*) https://zope.domain.com/mycause$1/manage$2 [R] # Zope VHM rule RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/www.mycause.org:80/mycause/Virtua... [L,P]
This way, you only have one IP and one SSL cert - saves money. BTW, 'buystuff$1' is not a typo. It's needed because the pattern match includes the forward-slash.
Troy
Patrick Kirk wrote:
OK. I'd be grateful if others on the list would read this as well to provide a sanity check.
Step 1: Put a Virtual Host Monster in your Zope root folder. Give it a unique id but it really doesn't matter what you call it.
Step 2: Let us assume you have a site called http://www.buystuff.com served from a folder called "buystuff" in your root directory and a site called http://www.mycause.org is served from "mycause" folder. Lets also assume your IP is 111.111.111.111 and Zope is on port 8081 with Apache on port 80.
Step 3: The virtual hosts section for www.buystuff.com will read: <VirtualHost *:80> ServerAdmin you@you.com DocumentRoot /this/does/not/matter ServerName www.buystuff.com ErrorLog logs/www.buystuff.com-error_log CustomLog logs/www.buystuff.com-access_log common RewriteEngine on RewriteRule ^/(.*) http://111.111.111.111:8081/VirtualHostBase/http/www.buystuff.com:80/buystuf... [NC,L,P]
</VirtualHost>
Step 4: The virtual hosts section for www.mycause.org will read: <VirtualHost *:80> ServerAdmin you@you.com DocumentRoot /this/does/not/matter ServerName www.mycause.org ErrorLog logs/www.mycause.org-error_log CustomLog logs/www.mycause.org-access_log common RewriteEngine on RewriteRule ^/(.*) http://111.111.111.111:8081/VirtualHostBase/http/www.mycause.org:80/mycause/... [NC,L,P]
</VirtualHost>
Apart from the [NC,L,P] this is from the virtual host monster documentation. And others on this list gave me them!
Step 5: Run the command "apachectl configtest" and it will tell you if there are any syntax errors without requiring you to restart apache and find out the hard way you've put a comma in the wrong place.
Step 6: Run "apachectl restart" and your sites should now be served from Zope through Apache. And the beauty of it is that it just works.
If you have any problems, let us know.
Best regards,
Patrick Kirk