nginx服务器多虚拟主机配置
默认nginx读取的实力就是站点html下的index.html 文件,如果希望实现两个站点访问一台服务器,并且服务器响应的数据不同,则可以在nginx下的conf文件夹里配置nginx.conf文件
在目录下创建一个根站点,里面再创建两个子站点,子站点中的index.html就作为响应文件展示。
myserver—>lisa——>index.html
—>kevin—->index.html
站点创建完成后,开始配置站点信息:因为是多个站点所以会配置多个server
注意所属作用域,括号不能弄错。
这样,一台nginx服务器配置了两个默认站点,可以用来访问,index.html页面元素自定义编写,但是此时还需要在客户端上配置
C:\Windows\System32\drivers\etc里面的hosts文件,因为案例中的域名没有公网ip,那么DNS服务器将解析不到,则无法访问制定IP
在hosts文件中指定域名对应的ip,服务器解析到ip后就能访问指定站点了。
如此就能实现一台服务器处理多站点请求。
实现nginx客户端访问的实时监控:
可以打开conf中的log代码块,用tail -f access.log监控日志文件
封客户端IP:可以在server里的location里面添加deny 目标ip
实现nginx的负载均衡配置:
前提是有三台或以上的装有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一起用
在nginx.conf中创建一个负载均衡器
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;
}
}