nginx虚拟主机和负载均衡

nginx

1.编译安装配置完成
/opt/nginx11/html/index.html 这是网页的首页文件

2. nginx.conf主配置文件学习
######################################如下
worker_processes 4; nginx工作进程数,根据cpu的核数定义
events {
worker_connections 1024; #连接数
}
#http区域块,定义nginx的核心web功能
http {
include(关键字) 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
#保持长连接
keepalive_timeout 65;
#支持图片 gif等等压缩,减少网络带宽
gzip on;

#这个server标签 控制着nginx的虚拟主机(web站点)
server {
# 定义nginx的入口端口是80端口
listen 80;
# 填写域名,没有域名就写ip地址
server_name www.s15rihan.com;
# 定义编码
charset utf-8;
# location定义网页的访问url
#就代表 用户的请求 是 192.168.13.79/
location / {
#root参数定义网页根目录
root html;
#定义网页的首页文件,的名字的
index index.html index.htm;
}
#定义错误页面,客户端的错误,就会返回40x系列错误码
error_page 404 403 401 400 /404.html;
#500系列错误代表后端代码出错
error_page 500 502 503 504 /50x.html;
}
#在另一个server{}的外面,写入新的虚拟主机2
server{
listen 80;
server_name www.s15oumei.com;
location / {
root /opt/myserver/oumei; #定义虚拟主机的网页根目录
index index.html;
}
}
}

3.准备两个虚拟主机的网页根目录内容
[root@localhost myserver]# tree /opt/myserver/
/opt/myserver/
├── oumei
│   └── index.html 写入自己的内容
└── rihan
└── index.html 写入自己的内容

4.修改windows本地的测试域名 C:\Windows\System32\drivers\etc\hosts文件
写入如下内容

192.168.13.79 www.s15rihan.com

192.168.13.79 www.s15oumei.com

因为我们没有www.s15oumei.com 也没有 www.s15rihan.com ,因此要在本地搞一个测试域名,
不想改dns的话,就去阿里云去买一个域名~~~~~~~~~~~~~~~~~~~~~~

5.然后在浏览器测试访问 两个不同的 web站点

www.s15rihan.com

www.s15oumei.com

 

nginx的访问日志功能
1.开启nginx.conf中的日志参数

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 logs/access.log main;


2.检查access.log的日志信息

tail -f access.log

 

nginx的拒绝访问功能
1.在nginx.conf中,添加参数
在server{}虚拟主机标签中,找到location 然后添加参数

#当赵一宁访问 192.168.13.79/ 的时候
location / {
#拒绝参数是 deny
#deny 写你想拒绝的IP地址
#deny还支持拒绝一整个网站
deny 192.168.13.33;
root /opt/myserver/rihan;
index index.html;
}


nginx的错误页面优化
1.修改nginx.conf 中的配置参数
这个s1540x.html存在 虚拟主机定义的网页根目录下
error_page 404 /s1540x.html;


nginx反向代理
1.中间商
2.微商
3.二手贩子

4.黄牛 火车票

vpn就是正向代理
中国的用户,在自己机器上,使用了一个vpn的ip地址,然后通过这个vpn的IP地址和外接通信

 

nginx的反向代理功能(自带了反向代理的功能,天生的二道贩子)
1.实验环境准备
准备2个服务器,都安装好nginx软件


nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点)

nginx2 192.168.13.24 作为反向代理服务器 (黄牛)

用户 通过浏览器去访问 黄牛 (代理)
浏览器 访问 192.168.13.24 > 192.168.13.79


2.在反向代理服务器中添加配置

 

 

nginx负载均衡

集群的概念:一堆服务器做一件事


1.实验准备
准备三台计算机

nginx1 192.168.13.121 作为nginx负载均衡器 只要我访问这个负载均衡器,查看页面的结果,到底是来自于

nginx2 192.168.13.24 web服务,提供一个页面

nginx3 192.168.13.79 web服务,提供一个页面

 

2.先配置两个nginx web页面
192.168.13.24 准备一个 index.html 写入 你好,我是192.168.13.24机器
192.168.13.79 准备一个 index.html 写入 老了老弟,我是192.168.13.79

然后启动两个nginx web 服务

3.准备一个nginx负载均衡器 192.168.13.121机器上,修改nginx.conf
写入如下内容
定义一个负载均衡池,负载均衡的算法有
调度算法    概述
轮询     按时间顺序逐一分配到不同的后端服务器(默认)
weight    加权轮询,weight值越大,分配到的访问几率越高
ip_hash    每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash   按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发

1.轮询(不做配置,默认轮询)

2.weight权重(优先级)

3.ip_hash配置,根据客户端ip哈希分配,不能和weight一起用

upstream s15webserver {
ip_hash;
server 192.168.13.79 ;
server 192.168.13.24 ;
}

然后在虚拟主机中添加 反向代理配置,将用户的请求,直接转发给 负载均衡池中的服务器

server {
listen 80;
#当我的请求来自于 192.168.13.121时,走这>个虚拟主机
server_name 192.168.13.121;

#charset koi8-r;

#access_log logs/host.access.log main;
#核心配置,就在这,一条proxy_psss参数即可
location / {
proxy_pass http://s15webserver;
#root html;
#index index.html index.htm;
}

}


4.启动负载均衡器的 nginx服务

5.在客户端windows中测试访问,负载均衡器 192.168.13.121 ,查看请求分发的结果

 


今日作业:
1.搭建好nginx 页面,
2.搭建nginx 两个虚拟主机 ,可以访问 www.s15oumei.com www.s15rihan.com
3.完成nginx负载均衡配置

 

posted on 2019-10-16 18:40  Adudu001  阅读(210)  评论(0编辑  收藏  举报

导航