LINUX.ORG.RU
решено ФорумAdmin

Запуск nginx после получения IP через pppoe после перезагрузки сервера

 , ,


0

3

Debian 12

Проблема в том, что сейчас nginx стартует (пытается) до получения выделенного IP через pppoe, а в настройке хостов стоит данный IP и соответственно nginx не стартует.

В общем, как сделать так, чтобы сначала сетевой интерфейс получал IP через pppoe, а только потом стартовал nginx.

Пробовал сделать через rc-local, но он тоже выполняется до получения IP через pppoe…


Ответ на: комментарий от unigen

только что проверил - не работает! Указываю реальный адрес сайта - работает, указываю «всю сеть» - фейл.

На сервере крутиться Apache [80] и nginx [443].

proxy_pass http://185.55.55.55;

Я ни на что не намекаю, но ты сам отстрелил себе обе ноги, раскладывая грабли. Два конфликтующих вебсервера не избыточно, а дефолтный листен непозволительная роскошь 🤡

MagicMirror
()
Последнее исправление: MagicMirror (всего исправлений: 3)
Ответ на: комментарий от unigen
    location / {
            proxy_pass http://185.55.55.55;
            proxy_http_version 1.1;
            proxy_redirect http://185.55.55.55/ /;

Зачем ты делаешь proxy_pass на http? Это ты так хитро делаешь редирект с http на https?

server {
    listen 80;
    server_name server.ru;
	
    root /var/www/html;
	
    location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ /index.php?$args;

                try_files $uri $uri/ /index.html =404;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;
   
    if ($scheme != "https") {
      return 301 https://$host$request_uri;
    }
}

В большинстве случае достаточно описать одну секцию server, в ней описать нужные location и в этой же секции указать listen 80 для 80 порта и listen 443 ssl, в этой же секции указать сертификаты и прописать условие редиректа с http на https.

anonymous
()
Ответ на: комментарий от unigen

Вы же понимаете, что слушать всю сеть - это избыточность?

Просто интересно - ssh ты тоже перевешал на нужный интерфейс? Избыточность это настраивать то, что не имеет смысла. Если бы тебе нужно было запустить два разных приложения на двух разных интерфейсах, тогда в этом всём был бы смысл (хотя и в этом случае проще запустить один nginx и разрулить через реверс-прокси). А так - ну хозяин барин, как говорится. Я бы так не делал.

Если всё же настаиваешь - посмотри на sysctl net.ipv4.ip_nonlocal_bind. Он позволяет биндить сокет к адресу, которого ещё нет.

vbr ★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от MagicMirror

Мда, господа теоретики…

Да, крутится и Apache, и nginx, и о чудо - они не конфликтуют, а работают как надо, каждый выполняя свои задачи!

Вам, наверно, даже нужно объяснить зачем нужно два сервера? И рассказать то, что nginx не умеет всего того, что умеет Apache?

Грабли раскидываете вы - был задан конкретный вопрос, дан простой совет, вопрос решен.

Ваши предложения не работают, точка. Чтобы заработали ваши предложения нужно переписывать конфиги системы, сервисов и серверов… вот это действительно бред. Развлекайтесь на своих серверах.

unigen
() автор топика
Ответ на: комментарий от unigen

Вы же понимаете, что слушать всю сеть - это избыточность?

Писать лишние конфиги и усложнять решения - это избыточно.

Вы очень токсичны, показывайте ЧСВ в другом месте…

Где ты токсичность увидел? Я тебе дельный совет дал - не понимаешь как оно все работает, путь сделают те кто понимает, а ты им просто деньги заплати и радуйся жизни.

PRN
()
Последнее исправление: PRN (всего исправлений: 1)
Ответ на: комментарий от unigen

Мда, господа теоретики…

Что еще остается, когда ты схватился за единственное «верное» решение и с задраным носом отказываешься рассматривать любые другие?

Ты не принес никакой диагностики кроме «так не работает, идиоты!!!11!», а судя по тому что ты принес - тебе вообще nginx не нужен, ибо апач сам ssl умеет.

Пришел на форум за советом, а вместо ответа на наводящие вопросы начал объяснять как тут все не правы. Зачем приходил вообще?

MagicMirror
()
Ответ на: комментарий от unigen

Вам, наверно, даже нужно объяснить зачем нужно два сервера? И рассказать то, что nginx не умеет всего того, что умеет Apache?

Кстати, попробуй, возможно будет весело))

Чтобы заработали ваши предложения нужно переписывать конфиги системы, сервисов и серверов…

Если решения простой проблемы нужно столько, то у тебя там эпичный колхоз.

PRN
()

Если nginx нужен только для терминации ssl, то я бы задумался о его необходимости.

Что мешает сделать proxy_pass в том же apache?

Единственное, что нужно - это разобраться с тем, как web-сервер определяет какому виртуальному серверу передать запрос.

У apache и nginx отличается конфигурирование дефолтного веб сервера.

vel ★★★★★
()