譯序
Nginx 的負(fù)載均衡配置看上去很簡單。以下是 Nginx 官方給的一個簡單的負(fù)載均衡的例子:
http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http://myproject;
}
}
}
關(guān)于負(fù)載均衡
負(fù)載均衡是一種用于在幾個虛擬專用服務(wù)器分配應(yīng)用程序的傳入流量的機(jī)制。被分配到多臺機(jī)器的處理機(jī)制,確保容錯和高度穩(wěn)定。負(fù)載均衡的循環(huán)算法將訪問發(fā)送到一組 IP 中。沒有考慮更多比如服務(wù)器響應(yīng)時間以及訪問者的地理區(qū)域等細(xì)節(jié),在很容易實現(xiàn)的基本層面上進(jìn)行循環(huán),分發(fā)服務(wù)器負(fù)載。
設(shè)置
本教程中的步驟要求用戶在你的 VPS 中具有 root 權(quán)限。你可以在用戶指南中查看如何設(shè)置。
在設(shè)置 Nginx 負(fù)載均衡之前,你得先把 Nginx 安裝在你的 VPS 上。你可以使用 apt-get 命令進(jìn)行快速安裝:
sudo apt-get install nginx
Upstream 模塊
我們需要使用 upstream 模塊來設(shè)置一個循環(huán)試負(fù)載均衡。我們將把這些配置包含到 Nginx 的設(shè)置中去。
然后打開你的網(wǎng)站配置(在我的例子中我只演示一下一般默認(rèn)虛擬主機(jī)):
nano /etc/nginx/sites-available/default
我們將會把負(fù)載均衡配置加入到這個文件中去。
首先我們需要將 upstream 模塊包含進(jìn)來,類似于這個:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
然后我們在(Nginx 的)其他配置中引用該模塊:
server {
location / {
proxy_pass http://backend;
}
}
重啟 Nginx:
sudo service nginx restart
一旦你的所有虛擬專用主機(jī)全部就緒,你會發(fā)現(xiàn)負(fù)載均衡器開始將訪問流量平均地分配到那些鏈接主機(jī)上。
指令
以上部分介紹了如何將負(fù)載平均分配到一些虛擬主機(jī)上去。但是,會有一些原因?qū)е逻@不是最有效的處理數(shù)據(jù)的方法。我們可以使用一些指令來使我們的應(yīng)用更加高效。
Weight
一種更精密地分配用戶到各個主機(jī)上的方法就是為某些機(jī)器指定權(quán)重。Nginx 允許我們分配一個數(shù)字來說明需要轉(zhuǎn)發(fā)到每個服務(wù)器的流量的比例。
一個具有服務(wù)器權(quán)重的負(fù)載均衡設(shè)置如下:
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
}
默認(rèn)權(quán)重為 1。權(quán)重為 2 的 backend2.example 會被發(fā)送 backend1 的兩倍的流量,而權(quán)重為 4 的 backend3 則將會處理 backend2 流量的兩倍相當(dāng)于 backend1 流量的四倍的流量。
Hash
IP 散列允許主機(jī)根據(jù)用戶的 IP 地址來響應(yīng)客戶端,將用戶的每次訪問分發(fā)給同一臺 VPS(除非該臺主機(jī)已經(jīng) down 掉)。如果一臺主機(jī)被認(rèn)為是不活躍的,它將被標(biāo)記為 down 掉。所有應(yīng)該路由到這臺 down 掉的主機(jī)的 IP 將會被轉(zhuǎn)發(fā)到另一臺替代主機(jī)上去。
下面的配置提供了一個示例:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
}
Max Fails
根據(jù)默認(rèn)的循環(huán)負(fù)載設(shè)置,Nginx 將會持續(xù)地向 VPS 主機(jī)發(fā)送數(shù)據(jù),即使這些主機(jī)沒有任何響應(yīng)。失敗次數(shù)可以自動通過呈現(xiàn)一段時間內(nèi)無響應(yīng)的主機(jī)來防止這種情況。失敗次數(shù)具有兩個要素:max_fails 和 fall_timeout。
max_fails 指示出在這臺主機(jī)被認(rèn)為是不活躍狀態(tài)之前連接到這臺主機(jī)時出現(xiàn)的失敗次數(shù)。
fail_timeout 指示出這臺主機(jī)被認(rèn)為不活動的狀態(tài)的持續(xù)時間。一旦時間到了,Nginx 會重新嘗試連接該主機(jī)。默認(rèn)超時值為 10 秒鐘。
一個配置示例:
upstream backend {
server backend1.example.com max_fails=3 fail_timeout=15s;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
更多
以上是關(guān)于簡單的循環(huán)負(fù)載均衡的一個簡短概述。此外,還有另外一些加速和優(yōu)化單臺服務(wù)器的方法:
原文鏈接:https://www.digitalocean.com/community/articles/how-to-set-up-nginx-load-balancing。
配置本地路徑時:如果訪問g:/a/b.gif這個文件夾。
配置為:
location /a{
root g:/;
}
附自己的配置文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#gzip on;
server {
listen 8106;
server_name localhost;
location /fe {
root g:/;
}
location / {
proxy_pass http://192.168.2.106:80/;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
location /8080 {
proxy_pass http://192.168.2.106:80/;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
location /register {
proxy_pass http://127.0.0.1:8081/register;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
server {
listen 8081;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
}
分享名稱:nginx代理服務(wù)器
文章轉(zhuǎn)載:http://www.rwnh.cn/article38/cgcgsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站、定制開發(fā)、用戶體驗、定制網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)