로드 밸런서로 작동하는 사이트가 있습니다. 사이트 A.
하나의 도메인 만 가질 수있는 다른 사이트가 있습니다. 따라서 방금 리디렉션하면 호스트 이름을 찾을 수 없습니다.
따라서 수동으로 헤더를 설정하면 해당 사이트 만 표시됩니다.
proxy_set_header Host xxxx
선택한 서버 주소로 설정하는 방법 이렇게하면 각 재 라우팅 요청에 서로 다른 호스트 헤더가 달라집니다.
다른 두 사이트가 호스트 헤더가 아닌 URL을 기반으로 작동 할 수 있다면 문제가되지 않습니다.
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
error_log logs/error.log debug;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream myapp1 {
#server localhost:3333;
server www.asd.com:80;
}
server {
listen 80;
location / {
proxy_set_header Host $upstream_addr; // should become somehow www.asd.com right now this code doesn't work
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://myapp1;
}
}
}
서버
—
Muhammad Umer
www.asd.com:80
를 선택할 때 호스트 헤더가 www.asd.com이되기를 원합니다
또는 작성하는 방법이 있는지
—
무하마드 Umer
if(server1) than host = a;
,if(server2) than host = b;
내 생각에 적절한 호스트 헤더는 클라이언트로부터 얻는 것이 무엇이든해야합니다. 클라이언트가 www.asd.com을 요청하면 호스트 헤더가됩니다. 이렇게하면 필요할 때 백엔드에서 절대 URL을 올바르게 생성하고 쿠키 등을위한 적절한 도메인을 설정하는 데 도움이됩니다.
—
Florin Asăvoaie
클라이언트와 중간 서버 모두 나입니다.
—
Muhammad Umer
$server_addr
어떻게 든 127.0.0.1입니까?