Nginx的反向代理与负载均衡

Posted jks212454

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx的反向代理与负载均衡相关的知识,希望对你有一定的参考价值。

一、反向代理及相关概念

正向代理::通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。
反向代理:代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
负载均衡: 负载均衡是扩展应用程序并提高其性能和冗余的绝佳方法。在负载 均衡配置中,nginx充当在多个单独服务器上工作的分布式Web应用程序的单个入口点。
在这里插入图片描述
补充理解
反向代理:用户访问服务器,服务器知道客户信息,客户不知道服务器信息,理解为隐藏服务端。
正向代理:用户访问服务器,服务器不知道客户信息,客户知道服务器信息,理解为隐藏客户端。

二、环境说明

node1:作为代理服务器
node2:作为web+server01
node3:作为web+server02
control:作为客户端进行测试

二、测试nginx服务

1.测试服务开启状态

[root@node1 ~]# systemctl status nginx.service 
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-05-09 23:22:15 CST; 2min 4s ago
  Process: 881 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 900 (nginx)
    Tasks: 2 (limit: 12404)
   Memory: 2.5M
   CGroup: /system.slice/nginx.service
           ├─900 nginx: master process /usr/local/nginx/sbin/nginx
           └─901 nginx: worker process

May 09 23:22:14 node1 systemd[1]: Starting nginx...
May 09 23:22:15 node1 systemd[1]: Started nginx.

2.测试客户端访问nginx的文web是否正常

在这里插入图片描述

三、配置反向代理

1.配置nginx.conf

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;

    #gzip  on;

    upstream web {
       server 192.168.200.136;
       server 192.168.200.133;
        }
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://web;
          }
        }


2.测试node2和node3的web服务器状态

[root@control ansible]# curl node2
welcome to node2.exampel.com!
[root@control ansible]# curl node3
welcome to node3.exampel.com!

四、测试反向代理与负载均衡

[root@control ansible]# 
[root@control ansible]# curl node2
welcome to node2.exampel.com!
[root@control ansible]# curl node3
welcome to node3.exampel.com!
[root@control ansible]# curl node1
welcome to node3.exampel.com!
[root@control ansible]# curl node1
welcome to node2.exampel.com!
[root@control ansible]# curl node1
welcome to node3.exampel.com!
[root@control ansible]# curl node1
welcome to node2.exampel.com!
[root@control ansible]# curl node1
welcome to node3.exampel.com!
[root@control ansible]# curl node1
welcome to node2.exampel.com!
[root@control ansible]# curl node1
welcome to node3.exampel.com!
[root@control ansible]# curl node1
welcome to node2.exampel.com!
[root@control ansible]# curl node1
welcome to node3.exampel.com!

以上是关于Nginx的反向代理与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx反向代理与负载均衡

浅谈Nginx之反向代理与负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡