Configure different target based on incoming domain in NGINX
NGINX can divert incoming request to different server based on domain name given in browser.
Usage
If there are a few application, such as 192.168.1.1 for faq.example.com, 192.168.1.2 for www.example.com, etc.
Configuration
Following configuration can be used for diverting request for faq requests.
server {
server_name faq.example.com;
# SSL configuration
listen 443 ssl;
ssl_certificate conf.d/www.example.com.crt;
ssl_certificate_key conf.d/www.example.com.key;
location / {
proxy_pass 'https://192.168.1.1:443';
proxy_http_version 1.1;
proxy_buffering off;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Proxy "";
}
client_max_body_size 64M;
}
server {
listen 80;
server_name faq.example.com;
return 301 https://$host$request_uri;
}