Nginx и upstream, как да деактивирате upstream интернет маркетинг форум
клиенти, които прокси трафик към своите сайтове през сървъра, всичко изглежда наред, но има проблем с "upstream", например, добавих друг сайт към конфигурацията и се опитвам да рестартирам nginx, в отговор получавам:Тестване на nginx конфигурация: nginx: [emerg] host not found in upstream
Тоест, един от сайтовете на клиента е временно недостъпен, не мога да премахна временно неработещата конфигурация, също не мога да добавя нов сайт, защото за това трябва да премахна неработещата конфигурация, как да принудя nginx да не проверява сайтовете за наличност с proxy_pass?
какво означава - не мога да премахна временно неработеща конфигурация? #proxy_pass http://www.site:80 е достатъчно; #и всичко останало, от което нямате нужда
той пак не оре - прави каквото искаш
Е, сега не оре, след 10 минути сайтът на клиента ще работи, но сървърът ми ще даде вместо сайта на клиента сървърен файл, тъй като изтрих конфигурацията за този сайт, така че сайтът на клиента да се показва, трябва да добавя обратно конфигурацията, която изтрих, и да рестартирам nginx, но по време на рестартирането друг сайт не работи и така нататък в кръг, така че тази опция не е подходяща. Имам нужда от опция, при която можете да рестартирате nginx, независимо дали клиентският сайт работи или не.
Намерих директивата „proxy_next_upstream“, но няма ясни инструкции как да я използвам както винаги.
Sysoev казва, че можете да използвате IP вместо име.
PS. Не съм запознат с проблема, но очевидно, ако използването на IP вместо име помага, тогава проблемът е в решението? Може ли след това да предостави резолюция по някакъв начин (/etc/hosts например)?
Добре, тогава ще го обясня по различен начин.
Наемам сървър във vps-hosting.lv, нека го наречем server_01 Има 100 клиента, всеки проксира своите сайтове през server_01, но техните сайтове са на техните сървъри, тоест да кажем, че sait_01 е на server_02, а sait_02 е на server_03 и т.н.
Когато добавя нов клиентски сайт към конфигурацията на server_01, той изглежда нещо подобно: server location / proxy_pass http://www.sait_105:80; proxy_set_header Хост www.sait_105.ru; включете /etc/nginx/location.conf;>>
Самият Sait_105 не се намира на сървър_01, а на сървър_90 и през сървър_01 се проксира само. Когато добавих нова конфигурация, рестартирам nginx, така че вместо пънче за sait_105 се показва дадената, намираща се на server_90. Но когато рестартирам nginx, да кажем, че сървърът на един от клиентите, наречен server_85, не работи (рестартиран, под doss атака и т.н. и т.н.). Това означава, че за да рестартирате nginx, трябва да изтриете конфигурацията на клиента server_85, но когато потребителите отидат на sait_85, те ще видят файлът server_01 вместо данните от server_85, тъй като няма да има конфигурация за sait_85.
------------------------Като цяло не е това въпросът, няма значение за какво и т.н., важният въпрос е как да рестартирате nginx, ако има конфигурация: