Назад | Перейти на главную страницу

Совместное использование данных только для Apache Tomcat

Теперь на сервере A (Windows Server 2012) работают:
- Apache Tomcat 7 (используется CRM-системой)
- База данных MySQL
- локальные данные для Tomcat (вложения электронной почты из этой CRM и т. д.)

Я бы хотел переместить Apache Tomcat на сервер B (Windows Server 2012 в том же домене), но сохранить базу данных и локальные данные на сервере A.

Каков правильный и безопасный способ поделиться локальными данными с сервера A только на Tomcat, работающий на сервере B?

Я подозреваю, что сеть между вашими серверами не доверяет.

Если вам нужен безопасный способ, вам нужно

  1. Включите сетевой доступ в mysql (как в аутентификации на основе хоста, так и в таблице пользователей)
  2. Сделайте так, чтобы сервер mysql слушал порт 3306 в вашем my.cnf.
  3. Включите порт 3306 в брандмауэре вашей машины mysql, но только для вашего сервера B.
  4. Включите поддержку ssl на вашем сервере mysql на сервере A.
  5. Если есть какие-либо промежуточные межсетевые экраны / маршрутизаторы / фильтрация пакетов, включите B->A:3306 TCP-соединения, но только они.
  6. Создайте длинный и безопасный пароль для вашего пользователя tomcat, например, с помощью pwgen команда. Установите этот пароль в свой mysql.
  7. Измените конфигурацию вашего веб-приложения tomcat на сервере B, чтобы использовать A:3306 с вашим паролем в конфигурации mysql. Требуется немного опыта работы с java, возможно, вам нужно будет изменить некоторые файлы xml где-то под WEB-INF каталога META-INF.
  8. Разверните веб-приложение на сервере B.
  9. Проверьте возможность уровня TCP на сервере B с помощью telnet A 3306 команда. Если все в порядке, идите дальше.
  10. Подключение Mysql на сервере B к серверу A с mysql --host=A --port=3306 --user=... --pass=... команда. Если работает, идите дальше.
  11. Запустите веб-приложение и проверьте, может ли оно также подключиться.

Это не совсем пошаговые инструкции, каждый шаг, вероятно, требует от вас дальнейшего изучения. Но на самом деле это основные большие скачки. Если что-то неясно, мы ответим на ваш следующий вопрос.


Расширение: Как вы писали, сеть между A и B можно считать надежной. В этом случае вам не нужно какое-либо шифрование между серверами, хотя я счел необходимым установить небольшой брандмауэр. Поскольку вы делаете свой сервер mysql доступным из сети, было бы действительно полезно, если бы только B смогли подключить вашу базу данных к A. Это можно решить, комбинируя фильтрацию портов с аутентификацией mysql. Но вам не нужно беспокоиться о шифровании, которое делает вашу работу намного лучше, если вы не являетесь администратором.


Расширение №2: Хотя вы ничего не писали, где находятся ваши "локальные данные", я подозреваю, что они находятся в файлы. Совместное использование файлов очень просто с помощью сетевого общего доступа SMB, и этот общий ресурс может быть установлен на сервере B как подкаталог или как отдельный диск. Было бы лучше, если бы у него была какая-то независимость от исходного веб-приложения. Например, если он был в ...\webapps\yourappname\attachments, было бы лучше, если бы это было из вашего webapps Папка на сервере B. Для этого может потребоваться небольшая настройка веб-приложения.

Расширение № 3: Apache, tomcat, каждый ваш сервер работает как пользователь, и вы можете легко настроить, в качестве какого пользователя. Если они установлены как службы, вы можете сделать это в Администрирование -> Службы. А затем в обмене файлами Windows вы можете установить параметры безопасности общего ресурса, чтобы только этот сетевой пользователь мог читать этот общий ресурс. Предупреждение: вам нужно изменить настройки в двух местах. Во-первых, вы должны изменить безопасность общего сетевого ресурса, а во-вторых, для обслуживаемых файлов. Но и то, и другое вы можете сделать, просто щелкнув правой кнопкой мыши по данному каталогу в проводнике Windows.

Расширение №4: Я считал очень полезным, если вы отделенный общая папка из вашего веб-приложения. Для этого, вероятно, потребуется небольшая настройка. Может тебе стоит расширить свой вопрос, где ваше веб-приложение и где ваши локальные файлы данных на вашем сервере A.