Для настройки проксирования входящего трафика на портах 80 и 443 с помощью Nginx, сохраняя зашифрованный трафик, нам нужно использовать конфигурацию обратного прокси-сервера. В этом случае Nginx будет принимать HTTP и HTTPS запросы, а затем пересылать их на соответствующие внутренние веб-серверы без расшифровки.
Вот пример конфигурации Nginx, которая делает это:
1. Убедитесь, что у вас установлен Nginx. Обычно это можно сделать с помощью пакетного менеджера вашего дистрибутива.
2. Откройте файл конфигурации Nginx, обычно это `/etc/nginx/nginx.conf` или файл в папке `/etc/nginx/sites-available/`.
3. Добавьте следующую конфигурацию:
```nginx
server {
listen 80;
server_name your_domain.com; # Замените на ваше доменное имя
# Редирект с HTTP на HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com; # Замените на ваше доменное имя
# Настройки SSL
ssl_certificate /path/to/fullchain.pem; # Замените на путь к вашему сертификату
ssl_certificate_key /path/to/privkey.pem; # Замените на путь к вашему закрытому ключу
location / {
# Прокси для первого веб-сервера
proxy_pass https://dns_name_1:443; # Замените dns_name_1 на адрес вашего первого веб-сервера
proxy_set_header Host $host; # Передаем оригинальный Host
proxy_set_header X-Real-IP $remote_addr; # Передаем IP клиента
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Передаем оригинальный IP
proxy_set_header X-Forwarded-Proto $scheme; # Передаем оригинальный протокол
}
}
server {
listen 443 ssl;
server_name another_domain.com; # Замените на доменное имя для второго веб-сервера
# Настройки SSL
ssl_certificate /path/to/fullchain.pem; # Замените на путь к вашему сертификату
ssl_certificate_key /path/to/privkey.pem; # Замените на путь к вашему закрытому ключу
location / {
# Прокси для второго веб-сервера
proxy_pass https://dns_name_2:443; # Замените dns_name_2 на адрес вашего второго веб-сервера
proxy_set_header Host $host; # Передаем оригинальный Host
proxy_set_header X-Real-IP $remote_addr; # Передаем IP клиента
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Передаем оригинальный IP
proxy_set_header X-Forwarded-Proto $scheme; # Передаем оригинальный протокол
}
}
```
**Обратите внимание**:
- Замените `your_domain.com` и `another_domain.com` на ваши реальные доменные имена.
- Замените `dns_name_1` и `dns_name_2` на IP-адреса или DNS-имена ваших внутренних веб-серверов.
- Убедитесь, что у вас есть действительные SSL-сертификаты для вашего домена. Вы можете использовать Let's Encrypt для получения бесплатных сертификатов.
4. После внесения изменений проверьте синтаксис конфигурации:
```bash
sudo nginx -t
```
5. Если синтаксис верен, перезагрузите Nginx, чтобы применить изменения:
```bash
sudo systemctl reload nginx
```
Теперь Nginx будет принимать входящие запросы на порту 443 и проксировать их на соответствующие внутренние веб-серверы, сохраняя зашифрованный трафик.