Nginx
正向代理,代理的是用户。
反向代理,代理的是服务器
应用场景:
安装Nginx
下载Nginx:https://nginx.org/en/download.html
1、放到/usr/local/nginx目录下解压
tar -zxvf nginx-1.19.5.tar.gz
2、在 nginx下新建一个nginx的安装目录,进入到nginx解压目录下执行安装命令到nginx
./configure --prefix=/usr/local/nginx/nginx
3、在解压目录下执行make
make
如果报错:
4、在解压目录执行make install
make install
设置反向代理
vim Nginx.conf
在server段里面的location加上proxy_pass http://ip:端口;
Nginx配置完成后重启一下nginx。
/etc/init.d/nginx -s reload (重启没报错说明配置文件没问题。)
代理多个网站及服务
配置多个反向代理实现方式,是通过不同的端口代理访问。这里复制一个server段,将两个server段nginx的端口更改,使用nginx的不同端口访问。
负载均衡
1、轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。
upstream dalaoyang-server {
server localhost:10001;
server localhost:10002;
}
2、权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
3 、iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream dalaoyang-server {
ip_hash;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
4 、最少连接
将请求分配到连接数最少的服务上。
upstream dalaoyang-server {
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
5、fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
fair;
}
Nginx配置
以轮训为例,如下是 nginx.conf 完整代码。
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream wanghan-server {
server localhost:10001;
server localhost:10002;
}
server {
listen 10000;
server_name localhost;
location / {
proxy_pass http://wanghan-server;
proxy_redirect default;
}
}
}