美文网首页
Nginx反向代理、负载均衡配置实操

Nginx反向代理、负载均衡配置实操

作者: 我是孟小鱼呀 | 来源:发表于2019-08-21 16:51 被阅读0次

反向代理

"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载

负载均衡

Nginx反向代理服务器接收到的请求数量,即负载量。
请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是一种均衡规则。
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

主机环境

主机 部署
192.168.88.110 部署nginx
192.168.88.100 :5001 应用app01
192.168.88.100 :5002 应用app02
192.168.88.100 :5003 应用app03

nginx配置文件目录:/usr/local/openresty/nginx/conf/nginx.conf
1、开始之前我现在192.168.88.100这台主机上新建了三个简单的flask应用用作测试,app和app02用作测试负载均衡,app03用作测试反向代理,目录结构如下:


image.png

举例说明一下app03应用新建过程:
(1)新建app目录和app03.py文件

mkdir app03
vim app03.py

from flask import Flask

app= Flask(__name__)

@app.route('/')
def index():
        return 'app01'

if __name__ == '__main__':
        app.run()

(2)启动应用

cd app03
export FLASK_APP=app03.py
flask run -h 0.0.0.0 -p 5003
image.png

可以看出我们起了一个5003端口的应用app03,app02、app方法相同,内容也相同。
2、开始配置
(1)访问主机192.168.88.110时自动跳转到192.168.88.100:5003应用app03上
修改nginx配置文件,由于一台nginx服务器可能代理的服务器不止一台,所以最好新建一个配置文件,然后在主配置文件中包含进去。一般读配置文件时先读nginx.conf这个主配置文件,然后再去读取vhosts里面的配置文件。
<1>在nginx.conf下添加


image.png
include /usr/local/openresty/nginx/conf/vhost/*.conf;

<2>新建/usr/local/openresty/nginx/conf/vhost/app03.conf

vim app03.conf

upstream app03{
     server 192.168.88.100:5003;
}

server{
    listen       80;
    server_name  www.app03.com;

    access_log  /data/logs/nginx/app03.access.log  main;
    error_log  /data/logs/nginx/app03.error.log  error;

    location / {
            proxy_pass http://app03;
        }
}
#启动nginx
/usr/local/openresty/nginx/sbin/nginx -t
/usr/local/openresty/nginx/sbin/nginx -s reload

www.app03.com这个域名是自己定义的,如果不想申请域名的话可以修改hosts文件把他的DNS绑在自己的主机上,当访问到这个域名时,他解析到的服务器地址就是自己主机地址。下面介绍如何添加:

vim /etc/hosts

#添加一句
www.app03.com  192.168.88.110

注意:
可能你随便设置的域名已经存在,你访问时就会自己跳转到其他页面,所以我们需要把自己电脑上的hosts文件也修改下,因为我是Windows系统所以在C:\Windows\System32\drivers\etc下找到hosts文件以管理员身份添加以下内容,然后保存

image.png
<3>访问www.app03.com,结果如下,完成。
image.png
如果不想设置域名的话可以通过设置不同的端口实现多个反向代理的跳转
image.png
端口号自己随便写一个,然后访问ip+端口号,例如http://192.168.88.110:81
(2)负载均衡
访问www.app12.com(域名配置方法同上)时跳转到5001或者5002端口,通过两台服务器实现负载均衡
<1>修改nginx配置文件
vim app12.conf

upstream flask {
        server 192.168.88.100:5001;
        server 192.168.88.100:5002;
    }

    server {
        listen       80;
        server_name  www.app12.com;

        location / {
            proxy_pass http://flask;
        }
    }

重启nginx,访问www.app12.com

image.png
image.png
因为这里没有设置权重,所以一次跳转app01,一次跳转app02。完成。

相关文章

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

  • Nginx应用场景

    反向代理,负载均衡,动静分离 1.反向代理 修改nginx配置,并重新加载 重新加载nginx配置./nginx ...

  • 2020-03-31 Nginx反向代理与动静分离集群架构应用实

    1. Nginx负载均衡配置实战 1.1 Nginx负载均衡反向代理相关实践 1.1.1 实现为WWW服务代理 (...

  • nginx学习目录

    nginx安装部署和配置管理 nginx日志配置 nginx平滑升级与回滚 nginx反向代理 nginx负载均衡...

  • Nginx反向代理、负载均衡配置实操

    反向代理 "它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息...

  • Kong反向代理UPSTREAM配置

    Kong 配置upstream负载均衡 今天的目标是配置upstream(反向代理),实现nginx的最基础负载均...

  • 玩转nginx

    本文内容包括: nginx配置实例之反向代理; nginx配置实例之动静分离; nginx配置实例之负载均衡; n...

  • 负载均衡

    Nginx代理中的负载均衡 提到Nginx的反向代理,不得不提的就是Nginx的负载均衡,Nginx支持丰富的负载...

  • 4.常用配置

    反向代理 负载均衡 FastCGI 负载均衡详细配置

  • nginx的upstream几种轮询方式

    上一篇文章中介绍了如何使用nginx配置负载均衡,nginx如何实现反向代理负载均衡。接下来将来介绍下负载均衡的几...

网友评论

      本文标题:Nginx反向代理、负载均衡配置实操

      本文链接:https://www.haomeiwen.com/subject/iwobsctx.html