創業公司嘛,項目多,基本上每個項目都有自己的域名,自己的獨立入口。
考慮到成本和可管理型,打算把大多數小型業務集中起來,通過同一台nginx集中轉發流量,既節約了成本也可以集中控制入口流量。目前由兩種方案都在執行,nginx直接反代,nginx + ali lvs,分別講一下這兩種工作方式的優、缺點。
- nginx 反代后端業務服務器
由於使用nginx集中反代其他的內網web服務器流量,所以一旦需要修改某個項目的配置,就需要重啟整個nginx服務,這樣會造成nginx頻繁重啟。
服務器配置代碼:
server { listen 80; server_name test.tinman.cn; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://url.tinman.cn; proxy_intercept_errors on; } }
這樣,通過 headers 中的 "X-Real-IP"即可輕松獲取用戶的真實IP
- nginx + ali lvs
但如果想要整體更高的可用性、項目獨立性呢?那配合雲服務商提供負載均衡吧,現在通過阿里負載均衡作為示例講解。
還是把各種雜項web項目掛載到nginx,作為項目的總入口,但是 proxy_pass 的參數則為阿里負載負載均衡的地址和端口,這樣的話,nginx只負責接收請求並根據不同的域名轉發到不同的負載均衡上,倘若某個項目發生變化,只需要修改對應負載均衡的配置即可。提高nginx的可用性。
如果需要獲取用戶的真實IP,則通過headers中的"HTTP_X-Real-IP"即可輕松獲取
