Порт 80 — это привилегированный порт, и если он уже занят nginx, то запустить другой бинарник, который пытается забиндить этот же порт, напрямую не получится.
Бинарник пытается забиндить порт 80, но он уже занят nginx. Как запустить этот бинарник?
Порт 80 — это привилегированный порт, и если он уже занят nginx, то запустить другой бинарник, который пытается забиндить этот же порт, напрямую не получится.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Порт 80 — это привилегированный порт, и если он уже занят nginx, то запустить другой бинарник, который пытается забиндить этот же порт, напрямую не получится.
Варианты решения:
- Изменить порт у бинарника — если возможно, запустить его на другом порту, например 8080.
- Перенастроить nginx — сделать nginx прокси, который будет слушать 80 порт и проксировать запросы на порт, где работает бинарник.
- Остановить nginx — если nginx не нужен, остановить его, чтобы освободить порт.
- Использовать iptables или firewall для перенаправления портов — например, перенаправить трафик с 80 порта на порт бинарника.
- Запуск бинарника с правами root (если он требует привилегий для bind на 80) — но это не решит проблему, если порт уже занят.
Пример перенастройки nginx для проксирования:
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
Таким образом, nginx слушает 80 порт, а бинарник — 8080, и nginx проксирует запросы.