【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友

文章目录

  • 前言
  • 一、Nginx的正向代理与反向代理介绍
  • 正文
  • 二、Nginx配置详解
    • 1.本地电脑配置Nginx配置反向代理
    • 2.本地电脑配置Nginx配置负载均衡
  • 总结


前言

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。


一、Nginx的正向代理与反向代理介绍

1.正向代理,简单的说就是,假如客户端在内网,它无法访问到A网站,但是能够访问到一台代理服务器,这台代理服务器能够访问到A网站,这时候就可以通过代理服务器去做一层请求转发,把客户端发给代理服务器的请求转发到A网站,A网站响应数据给代理服务器,代理服务器再返回给客户端,如图:
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第1张图片2.反向代理,就好像是客户端要去访问A网站里面的某个资源,但是这个资源其实是A网站从B网站里面拿过来的,客户端是没有任何察觉的,就觉得这个资源就是A网站里面的取的,如图:
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第2张图片

正文

二、Nginx配置详解

1.本地电脑配置Nginx配置反向代理

1.首先,去官网 http://nginx.org/en/download.html 下载nginx
2.修改windows的hosts文件配置,hosts配置完之后,现在访问www.hao123.com是访问不了的,接下来就开始配置nginx代理,如图:
提示:由于是在本地电脑上搭建,所以添加hosts文件,目的是为了www.hao123.com域名映射到本地来
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第3张图片
3.本地准备跑一个tomcat项目(端口随便),我这边跑的是8080端口
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第4张图片
4.打开提前下载好的nginx文件,修改conf配置文件,修改server内容,或者新建一个server
提示:修改配置文件以后nginx记得重启,如果重启失败,可以在logs文件夹底下看到启动失败的日志
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第5张图片

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
		server_name  www.hao123.com;
        location / {
            proxy_pass  http://127.0.0.1:8080;
        }
    }
}

5.配置完之后,访问www.hao123.com地址时候,nginx就会准发给127.0.0.1:8080地址了,如图:
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第6张图片

2.本地电脑配置Nginx配置负载均衡

负载均衡配置与上述反向代理有一定的差别,它需要添加一个upstream 模块,upstream 模块内配置你需的地址,可以配置多个,还是非常实用的,nginx配置负载均衡有多种模式,在以上反向代理的基础的上,我这边准备两个tomcat项目,一个8080端口,一个8181端口,如下详细配置
提示:修改配置文件以后nginx记得重启,如果重启失败,可以在logs文件夹底下看到启动失败的日志

1.轮询模式(默认)
(1)配置如下
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第7张图片

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
	upstream tomcat {
    server 127.0.0.1:8080;
	server 127.0.0.1:8181;
    }
    server {
        listen 80;
		server_name  www.hao123.com;
        location / {
            proxy_pass  http://tomcat;
        }
    }
}

(2)此时,负载均衡配置完后,访问www.hao123.com会按照时间顺序逐一访问8080与8181端口,如图:
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第8张图片
【详细Nginx配置】Nginx配置反向代理与负载均衡,适用于广大网友_第9张图片
2.IP绑定 ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
	upstream tomcat {
	ip_hash;
    server 127.0.0.1:8080;
	server 127.0.0.1:8181;
    }
    server {
        listen 80;
		server_name  www.hao123.com;
        location / {
            proxy_pass  http://tomcat;
        }
    }
}

3.权重:设置轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
	upstream tomcat {
    server 127.0.0.1:8080  weight=1;
	server 127.0.0.1:8181 weight=2;
    }
    server {
        listen 80;
		server_name  www.hao123.com;
        location / {
            proxy_pass  http://tomcat;
        }
    }
}

4.fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
	upstream tomcat {
	fair;
	server 127.0.0.1:8080 ;
	server 127.0.0.1:8181 ;
    }
    server {
        listen 80;
		server_name  www.hao123.com;
        location / {
            proxy_pass  http://tomcat;
        }
    }
}

总结

以上就是nginx一些比较常用的配置啦,根据您的业务需求,做相对于的配置,希望能够帮到您!

你可能感兴趣的:(java,nginx,后端)