Перенос веб-интерфейса alfresco с порта 8080 на 80

После установки Alfresco использует порт 8080 для отображения веб-интерфейса, что не очень удобно. Конечно, хотелось бы использовать стандартный порт 80 и ссылку вида http://localhost/alfresco вместо http://localhost:8080/alfresco. Как перенести веб-интерфейс alfresco, не прибегая к iptables?

Необходимо изменить "8080" на "80" в конфигурационный файлах Alfresco:

  • $ALF_HOME/tomcat/conf/server.xml
  • $ALF_HOME/tomcat/webapps/share/WEB-INF/urlrewrite.xml
  • $ALF_HOME/tomcat/webapps/share/WEB-INF/classes/alfresco/pagerenderer-config.xml
  • $ALF_HOME/tomcat/webapps/share/WEB-INF/classes/alfresco/webscript-framework-config-test.xml
  • $ALF_HOME/tomcat/webapps/share/WEB-INF/classes/alfresco/webscript-framework-config.xml
  • $ALF_HOME/tomcat/webapps/share/WEB-INF/classes/alfresco/webscripts/org/alfresco/indexall.get.mediawiki.ftl
  • $ALF_HOME/tomcat/shared/classes/alfresco/extension/custom-repository.properties

После этого действия у вас заработает http://localhost/alfresco

Но есть проблема, о которой редко где упоминает в своих документациях сама Alfresco. После этих действий у вас не заработает /share. Для работы /share на порту 80 необходимо добавить еще один нестандартный конфиг: $ALF_SHARED/classes/alfresco/web-extension/share-config-custom.xml.

В файл необходимо прописать примерно следующее:

<alfresco-config>
 
   <config evaluator="string-compare" condition="Remote">
      <remote>
         <endpoint>
            <id>alfresco-noauth</id>
            <name>Alfresco - unauthenticated access</name>
            <description>Access to Alfresco Repository WebScripts that do not require authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
            <identity>none</identity>
         </endpoint>
 
         <endpoint>
            <id>alfresco</id>
            <name>Alfresco - user access</name>
            <description>Access to Alfresco Repository WebScripts that require user authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
            <identity>user</identity>
         </endpoint>
 
         <endpoint>
            <id>alfresco-feed</id>
            <name>Alfresco Feed</name>
            <description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
            <connector-id>http</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
            <basic-auth>true</basic-auth>
            <identity>user</identity>
         </endpoint>
      </remote>
   </config>
 
</alfresco-config>

После этого можно спокойно рестартить alfresco.

4256

Комментарии

Оксюморон аватар

Насколько я понимаю, этот вариант годится только в том случае когда портал запущен от root'а?

Aviriel аватар

 Хм, не пробовала запускать от alfresco, но подозреваю, что должно работать как и любой кастомный конфиг, если не забыть сменить права. А почему не должно работать?

Оксюморон аватар

Порты <1000 непривилегированному пользователю брать нельзя.

fufler аватар

 Главное правило при настройке alfresco -- это никогда не трогать конфигурационные файлы в tomcat/webapps/. Для настройки нужно использовать файлы *-config-custom.xml для переопределения/дополнения стандартных настроек. В данном случае, нужно изменить порт, который слушает tomcat в файле tomcat/conf/server.xml. Приведенный share-config-custom.xml использует порт 8080, его нужно сменить на 80.

Aviriel аватар

 Ну насчет "никогда" - это ты загнул. Иначе не настроишь нормально smb, ftp.. Да и локализация, насколько я помню, туда же кладется.. И orbeon (например) для установки на тот же томкат, в tomcat/webapps кладется. Так что трогать можно, просто не от балды.

fufler аватар

Совсем даже не перегнул. Настройку ftp и smb/cifs можно сделать при помощи tomcat/shared/classes/alfresco/extension/file-servers-custom.xml. Русский языковой пакет кладётся в webapps/alfresco  и webapps/share, но при этом он не изменяет стандартных конфигов, только дописывает файлы с русскими сообщениями. Orbeon (как и любой друго war) можно поставить рядом с alfresco, положив его в tomcat/webapps -- эта папка не имеет никакого отношения к alfresco.

Aviriel аватар

 Ну тык отношения не имеет, а ты говоришь в ней ничего не трогать.. Конфиги созданы для того, чтобы настраивать ими, а не чтобы их не трогать..

fufler аватар

Не имеет отношения непосредственно tomcat/webapps -- в ней можно делать всё, что угодно, а вот конфиги в tomcat/webapps/alfresco лучше не трогать, тем более, что есть способ переопределить стандартные настройки. В случае кривого кофига в tomcat/shared его можно тупо снести, не боясь ничего сломать, с системными файлами такого сделать не получится. Поэтому, надо либо делать резервные копии с параноидальной частотой, либо не трогать системные файлы и всю настройку проводить в tomcat/shared.

 Самый простой способ - установить web сервер cherokee с reverse proxy

Накидал мааааленькую инструкцию:

 http://mtaalamu.ru/blog/1853.html

Всегда использую reverse proxy с проектами в которых работает Tomcat

 Средство не только удобное, но и массивное.. Вариантов много, можно и apache обычный настроить как прокси. Но если говорить о переносе на 80й порт без использования стороннего ПО, а используя только alfresco, то правку пары конфигов вполне можно и пережить, зато это экономит ресурсы и идейно верно..

Не хочу сказать, что предложенный вариант плох, просто для продакшна, где важна производительность и минимальное количество точек отказа - идея не подходит..

Все работает в продакшене именно через reverse proxy и ничего ;)