今天無聊,把上幾天本身測試的nginx做反向代理負載均衡的步驟記錄下來,以供學習記錄。
反向代理,我我的理解是經過一臺反向代理服務器,把客戶端的把有請求按照必定的規則分發給後臺的服務器。nginx做反向代理服務器的虛擬機配置以下:html
upstream itest { #正常狀況下應該做以下配置 #server 192.168.20.1:80; # 應用服務器1 #server 192.168.20.2:80; # 應用服務器2 #因爲我只有一臺測試的服務器,因此ip同樣,用端口做區別 #一、按照權重大小分配服務器輪詢機率,若是全不指定weight則按時間逐個輪詢 server 127.0.0.1:7749 weight=3; server 127.0.0.1:8864 weight=5; server 127.0.0.1:9981; #默認weight爲1 #二、根據ip_hash分配服務器,每一個ip固定訪問一臺服務器,可解決session問題,但一般session問題一般都是寫入固定memcached或redis服務器來解決的。 ip_hash; server 127.0.0.1:7749; server 127.0.0.1:9981; #三、fair根據響應時間分配,好像要第三方插件支持 #四、url_hash根據url分配,好像也須要第三方插件支持 } server { listen 80; server_name itest.com; location / { proxy_pass http://itest; } }
然後臺的服務器,能夠是nginx、apache、tomcat等,例如server 127.0.0.1:9981爲nginx服務器,則其虛擬機最簡配置以下:nginx
server { listen 9981; root /sites/itest/9981; #9981爲文件夾,由於爲了模擬多臺服務器上,因此以路徑名做區分 index index.html; }
若是server 127.0.0.1:7749爲apache服務器,其最簡配置以下redis
<VirtualHost *:7749> DocumentRoot /sites/itest/7749 </VirtualHost>
測試時,只要在/sites/itest/{7749|8864|9981}目錄下添加不一樣內容index.html,訪問看到不一樣itest.com正常會看到不一樣的index.html內容。
概念問題:我理解的反向代理與負載均衡以前的關係是,反向代理是實現負載均衡的一種方法; 但看到網上一些說法是,反向代理與負載均衡是一個意思; 還有就是反向代理會緩存一些靜態資源,更快,而負載均衡會直接訪問後臺服務器,不會緩存。望看到知道的好人大神們給評一下兒,其它有什麼不對的也但願指點一下apache