Сделать стартовой / Добавить в избранное / Написать нам
МЕНЮ
ОС Windows
ОС Linux
    » Дистрибутивы
    » Безопасность
    » Сети
    » Аппаратное обеспечение
    » Программирование
    » Система, ядро, утилиты
    » Программное обеспечение
    » Прочее
BIOS
Сети
Безопасность
Вебмастеру
Программисту
Железо

СВЕЖИЙ СОФТ
ЕГЭ ГИА 2011 репетитор и задачник
Гость 11 Портье
Мини-Сайт v.3.6
Мини-Каталог 1.0
Мини-Кадры 1.0
Мини-Смета v.1.4
Мини-Автопредприятие v.1.13
Мини-Зарплата v.3.3
Жадюга 1.9
LLLLLL
ОС Linux   Программное обеспечение

ОС Linux -> Программное обеспечение ->Настройка связки Apache2 и Tomcat5

Настройка связки Apache2 и Tomcat5

дата добавления: 25.06.2005, просмотров: 3413

Предисловие

Эта статья не претендует на полное описание настройки 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 ? %)

Источник: OpenNet.
Автор: Alexandr L.Yatsuk

комментарии к статье (0)

Ссылки по теме:

  • SysRq: Убийца процессов
  • Linux и питание от батарей
  • Адресная книга на LDAP за пять минут
  • Cooperative Linux в Windows
  • Установка локального WindowsUpdate сервера под Unix

  • ВХОД
    (?)
    |
     
       Copyright WinSov © 2003-2005. При использовании материалов ссылка на www.winsov.ru обязательна.
       Designed by "2BEST Studio",  Developed by #Dialer
    Вверх