Как запустить приложение java на сервере

Обновлено: 19.09.2024

Установка Tomcat

Чтобы использовать Tomcat в Java, его необходимо установить в систему. О том, как установить Tomcat можно прочитать в этой статье, где также рассматриваются и другие сервера приложений. Итак, имея работающий Tomcat, встроенный в IDEA, можно попробовать приготовить свой первый сервлет.

Как создать веб-приложение

Как встроить приложение в работающий сервер

Несмотря на то, что встроенный Tomcat в IDEA — удобная фича, веб-приложение может быть перенесено на другой сервер и в другой контейнер. Рассмотрим вариант, когда необходимо встроить свое приложение в уже работающий сервер. Во-первых, необходимо дополнительно разобрать цель и функции контейнера сервлетов. Программа, которая приведена в примере выше — это веб-приложение. Класс TimeWorker — сервлет. Компоненты выполняют исключительно обработку запросов. Данные компоненты должны быть встроены в специальный контейнер сервлетов. Цель контейнера сервлетов — поддержка сервлетов и обеспечение их жизненного цикла. Простейший пример работы Tomcat — сканирование определенной папки с целью определить, появился ли в ней новый сервлет. Если да — инициализировать его и подготовить к приему запросов от клиентов. Если сервлет был обновлен, провести повторную инициализацию для обновления компонентов. При удалении сервлета — остановить обработку запросов, удалить сервлет из Tomcat.

Функции контейнера сервлетов

  1. Обмен данными между сервлетом и клиентами;
  2. Организация клиентских сессий;
  3. Создание программной среды для функционирования сервлета;
  4. Идентификация и авторизация клиентов;
  5. В большинстве случаев — управление метаданными (заголовки, методы и прочее).

Установка сервлета

Tomcat в Java - 7

Tomcat принимает для обработки веб-приложения на Java, которые имеют расширение .war. Это как jar, только web. Файлы такого типа объединяют в себе JSP-файлы, сервлеты, class-файлы, статические ресурсы и прочее. При установке такого файла в Tomcat происходит его распаковка, а затем запуск, поэтому существует строгое требование к структуре файлов в проекте. Если проект был создан в IDEA, вся структура создана автоматически. Файл war можно создать стандартными средствами IDEA. Для этого необходимо зайти в ProjectStructure -> Artifacts -> Нажать “+” -> WebApplication: Archive. В открывшемся поле задать имя для итогового war-файла, например deployed_war. Ниже необходимо нажать на кнопку Create Manifest… Далее необходимо указать путь к папке web проекта. В ней будет создана папка META-INF, в которую будет помещен файл MANIFEST.MF. Далее следует нажать Apply и Ok. Чтобы собрать проект в war-файл, следует во вкладке Build выбрать опцию Build Artifact: В появившемся поле нужно нажать на deployed_war. Затем начнется сборка проекта и Intellij IDEA создаст папку out, в которой появится папка artifacts с именем нашего артефакта. В этой папке будет лежать файл deployed_war.war: Теперь можно деплоить этот файл в Tomcat. Деплой приложения проще всего выполнить из веб-интерфейса Tomcat. Просто нажмите кнопку выбора файла на вкладке Deploy, перейдите к местоположению файла WAR и выберите его, затем нажмите кнопку развертывания. В обоих случаях, если все пойдет хорошо, консоль Tomcat сообщит нам, что развертывание прошло успешно примерно таким выводом в консоль: INFO: Deployment of web application archive \path\to\deployed_war has finished in 4,833 ms

Польза Tomcat для разработки

Самое главное, Tomcat может выполнять роль полноценного web-сервера. Благодаря этому развертывание приложений происходит гораздо быстрее, чем было раньше.Также Tomcat может выступать в роли классического контейнера сервлетов, который можно встроить в более крупный веб-сервер.

Tomcat способствует обмену данными между клиентом и сервлетом, обеспечивает программный контекст для веб-приложений, берет на себя функции идентификации и авторизации клиентов, создание сессий для каждого из них.

Предоставляет очень удобное управление JSP-страницами. Фактически веб-сервер может отдавать только html. Jasper, компонент Tomcat, компилирует код, содержащийся в шаблонных тегах JSP-страниц в корректный HTML-файл, который получает клиент. Вся логика шаблонизации находится внутри Tomcat, позволяя добавлять даже сложные конструкторы в классическую форму HTML.

Я сделал приложение java, которое хранит данные из a .csv-файл в базу данных MySql. Теперь мой клиент хочет загрузить это приложение в свое веб-пространство (веб-пространство, которое он взял для своего веб-сайта), чтобы он мог запустить эту программу на этом сервере.

я использовал FileZilla программа для загрузки программа для его веб-хостинг, но теперь я не знаю как запустить эту программу на своем сервере.

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

есть ли какая-либо конкретная функция, которую веб-хостинг должен поддерживать для запуска этой программы java?

поскольку он хранит данные из файла (.csv-файл) в базу данных MySql, тогда было бы лучше развернуть эту программу на сервере, на котором размещается база данных, а не на сервере, на котором размещается веб-сайт?

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

в вашем случае, у вас есть консольное приложение.

в зависимости от конфигурации сервера ни одно из этих приложений не может быть запущено на вашем клиентском веб-хостинге, ни одно из них или оба.

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

в случае внутреннего сервера компании вам нужно попросить своего клиента и его ИТ-материал настроить это.

наконец, вам нужно спросить: 1. Поддерживает ли сервер SSH? - это просто пульт дистанционного управления. Обычно он работает на порту 22, и вы многие проверяете его с помощью команды " telnet yourserver 22" (windows и linux) - если он не отклоняет ваше соединение - настроены означает, что SSH-это. 2. Установлен ли на вашем сервере java и доступен ли он для вашей учетной записи через SSH-соединение?

  1. только если ваш клиент действительно означает веб-приложение вместо консольного приложения, вам нужно спросить, есть ли у сервера сервер веб-приложений для Java - обычно это что-то вроде Apache Tomcat, Jetty, JBoss, Weblogic и т. д. Но этот способ потребует модификации приложения, чтобы запустить его на веб-сервере.

Если вы решите использовать консольное приложение, а не" обновлять " его до веб-приложения, вы действительно можете запустить его на хосте, на котором работает ваша база данных (опять же, вам понадобится SSH). Вы сэкономите время на операциях удаленного доступа к базе данных-теоретически ваша программа будет работать быстрее.

наличие "веб-пространства" не обязательно означает, что он имеет достаточный доступ к серверу для запуска произвольных программ (или базы данных MySql).

вы может потенциально перепишите приложение как веб-приложение, но это может быть не очень хорошо подходит.

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

ваше приложение, скорее всего, консольное, а не веб-приложение.

вашему клиенту нужно будет SSH на сервер и сделать что-то вроде:

Если у вашего веб-хоста есть java, вы можете попробовать выполнить его из php cronjob без необходимости ssh:

В этой статье объясняется, что такое Java Web Start (JWS), как настроить его на стороне сервера и как создать простое приложение.

1. Обзор

В этой статье объясняется, что такое Java Web Start (JWS), как настроить его на стороне сервера и как создать простое приложение.

Примечание: JWS был удален из Oracle JDK, начиная с Java 11. В качестве альтернативы рассмотрите возможность использования Open Web Start .

2. Введение

JWS-это среда выполнения, которая поставляется вместе с Java SE для веб-браузера клиента и существует с версии Java 5.

При загрузке файлов JNLP (также известных как протокол запуска сети Java) с веб-сервера эта среда позволяет нам удаленно запускать пакеты JAR, на которые она ссылается.

С общего веб-сайта можно загрузить файл JNLP для выполнения приложения JWS. После загрузки его можно запустить непосредственно из ярлыка на рабочем столе или средства просмотра кэша Java. После этого он загружает и выполняет файлы JAR.

Этот механизм может быть очень полезен для предоставления графического интерфейса, который не является веб-интерфейсом (без HTML), такого как приложение для безопасной передачи файлов, научный калькулятор, безопасная клавиатура, локальный браузер изображений и так далее.

3. Простое приложение JNLP

Хороший подход-написать приложение и упаковать его в файл WAR для обычных веб-серверов. Все, что нам нужно, это написать желаемое приложение (обычно с помощью Swing) и упаковать его в файл JAR. Затем этот JAR, в свою очередь, должен быть упакован в файл WAR вместе с JNLP, который будет ссылаться, загружать и выполнять класс Main своего приложения в обычном режиме.

Нет никакой разницы с обычным веб-приложением, упакованным в файл WAR, за исключением того факта, что нам нужен файл JNLP для включения JWS, как будет показано ниже.

3.1. Java-приложение

Давайте начнем с написания простого Java-приложения:

Мы видим, что это довольно простой класс свинга. Действительно, ничего не было добавлено, чтобы сделать его совместимым с JWS.

3.2. Веб-приложение

Все, что нам нужно, это упаковать этот пример класса Swing в файл WAR вместе со следующим файлом JNLP:

Давайте назовем его hello.jndi и поместим в любую веб-папку нашей ВОЙНЫ. И JAR, и WAR загружаются, поэтому нам не нужно беспокоиться о том, чтобы поместить JAR в папку lib .

URL-адрес нашей последней банки жестко закодирован в файле JNLP, что может вызвать некоторые проблемы с распространением. Если мы изменим серверы развертывания, приложение больше не будет работать.

Давайте исправим это с помощью правильного сервлета позже в этой статье. А пока давайте просто поместим файл JAR для загрузки в корневую папку в качестве index.html , и связать его с элементом привязки:

Давайте также установим основной класс в нашем JAR-манифесте . Это может быть достигнуто путем настройки плагина JAR в pom.xml файл. Аналогично, мы перемещаем файл JAR за пределы WEB-INF/lib , поскольку он предназначен только для загрузки, т. е. не для загрузчика классов:

4. Специальные конфигурации

4.1. Вопросы безопасности

Чтобы запустить приложение, нам нужно подписать банку . Создание действительного сертификата и использование плагина JAR Sign Maven выходит за рамки этой статьи, но мы можем обойти эту политику безопасности в целях разработки или если у нас есть административный доступ к компьютеру нашего пользователя.

5. JnlpDownloadServlet

5.1. Алгоритмы сжатия

Есть специальный сервлет, который можно включить в нашу ВОЙНУ. Он оптимизирует загрузку, ища наиболее сжатую скомпилированную версию нашего файла JAR, если она доступна, а также исправляет жестко закодированное значение codebase в файле JLNP.

Поскольку наша БАНКА будет доступна для загрузки, рекомендуется упаковать ее с помощью алгоритма сжатия, такого как Pack200, и доставить обычную банку и любой пакет JAR.PACK.GZ или JAR.GZ сжатая версия в той же папке, чтобы этот сервлет мог выбрать лучший вариант для каждого случая.

К сожалению, пока нет стабильной версии плагина Maven для этого алгоритма сжатия, но мы можем работать с исполняемым файлом Pack200, который поставляется с JRE (обычно устанавливается по пути /jre/bin/ ).

Без изменения JNLP и путем размещения jar.gz и jar.pack.gz версии JAR в той же папке, сервлет выбирает лучшую, как только он получает вызов от удаленного JNLP. Это улучшает пользовательский интерфейс и оптимизирует сетевой трафик.

5.2. Динамическая подстановка Кодовой Базы

Сервлет также может выполнять динамические замены жестко закодированных URL-адресов в теге . Изменив JNLP на подстановочный знак , он доставит тот же окончательный тег визуализации.

5.3. Добавление сервлета в путь к классу

Чтобы добавить сервлет, давайте настроим обычное сопоставление сервлетов для шаблонов JAR и JNLP для вашего web.xml :

Сам сервлет поставляется в виде набора банок ( jardiff.jar и jnlp-servlet.jar ), которые в настоящее время находятся в разделе демонстраций и образцов на странице загрузки Java SDK.

В примере GitHub эти файлы включены в папку java-core-samples-lib и включены в качестве веб-ресурсов плагином Maven WAR:

6. Заключительные мысли

Java Web Start-это инструмент, который может использоваться в средах (интрасети), где нет сервера приложений. Кроме того, для приложений, которым необходимо манипулировать локальными файлами пользователей.

Развертывание (Deploy) веб-приложения java на виртуальном сервере VPS

Гайд больше предназначен для людей, которые только начинают гуглить по всему интернету, как же им выставить своё веб-приложение в интернет, либо столкнулись с трудностями, которые произошли со мной. Ушло не мало времени, чтобы собрать по всему интернету крупицы необходимых настроек для первого запуска. Здесь не будет подробного объяснения тех или иных моментов в виде скриншотов. Считаю, в конкретном случае, они не столь необходимы. Будут показаны некоторые подводные камни, на которые ушло прилично времени. Для людей с базой mysql, сборщиком gradle, помочь, увы, ничем не смогу, возможно, вы найдёте ответы в данной статье, интерпритируя на свой проект.

Если вы пришли в поисках ответа на вопрос "А можно ли приложение java развернуть на виртуальном хостинге, а не на виртуальном сервере", то ответ - нельзя.

Настраиваться будет следующее: web-сайт, написанный на java с помощью фреймворка Sping boot в ОС Windows 10 + postgresql + apache + maven + git bash + виртуальный сервер VPS на ubuntu + nginx + настройка купленного сертификата SSL + панель управления Vesta на виртуальном сервере.

Содержание:

  • Выбор хостинга для виртуального сервера VPS/VDS
  • Выбор продавца и покупка SSL сертификата для домена
  • Установка, настройка vesta.conf и первое подключение к серверу VPS/VDS
  • Установка базы данных postgreSQL в ubuntu и Vesta panel
  • Установка java 1.8 на ubuntu 18.04
  • Настройка mail, user, domain, dns, postgresql, ssl в web Vesta панели
  • Настройка nginx
  • Подготовка приложения Java для копирования и развертывания на виртуальном сервере VPS/VDS
  • Развертывание(deploy) приложения Java на виртуальном сервере VPS/VDS
  • Полезные дополнения и решение проблем с сайтом

Какие версии были использованы:

- java 14, в настройках pom.xml указал 1.8

- java в ubuntu 1.8

- spring boot 2.4.3

- maven 3.8.1 в Windows

Про покупку домена в данной статье рассказываться не будет.

Выбор хостинга для виртуального сервера VPS/VDS

В данном направлении выбирайте сами, зависит от ваших потребностей и цены у разных хостингов. Если у вас один сайт или вы только учитесь, сами понимаете, что нет смысла покупать. Ходят в интернете статьи о том, что Amazon предоставляет на год бесплатные виртуальные сервера, но не могу ничего сказать по этому поводу, так как не проверял.

Если думаете покупать, то можете перейти по моей ссылке на один из таких хостингов , fastvps дадут хорошую скидку при первом заказе по ней, либо не торопитесь, чуть ниже описан другой провайдер. Предоставят вместо Vesta другую панель под названием FastPanel. Данная панель только набирает обороты, сыровата, но техподдержка у fastvps очень хорошая, и помогут подобрать тариф, и в некоторых случаях, помогут даже настроить вам сервер(с тем же nginx помогут) и, даже, в редких случаях(если попадётся вопрос под их компетенцией), сам сайт развернуть. Сразу обрежу, что не стоит пробовать ставить FastPanel на провайдеров хостинга, которая она не поддерживает, не сможете настроить, а если и можете, то вы тот человек, который никогда не прочтёт подобную статью.

Выбор продавца и покупка SSL сертификата для домена

В нынешнее время без SSL сертификата лучше и не стоит задумываться о серьёзных проектах и приложениях. Сразу оговорюсь, сначала, настройте сервер, так как сертификат выдаётся только после подтверждения, что домен ваш. А для этого необходимо настроить минимум почтовый адрес. Проштудировав интернет, могу с уверенностью посоветовать покупать у 1cloud, а по данной ссылке вас ждут приятные бонусы . Сам покупаю сертификаты именно у них. Хорошие, не кусающиеся цены на SSL сертификаты, отличная техподдержка, которая спрашивает о том, что им улучшить, помогут настроить сертификаты. Оставили в предложениях заявку на гайд по установке их сертификатов на Vesta панель. Далее вы поймёте, какие трудности могут случиться. Они так же предоставляют услуги покупки виртуального сервера VPS/VDS, частных облаков и многое другое. На мой взгляд, сервера дороговаты, но если хотите мощную техническую поддержку, то вам именно туда.

Установка, настройка vesta.conf и первое подключение к серверу VPS/VDS

После покупок, установок системы ubuntu 18.04, подключаемся к серверу первый раз через ssh. Некоторые провайдеры предоставляют консольную панель на сайте для подключения. Конечно, ваше право чем пользоваться, но мне она не понравилась, постоянно глючит, да и подключиться хоть раз нам придётся из windows, так как будет скрипт для копирования и развертывания приложения на сервер. Замечу, вместе с ubuntu провайдер мне поставил Vesta. Как устанавливать отдельно Vesta в данной статье я не буду. Если есть проверенный гайд, то напишите о нём, обязательно добавлю в статью.

Для подключения использовался putty. Очень удобен и прост. Скачивается с официального сайта putty , в данной статье подробно рассказывается как подключиться к VPS через putty . Для тех, кто в первый раз, обращаю внимание, что при вводе пароля, ничего отображаться не будет, курсор будет на месте, но при этом пароль вводится.

Подключаемся к пользователю root для установки и настройки необходимого ПО. У вас примерно будет отображаться следующее при входе:

IP адрес после @ указан вымышленный.

Вводим следующие команды, для обновления пакетов и установки wget:

Wget необходим для загрузки файлов по сети.

Настроим сразу конфигурацию vesta панели. Для этого введите следующую команду:

nano - это текстовый редактор, наподобие vi. Мне nano больше нравится, он более лоялен к пользователю.

Если у вас не установлен nano, то можете установить его следующей командой:

В случае, если не получается с nano, то для запуска vi используется следующая команда:

Но с обращением с ним - вы сами по себе.

DB_SYSTEM меняем на DB_SYSTEM=‘mysql,pgsql’. Откроет выбор в меню для базы данных postgreSQL.

Обязательно перезайдите в web версии Vesta-панель (Сделать logout из аккаунта).

Установка базы данных postgreSQL в ubuntu и Vesta panel

После первоочередных действий, приступаем к установке базы данных на ubuntu. Никаких сложностей встречено не было, всё делается по гайдам из интернета. Единственное, что есть подвох в одном моменте с паролем для пользователя в БД postgres.

Первым шагом устанавливаем postgreSQL. Если вам требуется определенная версия, то необходимо найти в интернете. Я ставил автоматическую скачку, так как для моих нужд хватает и 10й версии:

Cкачиваем конфигурационные файлы HBA для vesta:

Перезагружаем процесс postgresql:

Переходим под пользователя postgres

Теперь есть несколько путей установки пароля для postgres, какой сработает (а именно, не всегда устанавливается по какой то причине), такой и необходимо использовать.

1 способ(В случае чего, вас спасёт комбинация клавиш CTRL + C):

2 способ (Вводим пароль pgp4sw0rd):

Хочу заметить, что пароль вводите именно pgp4sw0rd. Поставив свой пароль, можете получить следующую ошибку - "postgresql error connection localhost failed" при дальнейшем добавлении базы в Vesta panel. Вы можете в дальнейшем попытаться сами его изменить, уже после развертывания вашего приложения.

В зависимости от способа, выходим обратно в пользователя root (полезные команды ctrl+x, ctrl+c, exit). Помните, всегда есть возможность переподключиться к серверу.

Регистрируем postgresql в Vesta:

Именно в данном месте, либо в веб Vesta панели может появиться ошибка "postgresql error connection localhost failed". В моём случае, были проблемы с паролем. Дальше мы настроим нового пользователя через панель для БД.

Скачиваем настройки для phppgadmin:

Делаем рестарт apache2, vesta, nginx:

Установка java 1.8 на ubuntu 18.04

Java необходима для запуска нашего проекта в формате jar. Вы можете сделать самозапускающееся приложение, дав права chmod на запуск и настроив. В данном случае, мы не будем испытывать судьбу, так как напишем скрипт для автоматического развертывания.

Для установки выполните следующие команды:

Для проверки версии введите:

Должен получиться примерно следующий результат:

В случае проблем, всегда можно воспользоваться командами для удаления java 1.8 с ubuntu:

Настройка mail, user, domain, dns, postgresql, ssl в web Vesta панели

Для дальнейших настроек необходимо зайти в vesta панель. Её адрес и доступ к админу выдаст вам провайдер хостинга при установке системы на виртуальный сервер, либо при ручной установке, вам с большой вероятностью её выдали. Так как Vesta своего рода интерфейс, в котором сложно заблудиться, то я буду описывать в общих чертах.

Создание нового пользователя

Зайдите на web адрес панели и залогиньтесь под учетной записью администратора. Здесь нам потребуется только создать нового пользователя. Он создаётся для обеспечение безопасности ваших приложений и сайтов. Создается на вкладке "USER".

Заходим в панель под новым пользователем и приступаем к настройкам.

Добавление web сайта

Перед тем, как начнем Нажмите на вкладку "Web" и кликните на "Add web domain".

Создание почтового ящика

Нажмите на вкладку "Mail" и создайте новый почтовый ящик. Учтите, создайте сразу ящик с именем admin, либо administrator. Это поможет приобрести SSL сертификат, так как ссылка на подтверждение владения доменом приходит именно на эти адреса.

Создание новой базы postgresql

Нажмите на вкладку "DB" и на кнопку "Add database".

Обратите внимание , что Vesta создаёт название базы и имя пользователя с префиксом имени пользователя текущего аккаунта. Если вас не устраивает данный вариант (то есть в коде java поменять две строчки), то всегда можете добавить вручную базу данных из ubuntu.

Повторюсь, если получили ошибку " postgresql error connection localhost failed", то вернитесь к разделу настройки postgresql в ubuntu.

После создания базы данных вы можете зайти через phppgadmin, настроенный ранее.

Настройка DNS

Первоочередно, сервера DNS вам необходимо настроить самостоятельно в панели своего хостинг провайдера (Гайды по настройкам у них есть). Единственное, что можем настроить, это сервера ns1 и ns2.

Нажмите в правом верхнем углу на имя пользователя.

Теперь можете двигаться по ссылке и покупать SSL сертификат. Региструйтесь и следуйте подсказкам. Единственное, в поле верификации домена поставьте email.

Настройка SSL на сайте

Зайдите на вкладку "Web" и для редактирования нажмите "Edit" вашего сайта.

Включите поддержку SSL support.

Будьте внимательны, открываются дополнительные поля, которые обязательны к заполнению. И неверное заполнение не даст добавить ваш SSL сертификат на сайт:

SSL Home
SSL Certificate / Generate CSR
SSL Key
SSL Certificate Authority / Intermediate (optional)

Обращаю внимание, что я буду приводить примеры сертификатов именно с сайта 1cloud. У других названия файлов могут отличаться. После покупки вам отправят архив с файлами сертификатов, но мы пойдём немного другим путём для лучшего понимания. В вашем личном кабинете на 1cloud откройте сертификат. Вы увидите следующее:


SSL Home - значение public_shtml
SSL Certificate / Generate CSR - yourdomain_key.key
SSL Key - yourdomain.crt
SSL Certificate Authority / Intermediate (optional) - yourdomain_ca.crt

Где yourdomain - имя вашего домена. Файл pfx тоже можете сразу скачать, он понадобиться для настройки SSL в приложении java.

На скриншоте примерный результат:


Нажимаете "Save" и сертификат должен успешно добавиться к сайту.

Можете столкнуться с ошибкой "SSL intermediate chain is not valid". Это означает, что вы неправильно вставили в SSL Certificate Authority / Intermediate (optional) данные. Произойдёт это в том случае, если политика Vesta панели изменится, либо политика хостинга, где покупали сертификат. На момент написания статьи, данной ошибки не появляется, найдено опытным путём.

Настройка nginx

Данный раздел понадобится тем, кто запускает своё приложение на порту, отличными от 8080. А я вам советую, на первое время поменять порт вашего приложения в application.properties, например на server.port=8099. Так как порт 80 по умолчанию занят nginx, либо apache.

Существуют способы редиректа через htaccess.

В случае, если у вас только apache, то необходимо найти гайд для перенаправления портов.

Подключаемся заново по shh к нашему серверу по root.

Для начала проверим папку с файлами, они должны существовать( Не забудьте поменять название YOURUSER на вашего пользователя, у которого вы создали сайт в Vesta panel ):

В файле меняем в location /, в поле proxy_pass порт на тот, на котором будет запускаться java приложение, например 8099( IP адрес не меняем. В примере он указан вымышленный )

Аналогично меняем в location @fallback proxy_pass порт

Сохраняемся и выходим.

Перезапускаем процессы apache2, vesta, nginx:

Если возникнут трудности с редиректом, в некоторых случаях добавление в файл nginx.conf помогает следующий код(Вставляем перед закрывающейся скобкой):

Подготовка приложения Java для копирования и развертывания на виртуальном сервере VPS/VDS

Дошли до того момента, когда необходимо настроить приложение java. Будьте внимательны, некоторые моменты могут вам не подойти, либо оказаться лишними. Если вы решили сразу сюда перейти, не читая гайда по установке сервера, то, надеюсь, вы знаете что делаете. И надеюсь, когда вы делали свой проект, понимали, что делали и объяснять некоторые вещи не нужно.

Перед настройкой, хочу обратить внимание, дальше будет для тех у кого операционная система Windows. Если у вас что-то установлено, смело пропускайте пункт.

Переходим к настройкам проекта:

Добавьте в файл application.properties следующие строки:

Переходим в файл pom.xml и добавляем следующие зависимости:


Если у вас не формируется файл jar в папке target, например, то добавьте 1.0-SNAPSHOT, чтобы получилось следующее:


Перейдите в класс WebSecurityConfig и добавьте следующие строки:

В некоторых случаях, исправляет проблемы с определением сертификации у приложения. На этом подготовка java приложения для развертывания на сервере закончена.

Развертывание (deploy) приложения Java на виртуальном сервере VPS/VDS

Переходим к самому интересному. Если вы сделали всё правильно до этого, никаких ошибок не возникает, то данный раздел не заставит вас нервничать и волноваться. Деплой пройдёт гладко.

Для начала подготовим скрипт для сборки и развертывания.

Создайте файл deploy.sh в папке scripts(создайте, если не существует) в указанном месте:


Добавьте следующий код в файл deploy.sh:

PATHTOTARGET - подставьте путь до вашей папки target в проекте, не забывайте, что путь надо указывать не С:\. а /c/myfolder/итакдалее

NAMEFILE.jar - имя вашего jar файла, созданного SNAPSHOT

IP - ip адрес вашего сервера

USER - имя пользователя, которого вы создавали

DOMAIN - имя домена

Вы можете посмотреть путь до папки public_shtml в файловом менеджере панели Vesta.

Внимание! Логи запуска, работы веб-приложения, spring будут хранится здесь /home/USER/web/DOMAIN/log.txt. В случае каких-то ошибок, вы всегда можете открыть файл, либо через файловый менеджер, либо командой sudo nano /home/USER/web/DOMAIN/log.txt

nohup обязательная команда, иначе ваше приложение не поднимется, если сервер упадёт.

Осталось самая малость, а именно запустить скрипт.

Откройте git bash, установленный ранее.

Перейдите в папку с вашим приложением(Заметьте, чтобы в Windows ходить по дискам, используйте команду cd /d/ например)

Введите следующую команду:

Должна начаться запаковка сборщиком maven. Никаких ошибок при сборке быть не должно.

Скрипт попросит два раза ввести пароль от root. В первый раз для копирования, второй раз для развертывания.

После этого, можете открывать web приложение.

Повторюсь, в случае проблем или проверки запуска, логи пишутся /home /USER /web /DOMAIN /log.txt, путь можете настроить сами.

Полезные дополнения и решения проблем с сайтом

После развертывания сайта на виртуальном сервере, к нему доступен вход по IP.

Данная проблема возникает, если неправильно выставлены настройки apache2 и nginx. В данном случае, поисковики будут индексировать сайты и по IP адресу, что нас не устраивает.

Естественное, сохраняем файл.

И добавьте следующие строки перед include ( Не забудьте поменять YOURDOMAIN на ваш домен ):

Данная возвращает наш домен, если пользователь попытается ввести нечто другое, отличное от нашего домена.

Читайте также: