The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Настройка связки Apache2 и Tomcat5 (apache java web tomcat linux debian)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: apache, java, web, tomcat, linux, debian,  (найти похожие документы)
From: Alexandr L.Yatsuk <logka@colocall.net.> Newsgroups: email Date: Mon, 21 Dec 2004 14:31:37 +0000 (UTC) Subject: Настройка связки Apache2 и Tomcat5 <ПРЕДИСЛОВИЕ Это подобие документа не претендует на полное описание настройки tomcat5 и/или apache2. Тут описывается принцип того, как заставить apache2 показывать jsp страницы. Лично мне, во время опытов, не хватало такого документа. Про связку apache2 и tomcat5 я вообще документов на русском не нашел. ПРЕДИСЛОВИЕ/> Случилась таки необходимость делать Java-hosting. Задача была поставлена так: Нужно захостить несколько сайтов на java и несколько обычных сайтов на html. Возникла некоторая трудность. В пекаджах debian sarge есть только tomcat4 и сама java там не самая свежая. А сайты написаны под tomcat5. Поэтому делаем следующее. Tomcat В директорию, например /usr/opt/ тащим tomcat5. (а если точнее, то я брал jakarta-tomcat-5.5.4, его мне порекомендовали как стабильный) Найти его можно тут: http://apache.alkar.net/jakarta/tomcat-5/v5.5.4/bin/jakarta-tomcat-5.5.4.tar.gz Яву моим программерам захотелось вот такую j2sdk1.4.2_06. Поэтому тянем ее туда же в /usr/opt/ . Брать можно тут http://java.sun.com/j2se/1.4.2/download.html Надо выбрать Download J2SE SDK, согласиться с лицензией и скачать. Получаем файл j2sdk-1_4_2_06-linux-i586.bin.txt . Делаем ему chmod 755 и нажимаем. Архивчик само-распаковывается и получается директория j2sdk1.4.2_06, которую при желании можно переименовать в просто java %) И того мы получили директории с томкатом и явой. Проводим некоторые настройки томката. #vim /usr/opt/tomcat/bin/catalina.sh . (Файл запуска и остановки томката, на него можно делать симлинк в /etc/rc2.d/, или какой там Вы runlevel используете). В файле дописываем в начало самое главное. JAVA_HOME=/usr/opt/j2sdk1.4.2_06 Такую же строчку дописываем в /etc/profile , чтобы каждый входящий знал где у него JAVA_HOME. Правим когфиг томката. Прописываем ему virtualhost #vim /usr/opt/tomcat/conf/server.xml (И кто придумал конфиги на xml ?) <Host name="example.com" appBase="/var/virt/www/example/webapps/" /> В каталог /var/virt/www/example/webapps/ кладем наш java проект. В /usr/opt/tomcat/conf/server.xml должен быть описан коннектор для mod-jk <Connector port="8009" protocol="AJP/1.3" /> Стартуем томкат /usr/opt/tomcat/bin/catalina.sh start Смотрим чтобы стартанулся , проверяем порт telnet localhost 8009 , и если все нормально, забиваем на томкат (в смысле на этом настройку закончим):) Apache Переходим к настройкам apache2. Для начала ставим все необходимое. # apt-get install apache2 libapache2-mod-jk2 Создаем VirtualHost для apache2. #vim /etc/apache2/sites-available/example.com <VirtualHost 62.149.0.252:80> ServerName example.com ServerAdmin webmaster@example.com DocumentRoot /var/virt/www/example/webapps/ UseCanonicalName off CustomLog /var/log/apache2/example/access.log combined ErrorLog /var/log/apache2/example/error.log </VirtualHost> Незабываем создать директорию /var/log/apache2/example/ , иначе апач не запустится. Включаем этот virtualhost #ln -s /etc/apache2/sites-available/example.com /etc/apache2/sites-enabled/01_example Привязка Tomcat к Apache Приступаем к самому главному, к связке апача и томката. #cd /etc/apache2/mods-enabled/ #ln -s /etc/apache2/mods-available/jk2.conf jk2.conf #ln -s /etc/apache2/mods-available/jk2.load jk2.load #cat /etc/apache2/mods-available/jk2.conf JkSet config.file /etc/apache2/workers2.properties Осталось последнее, отредактировать /etc/apache2/workers2.properties # vim /etc/apache2/workers2.properties [logger] # описываем логер info=Native logger level=ERROR [config:] # описываем свое местоположение file=/etc/apache2/workers2.properties debug=0 debugEnv=0 [uriMap:] info=Maps the requests. debug=0 [shm:] info=Scoreboard. Required for reconfiguration and status with multiprocess servers file=anonymous debug=0 [workerEnv:] info=Global server options timing=0 debug=0 [lb:lb] info=Default load balancer. debug=0 [channel.socket:localhost:8009] # описывается где и на каком порту нас слушает томкат info=Ajp13 forwarding over socket # я так думаю, что можно томкат и апач на разных машинах ставить. debug=0 # Не пробовал. tomcatId=localhost:8009 [uri:/*.jsp] info=JSP Extension mapping. debug=0 Это говорит, что все что jsp надо спрашивать у томката. Но тут появились грабли, мои программеры не все свои ссылки делают на .jsp . Уж так они пишут. Поэтому дописываем еще вот такое: [uri:example.com/*] info= example JSP debug=0 И теперь все что example.com, то-есть все что лежит в /var/virt/www/example/webapps/ нам отдает томкат. Виртуальные хосты, которым ява не надо не вписываем просто таким способом ;) Запускаем апач, проверяем в браузере http://example.com , уходим пить пиво %) Единственное что мне тут не понравилось, то что если в проекте есть картинка или простая html, то ее сначала обрабатывает tomcat а потом отдает apache. Но никто не мешает положить картинки отдельно ;) Есть еще несколько способов, чтобы на сервере стоял и апач и томкат и все отдавалось в браузере по урлу без указания порта, тоесть просто и удобно. 1. Можно все что идет на example.com на 80 порт форвардить на 8080, куда повесить томкат. 2. В днс можно http запросы отправлять на http://example.com:8080 притом в браузере все время будет показываться урл http://example.com Пока что больше не придумал. Ах да, прочитав это некоторые могут подумать, зачем apache2 и tomcat связывать если отдать яву и html способен сам томкат. А если надо будет php ? %)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, sergey, 13:40, 21/12/2004 [ответить] [смотреть все]
  • +/
    Спасибо! Это то, что нужно.
     
     
  • 2.2, logka, 14:51, 21/12/2004 [^] [ответить] [смотреть все]
  • +/
    Незачто, заходите еще ;)
     
  • 1.3, гость, 15:53, 21/12/2004 [ответить] [смотреть все]
  • +/
    Молодцы ребята
     
  • 1.4, MiRacLe, 16:51, 21/12/2004 [ответить] [смотреть все]
  • +/
    >>2. В днс можно http запросы отправлять на http://example.com:8080 притом в
    >> браузере все время будет показываться урл http://example.com
    к автору статьи
    можно поподробнее о том как с помощью dns редиректить соединения на разные порты? имхо автор имел ввиду файрвол, а не dns....
    P.S. в остальном статья действительно хорошая...
     
     
  • 2.5, logka, 20:41, 21/12/2004 [^] [ответить] [смотреть все]
  • +/
    Как автор статьи говорю, это я чуть загнул не обьснив подробности %)
    Такую услугу как редирект http трафика определенного домена на совсем другой или частично другой урл предоставляют хостинг провайдеры и регистраторы. И на самом деле тут редиректит апач.

    Сорри за сбивание с толку.
    Тема требует отдельной статьи... скоро напишу.
    Про редиректить фаерволом, я говорил в первом варианте ;)

     
  • 1.6, shu, 18:32, 22/12/2004 [ответить] [смотреть все]  
  • +/
    Статья очень полезная для начинающих, но как-то все сделано очень не так как у м... весь текст скрыт [показать]
     
     
  • 2.12, adel, 17:43, 13/03/2007 [^] [ответить] [смотреть все]  
  • +/
    >Статья очень полезная для начинающих, но как-то все сделано очень не так
    >как у меня. Может быть конечно это особенности 5 Томката, а
    >у меня пока 4 стоит. Поэтому вопрос к автору и другим
    >знающим людям: будет ли работать мой вариант с 5 томкатом?

    Это для второго апача, а у тебя, видимо, первый.

     
  • 1.7, Alter, 20:18, 22/12/2004 [ответить] [смотреть все]  
  • +/
    >зачем apache2 и tomcat связывать
    если отдать яву и html способен сам томкат.

    Затем, что tomcat отдает html медленно и ресурсоемко :)

     
  • 1.8, MK, 19:24, 02/01/2005 [ответить] [смотреть все]  
  • +/
    Я бы еще добавил, что Tomcat надо запускать от имени "слабого" пользователя, т. е. не под рутом и с включенным параметром -security. Иначе могут быть БОЛЬШИЕ проблемы с безопасностью. Например: web-приложение запускается под рутовым пользователем и делает все что угодно, или в приложении пишем System.exit(0); и Tomcat - умирает.  
     
  • 1.9, Андрей Логинов, 17:45, 04/01/2005 [ответить] [смотреть все]  
  • +/
    А можно ли с помощью такой связки из 5-го php вызывать функциии находящиеся в java классай в томкате?
    Если можно пару примеров
     
  • 1.10, logka, 15:56, 06/01/2005 [ответить] [смотреть все]  
  • +/
    Я вот тут подумал...
    А зачем ????
    помомему это извращение писать в одном файле на нескольких языках....
    Учитывая то, что томкат компилит проэкт, а пхп парсит файл .... то врятли вообще такое возможно ...
     
     
  • 2.11, Leprekon, 09:29, 21/11/2006 [^] [ответить] [смотреть все]  
  • +/
    Думаю, PHP отпарсит, а потом отдаст Томкату для компиляционных извращений... Как раз етим занимаюсь. Настрою - расскажу,)
     
  • 1.13, Михалтос, 14:13, 18/06/2007 [ответить] [смотреть все]  
  • +/
    Возможно ли пообщаться на эту тему напрямую по асе(309238044) или по мылу(mihaltos@mail.ru)?
     
  • 1.14, Дима, 23:07, 27/04/2010 [ответить] [смотреть все]  
  • +/
    А возможно сам Apache настроить как reverse proxy и прокидывать все web запросты Tomcat-У на 127.0.0.1 порт 8080 ? ( сконфигурировав томкат предварительно чтоб слушал на 127.0.0.1 ) ?
     
  • 1.15, puchuu, 17:24, 06/09/2010 [ответить] [смотреть все]  
  • +/
    о_0 фронтенд для томката - апач?
    Т_Т идиоты.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor