linux (09) nginx反向代理,负载均衡

一.nginx域名分配

1.创建一个新的服务器

server

1 server{
2     listen 80;
3     server_name  www.s15oumei.com; #定义访问域名
4     location /  {
5     root  /opt/myserver/oumei;        #定义虚拟主机的网页根目录
6     index  index.html;                                #定义虚拟主机的网页根目录下的文件
7     }
8 }
9 }

2.准备两个虚拟主机的网页根目录内容

1 [root@localhost myserver]# tree /opt/myserver/
2         /opt/myserver/
3         ├── oumei
4         │   └── index.html        写入自己的内容
5         └── rihan
6             └── index.html        写入自己的内容 

3.配置完成后需要检查配置是否正确

启动nginx目录文件 -t  判断

4..修改windows本地的测试域名 C:WindowsSystem32driversetchosts文件 写入如下内容

192.168.13.79 www.s15rihan.com

192.168.13.79 www.s15oumei.com

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

5.配置完成后杀死进程,重启

pkill nginx

重启nginx文件

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

1.1nagix的访问日志功能

1.开启nginx.conf中的日志参数

在配置文件nginx.conf下,解开注释

1 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
2                       '$status $body_bytes_sent "$http_referer" '
3                       '"$http_user_agent" "$http_x_forwarded_for"';
4     #开启访问日志功能的参数          
5     access_log  logs/access.log  main;

2.检查access.log的日志信息,访问时会有访问记录

tail -f access.log

1.2nginx的拒绝访问功能

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;
    }

1.3nginx的错误页面优化

1.修改nginx.conf 中的配置参数

这个s1540x.html存在 虚拟主机定义的网页根目录下,解开注释

error_page 404 /s40x.html;

s40x.html放在root 下面的根目录下,需自行创建文件

二.nginx反向代理

反向代理意味着在访问代理域名时会访问到要访问的页面,相当于一个媒介

1.实验环境准备

准备2个服务器,都安装好nginx软件

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

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

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

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

  proxy_pass  http://192.168.13.104; 
 1  server{ 
 2       listen   80;
 3       server_name  192.168.13.106; #自己的域名 
 4       location /{
 5           # deny   192.168.125.*/;
 6          proxy_pass http://192.168.125.129; #代理的域名
 7           #root   /opt/myserver/dapian;
 8           #index  index.html;
 9     
10 }    

3.关闭进程,重启

4.访问代理域名

三.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一起用

3.写入负载解析虚拟机的代码

 1    keepalive_timeout  65;
 2     upstream node{
 3               
 4     server 192.168.125.129 weight=5;
 5     server 192.168.125.130 weight=6;
 6 }
 7     
 8     #gzip  on;
 9     server{ 
10       listen   80;
11       server_name  192.168.125.131;
12       location /{ 
13           proxy_pass http://node;
14           # deny   192.168.125.*/;
15           # root   /opt/myserver/dapian;
16           # index  index.html;
17 
18 
19 }

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

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

 

 

 

 

 

原文地址:https://www.cnblogs.com/zhangqing979797/p/10216478.html