如題,Nginx Upstream的配置能否跨機(jī)房設(shè)定為外網(wǎng)IP。
親測是可以的,但是不知道實(shí)際環(huán)境會(huì)有什麼問題。
Nginx upsteam做前端代理的時(shí)候是長連接,可能會(huì)因?yàn)榫W(wǎng)路不好什麼的出問題。
請問有這方面使用或經(jīng)驗(yàn)的同學(xué)可以回答下麼?
認(rèn)證0級(jí)講師
我的網(wǎng)站是跨機(jī)房的,一臺(tái)nginx做反向代理,真正的web伺服器在另外一個(gè)機(jī)房
做反向代理的nginx配置大概是這樣:
upstream real.sites {
server 123.123.123.123;
// 用keepalive保存長連接,降低頻繁創(chuàng)建連接的開銷
keepalive 16;
}
proxy_cache_path /path/to/cache levels=1:2 keys_zone=static_cache:100m;
server {
server_name www.example.com;
// 把真正的IP地址放到header的X-Forwarded-For里面
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_next_upstream http_503;
// 把靜態(tài)資源緩存起來,減少服務(wù)器間數(shù)據(jù)傳輸
location ~ \.(css|js|jpg|png|gif|ico)$ {
proxy_cache static_cache;
proxy_pass http://real.sites;
}
location / {
proxy_pass http://real.sites;
}
}
這種部署方式受機(jī)房間網(wǎng)路品質(zhì)的影響比較大,如果機(jī)房網(wǎng)路給力就妥妥的,nginx本身倒沒有製造過什麼麻煩。
其實(shí)varnish應(yīng)該比nginx更適合做這個(gè),奈何我不熟悉varnish,乾脆就用nginx搞了。