I have an nginx server acting as a load balancer for my apache servers. I am using subdomains and my code relies on the HTTP_HOST value to perform the correct task.

When i make a request to say: http://get.example.com once it is forwarded the HTTP_HOST on apache becomes example.com.

My question is how do I make it stay the same as the original request?

Here is my nginx config:

upstream example.com {
  server weight=2;
  server weight=1;
  server weight=1;

server {
  listen 80;
  location / {
    proxy_pass  http://example.com;

I tried adding multiple proxy_pass, one for each subdomain and it doesn't seem to work.


You need to pass along the HTTP Host header. Add this to the relevant location:

proxy_set_header Host $host;
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.