反向代理
由服务提供方提供的访问模式、代理方式
正向代理
由服务调用方主动采取的访问模式、代理方式
我们家里的路由器就相当于正向代理服务器(网关)
隧道式代理-nginx
访问服务需要走这里,响应信息也要走这里;
nginx负载均衡-轮询策略
单纯的轮询策略无法保持会话,因为多台机器, 他会随机轮询,导致每次的session或cookie无法使用;
keepalived
原理:主机从机公用一个虚拟IP,默认虚拟IP指定主机,设置keepalived定时检测主机是否宕机,当主机宕机时,keepalived检测到后,自动将虚拟IP指向从机,完成从机上位;
非集群环境下,使用keepalived来进行备份nginx,防止nginx宕机;
安装keepalived:
配置主机的keepalived配置文件,配置从机的keepalived配置文件,主机宕机,通过keepalived的自动检测,将从机变为主机;
global_defs {
router_id LVS_DEVEL # LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机,这个id主机从机不同
}
vrrp_script chk_http_ port {
script "/usr/local/src/nginx_check.sh"
interval 2 # (检测脚本执行的间隔)2s
weight 2 #权重,如果这个脚本检测为真,服务器权重+2
}
vrrp_instance VI_1 { # VI_1 这里主机从机要一样
state MASTER #state 主机MASTER 备机BACKUP
interface ens33 //网卡名称
virtual_router_id 111 # 主、备机的virtual_router_id必须相同
priority 100 #主、备机取不同的优先级,主机100,备份机90,从机的优先级越高,当主机宕机,越有可能成为主机
advert_int 1 #每隔1s发送一次心跳
authentication { # 校验类型:密码=123456
auth type PASS # 这里主机从机要一样
auth pass 123456 # 这里主机从机要一样
}
virtual_ipaddress { # 虛拟ip
192.168.18.110 // VIP 虛拟IP # 这里主机从机要一样
}
}
扩展:如果nginx或者其他keepalived监测的服务出了问题,而keepalived并没有检测到,那就无法自动将虚拟IP只想从机;为了防止这种情况,我们可以写一段脚本,监测主机的服务,当服务访问并不返回200时,那就执行kill命令,杀掉主机进程,那么keepalived就可以检测到主机宕机了,自动将虚拟IP指向从机了,从而完成从机上位,不过这种情况一般很少出现;
location语法
# 优先级1,精确匹配,根路径
location =/ {
return 400;
}
# 优先级2,以某个字符串开头,以av开头的,优先匹配这里,区分大小写
location ^~ /av {
root /data/av/;
}
# 优先级3,区分大小写的正则匹配,匹配/media*****路径
location ~ /media {
alias /data/static/;
}
# 优先级4 ,不区分大小写的正则匹配,所有的****.jpg|gif|png 都走这里
location ~* .*\.(jpg|gif|png|js|css)$ {
root /data/av/;
}
# 优先7,通用匹配
location / {
return 403;
}
nginx 代理 https 服务
背景:两台服务器A、B
A服务能通外网,B服务不能通外网,nginx安装在A服务器上,需要外网api的应用程序在B服务器上,那就在A服务器上做代理转发;
server {
charset utf-8;
listen 7001;
server_name localhost;
client_max_body_size 1024m;
proxy_store off;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
# https api
location / {
proxy_pass https://www.****.com;
}
}
标签:IP,keepalived,nginx,location,主机,proxy
From: https://www.cnblogs.com/xy20211005/p/17059487.html