Plone с прокси-сервером Apache

У меня есть zinstance plone, настроенный через Apache Proxy на OS X Server 10.5. Сервер настроен с одним виртуальным хостом на порту 80 с директивами Proxy и Proxypass для zinstance Plone:

        ProxyPass / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/
        ProxyPassReverse / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/

Однако у меня есть некоторый статический контент HTML и PHP, который я хочу отобразить в iframe через сайт plone. Я думаю, мне нужно настроить другой виртуальный хост на другой порт, а затем просто указать порт # inline?


person churnd    schedule 07.01.2010    source источник
comment
Я получил его туда, где я могу видеть iframe в plone. Я обслуживаю дополнительный виртуальный хост на порту 8888, доступный только для локального хоста. Я вижу первую страницу, но если я попытаюсь щелкнуть одну из ссылок внутри, которая должна привести меня на страницу php, она просто останется там.   -  person churnd    schedule 07.01.2010


Ответы (3)


Настройте статический URL-адрес, который не будет передаваться через прокси, а будет напрямую обслуживаться Apache, например:

ProxyPass /static !
ProxyPass / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/
ProxyPassReverse / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/

Затем настройте /static, чтобы он содержал ваш статический контент.

person Eemeli Kantola    schedule 10.01.2010

Я бы рекомендовал свернуть вашу конфигурацию в блок виртуального хоста. Вы можете доставлять статический контент непосредственно из apache, переписывая определенный путь. Вот пример

<VirtualHost *:80>
  ServerName yoursite.com
  Alias /static /var/www/some/path/

  <Directory "/var/www/some/path">
    Options Includes FollowSymLinks
    AllowOverride All
  </Directory>

  # Zope rewrite.
  RewriteEngine On
  RewriteRule /static - [L]
  RewriteRule ^/(.*) http://127.0.0.1:8080/VirtualHostBase/http/%{SERVER_NAME}:80/Plone/VirtualHostRoot/$1 [L,P]
</VirtualHost>
person siebo    schedule 04.03.2010
comment
Я все еще не знаю, использовать ли правило перезаписи или прокси-пасс. - person churnd; 16.03.2010

Извините, недостаточно информации, но я дам пару комментариев, которые могут помочь вам в правильном направлении.

Во-первых, ProxyPassReverse не нужен, так как Plone уже позаботится об исправлении любых самореферентных URL. В конце концов, в этом смысл сумасшедшего URL.

Другой постер уже показал, как настроить ProxyPass для выборочного обхода прокси-сервера Plone и прямого обслуживания Apache.

По поводу "дополнительного vhost на порту 8888". Не понятно, что вы хотите этим сказать. Что такое дополнительный vhost? Если это то место, откуда должен поступать ваш статический контент html и php, то ограничение только локальным хостом означает, что вам также придется настроить внутренний прокси-сервер для доступа к нему. Вы можете сделать это с помощью правил перезаписи, но в данном случае это кажется слишком сложным. Почему этот виртуальный хост доступен только для локального хоста? Если на то пошло, зачем использовать отдельный виртуальный хост... вы можете сделать все это (Plone, статические файлы и PHP) только в одном виртуальном хосте с соответствующими строками ProxyPass (или строками Rewrite, если вам нужно больше гибкости).

person newbery    schedule 31.01.2010