Обратный прокси-сервер nginx SSL
Цели:
- Иметь один обратный прокси-сервер nginx для всех дочерних сайтов (работающих на других портах).
- ЗАБЛОКИРУЙТЕ все прямые соединения и вместо этого маршрут через nginx.
Проблема (ы):
502 gateway errors
при попытке доступаhttps://www.example.com/site1/
(ошибка подключения () (111: подключение отклонено) при подключении к восходящему каналу)
Настройка:
- example.com работает на порту 80 (nginx).
- site1 и site2 работают на портах 8001 и 8002 соответственно.
Конфигурация nginx:
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream site1 {
server 127.0.0.1:8001;
}
upstream site2 {
server 127.0.0.1:8002;
}
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
gzip on;
access_log on;
log_not_found on;
error_log /var/log/nginx/error.log error;
server_name example.com www.example.com;
charset UTF-8;
root /var/www/html;
error_page 404 /404.html;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.key;
location /site1/ {
proxy_set_header X-Original-Request $request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://site1;
}
location /site2/ {
proxy_set_header X-Original-Request $request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://site2;
}
}
}
Столкнулся с несколькими проблемами, связанными с настройкой моего обратного прокси-сервера nginx. Любая помощь в этом отношении высоко ценится. Большое спасибо.
1 ответ
Заблокируйте все прямые подключения к порту 8000/8001:
- Закройте брандмауэр для портов 8000/8001 с помощью IPtables/firewalld/ufw
- Запретите любые внешние IP-адреса для доступа к вашему контенту 8000/8001 (запросы от nginx будут поступать от localhost).
Тогда вы говорите: "У меня есть несколько проблем". Не совсем понятно, что это за проблемы. Я предполагаю, что ваши приложения хотят запускаться на /, а вы пытаетесь запустить их на /site1 и /site2. Убедитесь, что ваши приложения позволяют вам запускать их на соответствующих URI.