У меня есть выделенный сервер и домен example.com
. Я разработал три приложения и хочу к каждому приложению, запущенное на одном сервере на разных портах, дать свой поддомен: public
, admin
и по умолчанию
Выглядит это примерно так:
+----------+--------------------+------+-----------------+
| Поддомен | URL | Порт | Приложение |
+----------+--------------------+------+-----------------+
| admin | admin.example.com | 82 | SpringAppAdmin |
| public | public.example.com | 81 | SpringAppPublic |
| - | example.com | 80 | SpringAppMain |
+----------+--------------------+------+-----------------+
Как в Spring Boot прописывать поддомен?
Решил проблему установкой Nginx на сервер.
Ресурсы, которые помогли:
Развертывание приложения Spring Boot на NGINX
Мой сервер работает на Ubuntu 18.04
Устанавливаем Ngninx на сервер
в папке /etc/nginx/sites-available/
создаем файл с вашим сайтом example.com
:
/etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
# Измените назввние сервера
server_name example.com;
#Корень приложения в моем проекте - это /
location /{
# измените порт на ваш
proxy_pass http://localhost:8080/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
server {
listen 80;
listen [::]:80;
# Измените назввние сервера
server_name admin.example.com;
#Корень приложения в моем проекте - это /
location /{
# измените порт на ваш
proxy_pass http://localhost:8081/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
default
, чтобы заменить его нашими настройками nginx:rm /etc/nginx/sites-enabled/default
Отредактируйте конфиг tomcat'a server.xml
, добавьте хосты:
<Host name="admin.example.com" appBase="webapps/SpringAppAdmin" autoDeploy="true">
<Alias>admin.example.com</Alias>
<Context path="" docBase="${catalina.base}/webapps/SpringAppAdmin"/>
</Host>
<Host name="public.example.com" appBase="webapps/SpringAppPublic" autoDeploy="true">
<Alias>public.example.com</Alias>
<Context path="" docBase="${catalina.base}/webapps/SpringAppPublic"/>
</Host>
<Host name="example.com" appBase="webapps/SpringAppMain" autoDeploy="true">
<Alias>example.com</Alias>
<Context path="" docBase="${catalina.base}/webapps/SpringAppMain"/>
</Host>
В данном случае хостам будет все равно на каких внутренних портах крутятся ваши приложения.
Единственное, не забудьте настроить DNS записи вашего домена.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть база данных sqlite, как получить количество содержащихся в ней строк?
Такой вопрос, задача сделать некое подобие таблицы с данными, но количество столбцов должно зависеть от ширины содержимого, вот пример: