Как установить веб приложение на сервер
Часто ли вам приходится пользоваться сайтами-файлообменниками? А хотите иметь свой собственный файлообменник? В этом руководстве мы изучим, как производится установка и настройка сервера Seafile для.
Как развернуть свое Docker хранилище в Ubuntu 20.04
В данном руководстве мы изучим, как развернуть своё собственное Docker хранилище на сервере, работающем под управлением Ubuntu 20.04. Хранилище Docker представляет из себя приложение, которое.
Хостинг своего сайта при помощи Caddy в Ubuntu 20.04
Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
В данном руководстве мы ознакомимся с установкой PostgreSQL 12, реляционной объекто-ориентированной системой управления базами данных (СУБД). А также, мы проинсталлируем pgAdmin4, инструментарий для работы с.
Как установить MongoDB на CentOS Stream
Как установить Apache Kafka на CentOS Stream
Как установить и использовать ClickHouse на CentOS Stream
Обзор облачного хранения данных в OpenStack Swift
Введение Проект OpenStack Swift предлагает нам программную инфраструктуру для организации облачного хранилища. Данная инфраструктура реализует полную абстракцию логической организации хранения данных от их физического размещения.
Установка OpenStack на одном сервере с Ubuntu 20.04 LTS
Введение В этой статье мы расскажем как быстро развернуть OpenStack на одном сервере Ubuntu 20.04 LTS.Сразу оговорим, что если вам необходимо установить высокопроизводительную и масштабируемую.
Как установить GitLab на CentOS Stream
В данном руководстве рассмотрим то, как установить Gitlab на сервер, работающий под управлением CentOS Stream. Настройка брандмауэра Во-первых, для того, чтобы ваш домен был доступен.
Как установить Node.js на CentOS Stream
Как сбросить пароль пользователя root в СУБД MySQL или MariaDB на ОС Ubuntu 20.04
Введение В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль root от MySQL или MariaDB. Отчаиваться не стоит, так.
Как установить стек LAMP на сервер CentOS Stream
В данном руководстве мы рассмотрим как установить стек LAMP (Linux, Apache, MySQL, PHP) на CentOS Stream, что так же справедливо будет и для CentOS 8.
Как установить Java на CentOS Stream
Этот мануал поможет вам установить Java на CentOS Stream. В ходе рассмотрения предмета статьи мы будем устанавливать две основные последние версии Java. В репозитории CentOS.
Как установить Discourse на Ubuntu 20.04
Вам нужен форум на ваш сайт? Или чат? Или вы хотите управлять рассылками? Вам подойдёт платформа Discourse. Это бесплатный движок с открытым исходным кодом, который.
Как установить LAMP на CentOS Stream
В данном руководстве пойдёт речь о том, как установить LAMP на операционную систему CentOS Stream. Аббревиатурой LAMP называют набор опенсорсного программного обеспечения, который необходимо развернуть.
Как установить веб-фреймворк Django на Ubuntu 20.04
Django – популярная платформа на языке Python. Этот фреймворк используют веб-разработчики для создания сайтов. Он представляет из себя набор компонентов, необходимых для разработки веб-приложений, которые позволяют.
Как установить Java с apt на Ubuntu 20.04
Рассмотрим как установить Java с apt в различных его реализациях, таких как Java Runtime Environment (JRE) и Java Developer Kit (JDK). Небольшая справка: JavaRuntimeEnvironment (JRE).
Как установить MySQL на Ubuntu 20.04
Как установить Node.js на Ubuntu 20.04
Node.js – это кросс-платформенная среда JavaScript с открытым исходным кодом, предназначенная для разработки как серверных, так и сетевых приложений на JavaScript. Изначально, JavaScript можно было.
Как установить phpMyAdmin на Ubuntu 20.04
Это подробная и пошаговая инструкция, как установить и настроить phpMyAdmin. Вам потребуется: Сервер Ubuntu 20.04, который должен иметь пользователя без прав root с правами администратора.
Как перенести сайт WordPress на VPS
Перенести сайт на WordPress с виртуального хостинга на VPS очень просто. С такой задачей сталкиваются многие, когда возникает необходимость в увеличении ресурсов и мощностей для.
Как настроить выделенный сервер CS:GO
Это статья о том как настроить выделенный сервер CS:GO (Counter-Strike: Global Offensive) на виртуальном сервер RUVDS. Свой сервер позволит играть с друзьями и знакомыми через.
Как настроить VPN, используя OpenVPN и Streisand
Эта пошаговое руководство, как настроить VPN на сервере RUVDS с минимальными усилиями. Мы будем настраивать OpenVPN на сервере с Ubuntu 16.04, используя скрипт Streisand. Метод.
Легкая установка WordPress на виртуальный сервер
WordPress представляет собой систему управления сайта с открытым исходным кодом. Для быстрой установки WordPress на VPS с ОС Linux, предлагаем использовать маркетплейс RUVDS с образом.
Быстрая установка и использование Docker в Ubuntu 18.04
Установка торгового терминала MetaTrader 4 (MT4) и торгового робота на виртуальный сервер
Преимущества торговли на виртуальных серверах VPS от RUVDS: Торговый терминал и робот всегда включены и находятся в режиме онлайн на виртуальном сервере. Доступ из любой.
Установка торгового терминала на виртуальный сервер
Преимущества торговли на виртуальных серверах VPS от RuVDS: Вам не нужно все время находиться перед компьютером, VPS сервер всегда находится в режиме онлайн и ваш.
Вот основные шаги, которые мы разберем:
создание виртуальной машины в Azure на основе дистрибутива Linux;
размещение веб-приложения на виртуальной машине;
подключение базы данных в виртуальной машине.
Создание виртуальной машины в Azure на основе дистрибутива Linux
Перейдите на портал Azure, найдите вкладку Virtual Machines (Виртуальные машины) и создайте новую машину. В этом процессе есть несколько важных моментов, которые мы подробно рассмотрим ниже.
Общие настройки
Для начала нужно указать подписку, группу ресурсов и параметры нового экземпляра. На этом этапе мы выберем операционную систему (в нашем случае — Ubuntu Server 20.04) и размер виртуальной машины.
Теперь нужно ввести данные учетной записи администратора — имя пользователя и пароль. Это очень важно, чтобы в дальнейшем получить доступ к нашей машине. Здесь нам предлагают выбрать из двух опций — создать открытый ключ SSH (SSH public key) или придумать пароль. Выбрав вариант с паролем, увидим такую форму:
Дальнейшие настройки
Теперь, когда мы указали основную информацию, можно еще раз проверить все параметры и создать машину. В другом сценарии мы также могли бы указать тип жесткого диска (SSD или HDD), конфигурацию сети, балансировку нагрузки, параметры управления самой машиной и расширениями.
Закончив с настройками, запустите процесс создания машины. Это займет несколько минут.
Когда все готово, перейдем в главный раздел Azure и получим открытый IP-адрес, назначенный нашей виртуальной машине.
В его настройках мы можем выбрать опцию Static (статический) — это значит, что IP-адрес не будет меняться во время перезагрузки виртуальной машины. Мы также можем указать DNS для нашего открытого IP-адреса.
Теперь, когда у нас есть виртуальная машина с Ubuntu Server 20.04, размещенная в Azure, мы можем установить с ней удаленное соединение по протоколу SSH (Secure Shell) через консоль управления.
Запустим следующую команду с именем пользователя (которое мы указали при создании ВМ в Azure), IP-адресом или DNS:
Здесь нужно ввести учетные данные для доступа к машине:
Установка Apache
Для установки Apache мы должны ввести следующие команды:
Учитывая, что порт 80 нашей виртуальной машины открыт, мы можем скопировать ее открытый IP-адрес или DNS и запустить их в браузере. Если Apache установлен правильно, мы увидим его стартовую страницу:
Теперь нам понадобятся модули Apache mod_proxy для выполнения функций обратного прокси-сервера:
В открывшемся диалоговом окне создадим новый профиль публикации типа Folder (Папка) и укажем путь к папке для развертывания файлов:
Теперь опубликуем решение из созданного профиля:
В результате наши файлы будут развернуты в указанной папке:
Мы используем их для выполнения следующей операции на виртуальной машине.
Размещение веб-приложения на виртуальной машине
Настройка сервера Apache
Файлы конфигурации в Apache хранятся в каталоге /etc/apache2/conf-enabled . Чтобы подключиться к виртуальной машине по протоколу SSH, нужно создать для нашего веб-приложения файл .conf . Это можно сделать в текстовом редакторе Nano:
Обратите внимание: вы можете задать нужное вам имя файла.
Содержимое нашего файла DotNetApp.conf будет таким:
Помимо этого, в файле конфигурации DotNetApp.conf мы указали, что к нашему приложению можно получить доступ через порт 80. В таком случае мы можем сменить порт, но важно при этом не забыть сделать то же самое в настройках нашей виртуальной машины в Azure.
Копирование файлов приложения на виртуальную машину
Теперь нужно изменить настройки веб-приложения так, чтобы оно стало доступным через порт 80. Для этого мы копируем файлы, развернутые в Visual Studio 2019, на виртуальную машину. Это можно сделать из каталога /var/.
Теперь выполним передачу файлов. В Windows для этого используется программа WinSCP, которая позволяет подключаться к виртуальным машинам.
Завершив установку и инициализацию WinSCP, создадим на виртуальной машине в Azure новый сеанс с нашими учетными данными.
В папке пользователя по умолчанию создадим новую папку, например App, и скопируем в нее файлы приложения:
Итак, все файлы приложения загружены на виртуальную машину. Далее нужно перенести файлы из каталога /home/azureuser/App в каталог /var/DotNetApp .
Теперь наше веб-приложение полностью размещено на виртуальной машине.
Создание службы для запуска приложения и контроля его работы
Чтобы создать файл службы, который позволит запускать наше веб-приложение, откроем редактор Nano:
В содержимом файла укажем рабочий каталог и файл для запуска веб-приложения.
Запустим созданную службу.
Используя атрибут status , мы можем проверить ее текущее состояние.
Теперь перезапустим сервер Apache и убедимся, что наше приложение работает через порт 80.
Подключение базы данных в виртуальной машине
Для установки PostgreSQL введем следующие команды:
Далее в настройках виртуальной машины в Azure нужно открыть порт 5432 для удаленного доступа к PostgreSQL.
Теперь на Ubuntu Server мы должны внести изменения в файл pg_hba.conf, чтобы разрешить удаленное подключение к PostgreSQL.
Пропишем в секции IPv4 local connections файла pg_hba.conf следующую строку:
Еще один файл, в который мы должны внести изменения, называется postgresql.conf. Эта конфигурация определяет, какие IP-адреса могут удаленно подключаться к PostgreSQL.
Теперь перезапустим службу базы данных.
Установив эти настройки, мы можем создать пользователя для доступа к базе данных, как в этом примере:
Осталось только изменить соответствующие настройки нашей базы данных. Сделав это, мы сможем удаленно подключаться к ней от имени пользователя, которого мы только что создали.
В завершение мы должны установить в нашем веб-приложении новое подключение к базе данных.
Чтобы эти изменения вступили в силу, нужно заменить файлы в каталоге /var/DotNetApp на другие, с новой конфигурацией, и перезапустить соответствующие службы (Kestrel и Apache).
Спасибо за внимание
Спасибо, что прочитали эту статью. Надеюсь, она показалась вам интересной и полезной. Если у вас появились вопросы или идеи, которыми хочется поделиться, я всегда открыт для общения, участия в совместных проектах и обмена опытом.
Гайд больше предназначен для людей, которые только начинают гуглить по всему интернету, как же им выставить своё веб-приложение в интернет, либо столкнулись с трудностями, которые произошли со мной. Ушло не мало времени, чтобы собрать по всему интернету крупицы необходимых настроек для первого запуска. Здесь не будет подробного объяснения тех или иных моментов в виде скриншотов. Считаю, в конкретном случае, они не столь необходимы. Будут показаны некоторые подводные камни, на которые ушло прилично времени. Для людей с базой 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 на ваш домен ):
Данная возвращает наш домен, если пользователь попытается ввести нечто другое, отличное от нашего домена.
Сервер Linux – очень гибкая платформа для разработки и обслуживания контента. Конечно, единственно верного способа обслуживания приложений не существует. Однако есть ряд требований и рекомендаций, выполнение которых обеспечит продуктивную работу программ.
Как правило, веб-приложения основаны на системе управления базами данных (MySQL/MariaDB, PostgreSQL, MongoDB и т.п.). Доступ к контенту такого приложения можно получить при помощи веб-сервера (Apache или Nginx). Динамический контент обрабатывается с помощью серверного языка программирования (PHP, Python, Ruby). Наборы программ, которые обслуживают веб-приложения, называются программными стеками.
Самым традиционным стеком считается LAMP, который включает в себя операционную систему Linux, веб-сервер Apache, СУБД MySQL и язык программирования PHP. Остальные компоненты устанавливаются согласно требованиям приложения. Важным преимуществом программ с открытым исходным кодом является их гибкость и адаптивность.
Чтобы обеспечить поддержку веб-приложения, нужно установить всё программное обеспечение, а затем настроить взаимодействие всех компонентов.
Примечание: В данном руководстве в качестве примера будет использовано веб-приложение MyBB (форум) и система Ubuntu 12.04.
1: Установка стека
Итак, сначала нужно установить все компоненты программного стека.
Примечание: В руководстве используется стек LAMP.
Установка Apache
Веб-сервер Apache будет обслуживать страницы приложения.
sudo apt-get update
sudo apt-get install apache2
Установка MySQL
MySQL – это система управления базами данных, которая отвечает за хранение и систематизацию данных приложения.
Также для работы с данными нужно установить несколько дополнительных библиотек и модулей, с помощью которых компоненты смогут взаимодействовать.
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
После установки СУБД предложит выбрать пароль администратора.
Установка PHP
PHP – серверный язык сценариев. По сути это язык программирования, который выполняет код. Он позволяет генерировать динамический контент на основе запросов пользователя и данных, хранящихся в БД. Чтобы установить PHP, введите:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
2: Настройка стека
Теперь все компоненты программного стека установлены и требуют дополнительной настройки. Настройки по умолчанию почти всегда недостаточно надёжны.
Настройка MySQL
Теперь нужно защитить установку и удалить некоторые небезопасные настройки по умолчанию. Для этого запустите интерактивный сценарий:
Он задаст вам несколько вопросов. Укажите пароль администратора MySQL, выбранный во время установки программы. Затем сценарий предложит изменить этот пароль; если вас устраивает текущий пароль, ответьте no. На остальные вопросы сценария можно просто ответить yes.
Настройка Apache
Теперь нужно настроить веб-сервер Apache. Перейдите в каталог Apache и откройте конфигурационный файл. Нужно настроить веб-сервер для обработки файлов PHP.
sudo nano /etc/apache2/mods-enabled/dir.conf
Найдите в файле директиву DirectoryIndex. Она содержит список поддерживаемых файлов, упорядоченный по приоритетности. Переместите index.php в начало списка:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
После этого нужно перезапустить веб-сервер:
sudo service apache2 restart
Настройка PHP
Для работы простого веб-приложения вполне подойдут стандартные настройки PHP. Однако в некоторых случаях возникает необходимость включить дополнительные функции, отключить некоторые модули и т.п.
sudo nano /etc/php5/apache2/php.ini
Как видите, этот файл очень объёмный.
Иногда с помощью конфигурационных файлов можно оптимизировать работу приложения. К примеру, если вы выполняете какие-то ресурсозатратные вычисления, можно увеличить максимальное количество памяти процесса PHP:
3: Создание БД
Программный стек настроен и готов к работе. Теперь нужно создать БД для хранения данных веб-приложения.
Откройте MySQL. При входе будет запрошен пароль администратора:
Командная строка изменится. Теперь вы можете отправлять команды SQL.
Примечание: SQL – это язык запросов, на котором основана программа MySQL. Он используется для создания, изменения и взаимодействия с данными и с самой программой.
Чтобы систематизировать данные веб-приложения, нужно создать БД. Её имя должно совпадать с именем программы, для которой она предназначена.
CREATE DATABASE mybb;
Примечание: Все команды SQL должны заканчиваться символом точки с запятой.
Затем создайте отдельного пользователя для приложения (в данном случае это форум MyBB).
CREATE USER 'mybbuser'@'localhost' IDENTIFIED BY 'password';
Передайте новому пользователю все права на БД:
GRANT ALL PRIVILEGES ON mybb.* TO 'mybbuser'@'localhost' IDENTIFIED BY 'password';
Теперь нужно сбросить привилегии и закрыть MySQL:
FLUSH PRIVILEGES;
exit
4: Загрузка и настройка веб-приложения
Теперь всё готово к загрузке веб-приложения.
Загрузите исходные файлы во временный каталог в домашнем каталоге. Создайте такой каталог и откройте его:
В этот каталог нужно загрузить файлы приложения. Для этого выполните команду:
Примечание: Если вы устанавливаете другое приложение, замените предложенную ссылку в команде.
Распакуйте загруженный архив:
sudo apt-get install unzip
Эта команда создаст два каталога, Documentation (содержит документацию программы) и Upload (в нём хранятся файлы форума). Переместите каталог Upload в root-каталог веб-сервера:
Теперь веб-сервер имеет доступ к файлам приложения. На данный момент у веб-приложения нет конфигурационных файлов, однако оно предоставляет образец такого файла. Откройте каталог:
Переместите конфигурационный файл:
sudo mv inc/config.default.php inc/config.php
Теперь нужно отредактировать привилегии на некоторые файлы:
sudo chmod a+rw inc/settings.php
sudo chmod a+rw inc/config.php
sudo chmod a+rw cache
sudo chmod a+rw uploads
sudo chmod a+rw uploads/avatars
Теперь приложение MyBB готово к работе.
Многие приложения настраиваются в браузере, и MyBB – не исключение. Чтобы приступить к финальной настройке, откройте ссылку:
На экране появится первая страница настройки приложения.
Все зависимости приложения должны быть отмечены зелёным цветом. Если какого-то компонента не хватает, установите его.
Также во время настройки нужно указать учётные данные БД.
Следуйте инструкциям браузера, чтобы завершить установку приложения.
После этого можно удалить файлы, извлечённые из архива.
sudo rm -r /var/www/forum/install
Чтобы получить доступ к сайту, откройте:
Заключение
Это руководство на примере форума MyBB демонстрирует один из самых распространённых методов установки веб-приложения.
Процесс установки серверной части веб-приложения зависит от веб-сервера, на который она будет установлена.
Серверная часть веб-приложения может быть установлена на веб-сервер Internet Information Services, Apache2 или Apache Tomcat.
В данном разделе содержатся следующие инструкции по установке серверной части веб-приложения:
Установка на Java. Приведён пример установки серверной части веб-приложения на веб-сервер Apache Tomcat, установленный на ОС Linux (RHEL, Ubuntu, Astra Linux, Debian) и ОС Windows.
Установка на Apache2. Приведён пример установки серверной части веб-приложения на веб-сервер Apache2, установленный в Debian-подобных дистрибутивах или Red Hat Enterprise Linux.
Настройка Apache для доступа к ресурсам веб-приложения. Приведён пример ручной настройки веб-сервера Apache2 для работы веб-приложением, установленным на ОС Linux (RHEL, Ubuntu, Astra Linux, Debian) и ОС Windows.
Примечание . При установке веб-сервера установочный пакет на ОС Astra Linux устанавливает по умолчанию Apache2, порт 8109.
Базовые настройки установленного веб-приложения задаются в файле PP.xml. После установки серверной части общую схему взаимодействия веб-приложения с другими компонентами системы можно представить в виде следующей схемы:
При первом обращении из браузера к веб-серверу на компьютер клиента загружаются необходимые файлы веб-приложения и стартовая страница для авторизации пользователя. Веб-приложение считывает настройки из файла PP.xml.
Дальнейший режим работы зависит от считанных настроек:
В разделе <service> указан атрибут PPServiceUrl : всё дальнейшее взаимодействие веб-приложения и BI-сервера осуществляется путём прямых запросов к BI-серверу через точку доступа PP.SOM.Som. Обращение к веб-серверу осуществляется только при необходимости загрузки каких-либо файлов для веб-приложения.
В разделе <service> не указан атрибут PPServiceUrl : все запросы принимаются веб-сервером и перенаправляются серверной части веб-приложения, которая их обрабатывает и формирует запросы BI-серверу. Адрес BI-сервера должен быть указан в атрибуте url в разделе <service> . В зависимости от того, на базе чего построен веб-сервер (Internet Information Services или Apache), используются различные обработчики веб-приложения.
Если задан раздел <proxy> , то все запросы идут на PPService.axd и далее перенаправляются на BI-сервер. Учитывайте особенности, которые определяются типом используемого веб-сервера.
Непосредственно на веб-серверах также может быть настроено перенаправление запросов, которое будет использоваться после обработки запросов серверной частью веб-приложения.
Читайте также: