Установка і настройка apache tomcat під linux, блог java програміста

Установка і настройка apache tomcat під linux, блог java програміста

Початкові дані.
Linux. Debian 9. 64bit.

1. Встановлюємо JDK.
Чому JDK, а не JRE? Як і фактом досить JRE, але особисто мені приємно мати можливість в разі потреби по-швидкому скомпілювати програму на java прямо на сервері.
Ви не повірите, але життя така цікава штука, ніколи не вгадаєш коли тобі може знадобиться скомпілювати і запустити щось на Java. Особисто мені запуск javac з консолі на сервері допомагав кілька разів.

Далі, я вважаю за краще ставити Oracle JDK. Власне OpenJDK теж непоганий і встановлюється набагато простіше (sudo apt-get install default-jdk). Просто я віддаю перевагу оригінальній Sun / Oracle. Проте, ставити Oracle JDK, OpenJDK або будь-яку іншу версію - особиста справа кожного. Особисто я ставлюся до користувачів Open JDK без упередження. Більш того, сам часто використовую версії Open JDK (наприклад Java 9) для того, щоб ознайомитися з їх новими можливостями.

Установка Oracle JDK під Windows і Linux сильно відрізняються. Під Windows простіше встановити Oracle JDK простіше простого (скачати і запустити), а збірку Open JDK під Windows потрібно ще пошукати.
З Linux-ом все навпаки. Open JDK як я писав ставиться дуже просто через apt, з Oracle JDK трохи складніше.

В інтернеті існує рада, що для установки потрібно додати ще один apt-репозиторій. Я так не роблю. Можливо це особисто моя параноя, але я намагаюся так не робити і роблю установку руками. Особливо якщо врахувати, що установка полягає в тому, щоб завантажити і розпакувати архів.

Вибираємо jdk-XYZ-linux-x64.tar.gz файл. Правою кнопкою - зберегти посилання.

Далі завантажуємо архів:

Про цей файл можна почитати в документації: RUNNING.txt.
Насправді, часто деякі розробники просто тупо вбивають "JAVA_HOME =." Прямо в catalana.sh.
Справа в тому, що простіше відкрити nano catalana.sh і поправити його, ніж створювати setenv.sh (а точніше якось дізнатися про його існування), хоча спочатку цей файл спеціально був зроблений для того, щоб міняти ключі JVM і різні змінні оточення , і при цьому не псувати основний файл, що запускається.

Ось витяг з документації:

Using the "setenv" script (optional, recommended)

Apart from CATALINA_HOME and CATALINA_BASE, all environment variables can
be specified in the "setenv" script. The script is placed either into
CATALINA_BASE / bin or into CATALINA_HOME / bin directory and is named
setenv.bat (on Windows) or setenv.sh (on * nix). The file has to be
readable.

By default the setenv script file is absent.

Строго кажучи, часто змінна оточення JAVA_HOME часто вказує туди, де встановлена ​​системна JVM. По-великому рахунку це правило працює, але часто в роботі / налагодженні доводиться запускати якусь конкретну версію Tomcat-а під якийсь спеціальною версією JVM. Тому зручно мати можливість гнучко змінювати налаштування через setenv.sh.

Після того як всі шляхи налаштовані, запускаємо і перевіряємо, що все добре працює.

До речі помітив цікавий момент. При запуску на віртуальному хостингу може бути досить відчутна затримка в старті (близько хвилини).
Не хочеться заглиблюватися в деталі, але мені допомогла установка haveged.

$ Apt-get install haveged

В принципі це опціонально, можна просто почекати і перевірити, як все запустилось на 8080 порту.
Якщо все добре, рухаємося далі.

Далі створюємо спеціального користувача для запуску сервера.

$ Groupadd tomcat $ useradd -s / bin / false -g tomcat -d / opt / tomcat tomcat $ chown -R tomcat: tomcat / opt / tomcat

$ Apt-get install iptables-persistent

Власне кажучи все.

Тепер про те, на що швидше за все звернуть увагу професійні системні адміністратори.

1. Tomcat заводять через mod_jk за Apache HTTPD або за Nginx (через reverse proxy).
Це дає можливість розділити статику, балансувати навантаження і робити багато інших корисних штуки. Це круто в продакшені, але в девелоперської конфігурації це ще один шар який не завжди спрощує налагодження і розробку.
В принципі в налаштуванні нічого складного немає, але все одно потрібно буде покурити документацію. Раніше я вважав за краще зв'язку через mod_jk, тепер частіше стикаюся з Nginx.

2. Потрібно зробити запуск Tomcat-а як службу. Це не параноя, а здоровий глузд. По-крайней мере якщо не дай Бог сервер увімкнеться знову, не потрібно буде в ручну його запускати.

3. Правильні сисадміни розводять файли томката по правильним папок (/ etc, / var / log і т.д.) і більш делікатно ставляться до прав доступу до конфігураційним файлів (і не тільки).
Можна подивитися, як це робиться через apt-get install tomcat8.

4. Не буду заперечувати, що у багатьох / opt - смітник в якій лежить всяке барахло.
Проте, якщо це мій персональний сервер, то це не смітник, а мій особистий склад програм.

5. Хороші сисадміни налаштовують iptables і прикривають 8080 порт ззовні. Точніше вони прикривають всі порти, до яких не потрібен доступ із зовні.

Якщо вже говорити на чистоту, то особисто я не люблю займатися адмініструванням і налаштуванням серверів. Кожен повинен займатися своєю справою, нехай це робить лінуксоїд зі стажем. Ще раз повторюся, тут мова йде скоріше про якусь девелоперської конфігурації, тому що сисадмін робить установку нормальної стабільної версії "на століття", налаштовує її і потім періодично накочує поновлення. Програмісту ж, в силу своєї професійної діяльності, доводиться періодично змінює настройки, тестувати, міняти версії бібліотек, конфіги, щось накочувати / відкочувати і робити інші неподобства з сервером, поки не доб'ється від сервера потрібної роботи.

З іншого боку, завжди потрібно дотримуватися техніки безпеки.

- Чи не запускати від рута (навіть якщо потрібен 80-й порт).
- Закривати доступ до службових портів.
- Не залишати дефолтних паролів.
- Чи не запускати незрозумілих і неперевірених програм.

В ідеалі цим потрібно займатися у себе в пісочниці, але часто такі речі потрібно вміти робити і в реальному світі.
Та й ось мій реферал на DigitalOcean. для будь-яких пробних веб-проектів на Java я користуюся їхніми хостингом. Раніше користувався brim.ru, вони напевно найвідоміший java-хостинг вУкаіни.

PS: Якщо зовсім не терпиться і хочеться зробити зовсім все по-швидкому, то можна запустити в два-три кроки:
1. Через apt-get поставити tomcat8
2. Завантажити свій ROOT.war
3. Якщо потрібно прокинути порт.

Схожі статті