
一、nginx概要
1、甚么是Nginx
Nginx 是款操控性的 http 伺服器/逆向全权伺服器及电电子邮件(IMAP/POP3)全权伺服器。由白俄罗斯的流程雕塑家吉斯·什涅(Igor Sysoev)所合作开发,官试验 nginx 能撑 5 万mammalian镜像,因此cpu、缓存等天然资源耗用却常低,运常平衡。
Nginx应情景:
1、http 伺服器。Nginx 是个 http 服务项目能独提供更多 http 服务项目。能做动态服务器。
2、应用软件。 能同时实现在台伺服器交互式出数个站。比如个站使的应用软件。
3、逆向全权,阻抗平衡。当站的用户数量达至定某种程度后,DF93伺服器无法满户的允诺时,须要几台伺服器软件产业能使 nginx 做逆向全权。因此几台伺服器能平均值分摊阻抗,无法即使某台伺服器阻抗无法访问某台伺服器空置的情形。
二、Nginx安装
1、搜索nginx镜像
docker search nginx
2、拉取nginx镜像
docker pull nginx
3、创建容器,设置端映射、录映射
# 在/root录下创建nginx录于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf件,粘贴下内容
vim nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024; }
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main $remote_addr – $remote_user [$time_local] “$request”
$status $body_bytes_sent “$http_referer”
“$http_user_agent” “$http_x_forwarded_for”;
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
~/nginx/conf.d/80.conf
server {
listen 80; # 监听的端
server_name localhost; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/html;# 根录
index index.html index.htm; # 默认
}
error_page 500 502 503 504 /50x.html; # 错误
location = /50x.html {
root html;
}
}
#docker容器创建挂载
docker run -id –name=c_nginx \
-p 80:80 \
-p 81:81 \
-p 82:82 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
1、-p 80:80:将容器的 80端映射到宿主机的 80 端。
2、-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前录下的/conf/nginx.conf 挂载到容器的 /etc/nginx/nginx.conf配置录
3、-v $PWD/logs:/var/log/nginx:将主机当前录下的 logs 录挂载到容器的/var/log/nginx志录
三、Nginx动态站部署
1、动态站的部署
将/资料/动态/index录下的所有内容 上传到伺服器的/usr/local/nginx/html下即可访问
2、 配置应用软件
nginx应用软件,也叫“站空间”,就是把台运在互联上的物理伺服器划分成数个“交互式”伺服器。交互式主
机技术极的促进了络技术的应和普及。同时应用软件的租服务项目也成了络时代的种新型经济形式。
2.1、端绑定
1)上传动态站:
将/资料/动态/index录上传 /usr/local/nginx/index下
将/资料/动态/regist录上传 /usr/local/nginx/regist下
2)修改Nginx 的配置件:~/nginx/config.d/port.conf
server {
listen 81; # 监听的端
server_name localhost; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/index;# 根录
index index.html index.htm; # 默认
}
error_page 500 502 503 504 /50x.html; # 错误
location = /50x.html {
root html;
}
}
server {
listen 82; # 监听的端
server_name localhost; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/regist;# 根录
index regist.html; # 默认
}
error_page 500 502 503 504 /50x.html; # 错误
location = /50x.html {
root html;
}
}
3)访问试验:
地址栏输http://你的交互式机IP/:81 能看到
地址栏输http://你的交互式机IP/:82 能看到注册
三、Nginx逆向全权与阻抗平衡
1、逆向全权
1.1、甚么是逆向全权
逆向全权(Reverse Proxy)式是指以全权伺服器来接受internet上的连接允诺,然后将允诺转发给内部络上的伺服器,并将从伺服器上得到的结果返回给internet上允诺连接的客户端,此时全权伺服器对外就表现为个逆向全权伺服器。
先我们先理解正向全权,如下图:

正向全权是针对你的客户端,逆向全权是针对伺服器的,如下图:

1.2、配置逆向代理准备作
在docker中部署tomcat
1、搜索tomcat镜像
docker search tomcat
2、拉取tomcat镜像
docker pull tomcat
3、创建容器,设置端映射、录映射
# 在/root录下创建tomcat录于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id –name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
参数说明:
-p 8080:8080: 将容器的8080端映射到主机的8080端
-v $PWD:/usr/local/tomcat/webapps: 将主机中当前录挂载到容器的webapps
4、 使外部机器访问tomcat
1.3 配置逆向全权
~/nginx/config.d/proxy.conf
upstream tomcat-me{
server 192.168.220.12:8080;
}
server {
listen 80; # 监听的端
server_name www.me.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根录
proxy_pass http://tomcat-me;
index index.html index.htm; # 默认
}
}
重新启动Nginx 然后浏览器试验
2、阻抗平衡
2.1 甚么是阻抗平衡
阻抗平衡建在现有络结构之上,它提供更多了种廉价有效透明的法扩展络设备和伺服器的带宽、增加吞吐量、加强络数据处理能、提络的灵活性和可性。
阻抗平衡,英名称为Load Balance,其意思就是分摊到数个操作单元上进执,比如Web伺服器、FTP伺服器、企业关键应伺服器和其它关键任务伺服器等,从共同完成作任务。
2.2 配置阻抗平衡准备作
(1)使docker创建3个tomcat容器,端分别为8080 ,8081,8082 。
docker run -id –name=c_tomcat1 \
-p 8081:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
docker run -id –name=c_tomcat2 \
-p 8082:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
docker run -id –name=c_tomcat3 \
-p 8083:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
(2)分别启动这三个tomcat服务项目。
(3)为了能区分是访问哪个伺服器的站,能在标题加上标记以便区分。
2.3 配置阻抗平衡
修改 Nginx配置件:lb.conf
upstream tomcat-huike {
server 192.168.220.12:8080;
server 192.168.220.12:8081;
server 192.168.220.12:8082;
}
server {
listen 80; # 监听的端
server_name www.huike.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根录
proxy_pass http://tomcat-huike;
index index.html index.htm; # 默认
}
error_page 500 502 503 504 /50x.html; # 错误
location = /50x.html {
root html;
}
}
部署并访问项目,刷新观察每个的标题,看是否不同。
经过试验,三台伺服器出现的概率各为33.3333333%,交替显示。
如果其中台伺服器操控性较好,想让其承担更多的压,能设置权重。
如想让NO.1出现次数是其它伺服器的2倍,则修改配置如下:
upstream tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081 weight=2;
server 192.168.177.129:8082;
}