Вы можете использовать Nginx как обратный прокси-сервер для направления запросов на два отдельных веб-приложения на заданном порту. Примерно так вы можете настроить SSL и использовать Nginx для проксирования поддоменов на два разных приложения на одном сервере:
1. Установите NGINX:
```
sudo apt-get update
sudo apt-get install nginx
```
2. Создайте два конфигурационных файла, каждый для своего приложения, в `/etc/nginx/sites-available`
Файл `/etc/nginx/sites-available/app1`
```
server {
listen 443;
server_name app1.example.com;
ssl_certificate /etc/nginx/ssl/app1.pem;
ssl_certificate_key /etc/nginx/ssl/app1.key;
location / {
proxy_pass http://localhost:3000; # URL к вашему приложению с портом
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
Файл `/etc/nginx/sites-available/app2`
```
server {
listen 443;
server_name app2.example.com;
ssl_certificate /etc/nginx/ssl/app2.pem;
ssl_certificate_key /etc/nginx/ssl/app2.key;
location / {
proxy_pass http://localhost:4000; # URL к вашему приложению с портом
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
3. Сделайте эти конфигурации доступными:
```
sudo ln -s /etc/nginx/sites-available/app1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/app2 /etc/nginx/sites-enabled/
```
4. Проверьте наличие ошибок в конфигурации и перезапустите NGINX:
```
sudo nginx -t
sudo systemctl restart nginx
```
Этот пример предполагает, что вы используете поддомены app1.example.com и app2.example.com и ваши приложения слушают 3000 и 4000 порты соответственно. Если в вашем случае другой адрес или порт - просто замените их в приведенном примере. Также будьте уверены, что указали правильные пути k .pem и .key файлам для SSL сертификатов.
Убедитесь, что в вашем конфигурационном файле отсутствуют настройки для reverse proxy. Если они есть, то нужно их удалить, чтобы избежать конфликтов. Кроме того, у вас возможно проблема с прослушиванием порта 443 на всех IP-адресах. Рекомендуется проверить и исправить эту проблему. Также обратите внимание, что аргумент "backlog=4096" должен быть указан только один раз в разделе "listen ...;". Использование ".include .../custom/certbot" также должно быть указано только один раз. Если необходимо, скопируйте его содержимое и вставьте в каждый файл "domainN.conf". Кроме того, проверьте наличие расширений у файлов, возможно, они отсутствуют.
Убедитесь, что в вашем конфигурационном файле есть настройки reverse proxy. В противном случае может возникнуть ошибка. Также стоит проверить, не пытаетесь ли вы прослушивать порт 443 дважды для всех IP адресов. Напомню, что аргумент "backlog=4096" следует указывать только один раз в блоке "listen ...;". Если вы используете файл включений ".include .../custom/cerbot", удостоверьтесь, что он указан только один раз. Еще стоит убедиться, что файлы имеют правильные расширения.