Saya memiliki situs yang berfungsi sebagai penyeimbang beban. Situs A.
Saya memiliki situs lain yang hanya dapat memiliki satu domain. Jadi jika saya hanya mengarahkan ulang ke mereka dikatakan nama host tidak ditemukan.
Jadi jika saya secara manual mengatur tajuk ke sesuatu maka hanya situs itu yang muncul.
Bagaimana saya bisa mengatur proxy_set_header Host xxxx
ke alamat server yang dipilih. Dengan cara ini setiap permintaan pengubahan rute akan memiliki header host yang berbeda dan sesuai.
Ini tidak akan menjadi masalah jika 2 situs saya yang lain dapat bekerja berdasarkan url dan bukan header host.
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;
}
}
}
$server_addr
entah bagaimana 127.0.0.1 mengapa ??www.asd.com:80
dipilihif(server1) than host = a;
,if(server2) than host = b;
Jawaban:
Anda perlu mengatur header ke variabel host yang masuk, seperti yang didokumentasikan di sini :
sumber
This variable is equal to line Host in *the header of request* or name
yang berarti apa pun yang dikatakan klien / browser, itulah yang dipilih.Jawaban untuk pertanyaan ini menjelaskan perilaku ini dan menawarkan solusi .
Pada dasarnya, tajuk sudah diperbaiki dengan baik sebelum hulu dipilih. Jika Anda tidak dapat membuat semua upstream menanggapi satu Host: header, Anda harus memperbaiki upstream pada saat yang sama ketika Anda mengatur header.
sumber