前言
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
一、Nginx的正向代理与反向代理介绍
1.正向代理,简单的说就是,假如客户端在内网,它无法访问到A网站,但是能够访问到一台代理服务器,这台代理服务器能够访问到A网站,这时候就可以通过代理服务器去做一层请求转发,把客户端发给代理服务器的请求转发到A网站,A网站响应数据给代理服务器,代理服务器再返回给客户端,如图:
2.反向代理,就好像是客户端要去访问A网站里面的某个资源,但是这个资源其实是A网站从B网站里面拿过来的,客户端是没有任何察觉的,就觉得这个资源就是A网站里面的取的,如图:
正文
二、Nginx配置详解
1.本地电脑配置Nginx配置反向代理
1.首先,去官网 http://nginx.org/en/download.html 下载nginx
2.修改windows的hosts文件配置,hosts配置完之后,现在访问www.hao123.com是访问不了的,接下来就开始配置nginx代理,如图:
提示:由于是在本地电脑上搭建,所以添加hosts文件,目的是为了www.hao123.com域名映射到本地来
3.本地准备跑一个tomcat项目(端口随便),我这边跑的是8080端口
4.打开提前下载好的nginx文件,修改conf配置文件,修改server内容,或者新建一个server
提示:修改配置文件以后nginx记得重启,如果重启失败,可以在logs文件夹底下看到启动失败的日志
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地址了,如图:
2.本地电脑配置Nginx配置负载均衡
负载均衡配置与上述反向代理有一定的差别,它需要添加一个upstream 模块,upstream 模块内配置你需的地址,可以配置多个,还是非常实用的,nginx配置负载均衡有多种模式,在以上反向代理的基础的上,我这边准备两个tomcat项目,一个8080端口,一个8181端口,如下详细配置:
提示:修改配置文件以后nginx记得重启,如果重启失败,可以在logs文件夹底下看到启动失败的日志
1.轮询模式(默认)
(1)配置如下
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端口,如图:
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一些比较常用的配置啦,根据您的业务需求,做相对于的配置,希望能够帮到您!