下文給大家?guī)?lái),希望能夠給大家在實(shí)際運(yùn)用中帶來(lái)一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來(lái)做一個(gè)解答。
為烏魯木齊等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及烏魯木齊網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、烏魯木齊網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
配置nginx負(fù)載均衡器因會(huì)用到多臺(tái)云服務(wù)器來(lái)進(jìn)行,所以下面我會(huì)用到docker,具體docker的使用請(qǐng)移步docker實(shí)戰(zhàn)
root@ubuntu:~# lsb_release -a #查看系統(tǒng)版本
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
root@ubuntu:~# uname -a #查看系統(tǒng)是多少位
Linux ubuntu 5.3.0-18-generic #19-Ubuntu SMP Tue Oct 8 20:14:06 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
docker版本:
root@ubuntu:~# docker --version #查看docker版本
Docker version 19.03.3, build a872fc2f86
操作系統(tǒng)版本:
[root@57b669db1de1 /]# cat /etc/redhat-release #查看系統(tǒng)版本
CentOS Linux release 8.0.1905 (Core)
[root@57b669db1de1 /]# uname -a
Linux 57b669db1de1 5.3.0-18-generic #19-Ubuntu SMP Tue Oct 8 20:14:06 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
nginx版本:
root@ubuntu:~# nginx -v 查看nginx版本
nginx version: nginx/1.16.1 (Ubuntu)
docker中nginx版本:
[root@57b669db1de1 /]# nginx -v #查看nginx版本
nginx version: nginx/1.14.1
具體nginx的安裝請(qǐng)參考nginx安裝部署
更新軟件包:
root@ubuntu:~# apt-get update
安裝依賴軟件:
root@ubuntu:~# apt -y install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev make gcc
下載nginx:
root@ubuntu:~# wget http:#nginx.org/download/nginx-1.17.6.tar.gz
解壓:
root@ubuntu:/opt# tar zxf nginx-1.17.6.tar.gz
root@ubuntu:/opt# cd nginx-1.17.6/
root@ubuntu:/opt/nginx-1.17.6# ls #列出目錄
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
root@ubuntu:/opt/nginx-1.17.6#
配置:
root@ubuntu:/opt/nginx-1.17.6# ./configure --prefix=/usr/local/nginx
編譯以及部署:
root@ubuntu:/opt/nginx-1.17.6# make && make install
root@ubuntu:/opt/nginx-1.17.6# cd /usr/local/nginx/
root@ubuntu:/usr/local/nginx# ls
conf html logs sbin
啟動(dòng):
root@ubuntu:/usr/local/nginx# ln sbin/nginx /usr/local/sbin/ #創(chuàng)建nginx軟連接,設(shè)置為命令
root@ubuntu:/usr/local/nginx# nginx #啟動(dòng)nginx
root@ubuntu:/usr/local/nginx# netstat -anpl | grep nginx #查看nginx端口是否開啟
root@ubuntu:/usr/local/nginx# lsof -i:80 #查看80端口是否開啟
下載鏡像:
root@ubuntu:~# docker pull registry.cn-beijing.aliyuncs.com/blxt/centos
創(chuàng)建容器并啟動(dòng):
root@ubuntu:~#
root@ubuntu:~# docker run -itd --name nginx1 --privileged registry.cn-beijing.aliyuncs.com/blxt/centos /sbin/init
root@ubuntu:~# docker ps -a #查看容器是否創(chuàng)建并啟動(dòng)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAME
6801d55682a3 registry.cn-beijing.aliyuncs.com/blxt/centos "/sbin/init" 5 minutes ago Up 5 minutes nginx1
相同方法創(chuàng)建第二個(gè)容器:
root@ubuntu:~# docker run -itd --name nginx2 --privileged registry.cn-beijing.aliyuncs.com/blxt/centos /sbin/init
root@ubuntu:~# docker ps -a
root@ubuntu:~#
root@ubuntu:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d31d3fc0ec1 registry.cn-beijing.aliyuncs.com/blxt/centos "/sbin/init" 4 minutes ago Up 4 minutes nginx2
6801d55682a3 registry.cn-beijing.aliyuncs.com/blxt/centos "/sbin/init" 5 minutes ago Up 5 minutes nginx1
連接到容器:
root@ubuntu:~# docker exec -it nginx1 /bin/bash
root@ubuntu:~# docker exec -it nginx2 /bin/bash
[root@6801d55682a3 /]# hostname nginx1 #更改主機(jī)名稱
[root@6801d55682a3 /]# bash #使更改的名稱生效
[root@1d31d3fc0ec1 /]# hostname nginx2
[root@1d31d3fc0ec1 /]# bash
更新軟件包:
[root@nginx1 /]# yum clean all #清空緩存
[root@nginx1 /]# yum makecache #更新軟件包
安裝nginx:
[root@nginx1 /]# yum -y install nginx
[root@nginx1 /]# rpm -qa | grep nginx #查看是否已經(jīng)安裝
啟動(dòng)nginx:
[root@nginx1 /]# systemctl start nginx
[root@nginx1 /]# netstat -anpl | grep nginx #查看nginxnn端口是否開啟
[root@nginx1 /]# lsof -i:80 #查看80端口是否開啟
安裝第二個(gè)nginx使用相同方法即可!此處省略!??!
訪問nginx:
[root@nginx1 /]# curl 127.0.0.1
查看網(wǎng)頁(yè)存在目錄:
[root@nginx1 nginx]# more nginx.conf #查看配置文件
在配置文件中找到下面root行,后面目錄即網(wǎng)頁(yè)文件存放目錄
root /usr/share/nginx/html;
[root@nginx1 html]# cd /usr/share/nginx/html/
[root@nginx1 html]# ls #列出目錄內(nèi)容
404.html 50x.html index.html nginx-logo.png poweredby.png
[root@nginx1 html]# echo nginx1 > index.html #清空nginx主頁(yè)文件內(nèi)容,并重新寫入內(nèi)容為nginx1
nginx2如同,注意不要設(shè)置一樣的主頁(yè)內(nèi)容
訪問nginx:
[root@nginx1 html]# curl 127.0.0.1
nginx1
[root@nginx2 ~]# curl 127.0.0.1
nginx2
nginx1修改內(nèi)容如下:
server {
listen 80;
server_name www.nginx1.com; //設(shè)置域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
nginx2修改內(nèi)容如下:
server {
listen 80;
server_name www.nginx2.com; //設(shè)置域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
要開始使用NGINX Plus或NGINX開源對(duì)一組服務(wù)器的HTTP流量進(jìn)行負(fù)載均衡,使用upstream指令定義該組,該指令放置在http上下文中,proxy_pass指令用來(lái)轉(zhuǎn)發(fā)請(qǐng)求到后端一般指定在loction上下文中
基本配置方法:
http {
upstream nginx { #test為組名
server www.nginx1.com ; #server用來(lái)指定后端服務(wù)器的訪問地址,一般指定域名、ip、端口,域名和ip二選一,端口可忽略
server www.nginx2.com weight=5; #weight指定權(quán)重值
server www.nginx3.com down; #down用來(lái)停止對(duì)此服務(wù)器的轉(zhuǎn)發(fā)
......省略其他配置
}
server{
location / {
proxy_pass http://nginx; #http://nginx為轉(zhuǎn)發(fā)那個(gè)組的后端服務(wù)器
......省略其他配置
}
......省略其他配置
}
}
nginx做負(fù)載均衡官方提供了4種方法,下面逐一介紹這四種方法:
請(qǐng)求在服務(wù)器之間平均分配,同時(shí)考慮了服務(wù)器權(quán)重。默認(rèn)情況下使用此方法(沒有啟用它的指令)
默認(rèn)配置就是Round Robin,配置方法:
http {
upstream nginx { #test為組名
server www.nginx1.com ; #server用來(lái)指定后端服務(wù)器的訪問地址
server www.nginx2.com ; #weight指定權(quán)重值
......省略其他配置
}
server{
location / {
proxy_pass http://nginx; #http://nginx為轉(zhuǎn)發(fā)那個(gè)組的后端服務(wù)器
......省略其他配置
}
......省略其他配置
}
}
將活動(dòng)連接最少的請(qǐng)求發(fā)送到服務(wù)器,也是在考慮到服務(wù)器的權(quán)重問題才設(shè)置的這種方法
配置方法:
http {
upstream nginx { #test為組名
less_conn ;
server www.nginx1.com ; #server用來(lái)指定后端服務(wù)器的訪問地址
server www.nginx2.com ; #weight指定權(quán)重值
......省略其他配置
}
server{
location / {
proxy_pass http://nginx; #http:#nginx為轉(zhuǎn)發(fā)那個(gè)組的后端服務(wù)器
......省略其他配置
}
......省略其他配置
}
}
從客戶端IP地址確定向其發(fā)送請(qǐng)求的服務(wù)器。在這種情況下,可以使用IPv4地址的前三個(gè)八位位組或整個(gè)IPv6地址來(lái)計(jì)算哈希值。該方法保證了來(lái)自同一地址的請(qǐng)求將到達(dá)同一服務(wù)器,除非它不可用。
配置方法:
http {
upstream nginx { #test為組名
ip_hash ;
server www.nginx1.com ; #server用來(lái)指定后端服務(wù)器的訪問地址
server www.nginx2.com ; #weight指定權(quán)重值
......省略其他配置
}
server{
location / {
proxy_pass http://nginx; #http:#nginx為轉(zhuǎn)發(fā)那個(gè)組的后端服務(wù)器
......省略其他配置
}
......省略其他配置
}
}
向其發(fā)送請(qǐng)求的服務(wù)器是根據(jù)用戶定義的鍵確定的,該鍵可以是文本字符串,變量或組合。
配置方法:
http {
upstream nginx { #test為組名
hash $request_uri consistent;
server www.nginx1.com ; #server用來(lái)指定后端服務(wù)器的訪問地址
server www.nginx2.com ; #weight指定權(quán)重值
......省略其他配置
}
server{
location / {
proxy_pass http://nginx; #http://nginx為轉(zhuǎn)發(fā)那個(gè)組的后端服務(wù)器
......省略其他配置
}
......省略其他配置
}
}
看了以上關(guān)于nginx跨多個(gè)應(yīng)用程序?qū)嵗呢?fù)載均衡介紹,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。
文章名稱:nginx跨多個(gè)應(yīng)用程序?qū)嵗呢?fù)載均衡介紹
本文URL:http://redsoil1982.com.cn/article44/gjpihe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、App開發(fā)、外貿(mào)建站、虛擬主機(jī)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)