首页 > 系统相关 >nginx

nginx

时间:2023-01-18 11:45:05浏览次数:35  
标签:IP keepalived nginx location 主机 proxy

反向代理

由服务提供方提供的访问模式、代理方式

正向代理

由服务调用方主动采取的访问模式、代理方式

我们家里的路由器就相当于正向代理服务器(网关)

隧道式代理-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

相关文章

  • Spring Cloud Alibaba Nacos+Nginx+Keepalived高可用集群注册中心搭建
    简介Nacos简介Nacos官网:https://nacos.ioNacos源码:https://github.com/alibaba/nacos下载Nacos服务端压缩包:https://github.com/alibaba/nacos/releasesNacos三种部署......
  • Nginx配置转发代理接口
    cd/etc/nginx/conf.d/vimtest.confupstreammy_server{server192.168.100.100:11105;keepalive2000;......
  • docker下部署nginx
    1.首先对nginx的目录简单的解释一下/usr/share/nginx/htmlnginx容器配置的静态页目录。/var/log/nginxnginx容器的日志目录。/etc/nginx/nginx.confnginx容器的配置......
  • Nginx proxy buffer配置
    1.问题情况最近发现nginx日志出现大量的这种错误:anupstreamresponseisbufferedtoatemporaryfile12345672023/01/1715:14:14[warn]18239#......
  • 关于如何在CentOS7中如何利用Docker中的Nginx容器反向代理MantisBT容器并连接宿主机数
    是的标题确实很长,意思就是,我现在Docker里面有MantisBT和Nginx,系统里安装了MySQL,要如何把他们连在一起?注意因为MantisBT与MySQL高版本会有字符集不兼容的问题,所以我采用了......
  • (转发)Nginx Windows详细安装部署教程
    原文:NginxWindows详细安装部署教程-taiyonghai-博客园(cnblogs.com) 一、Nginx简介Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMT......
  • 小满Linux(第十章Nginx-Go-Access-日志分析器)
    将我们的Linux服务器设置为中文版$localectlset-localeLANG=zh_CN.UTF8重启服务器即可GoAccess是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速......
  • Docker 安装Nginx及实践应用
    本文以下面链接文件为测试过程,为了方便,可以在本地把文件解压后重新压缩为zip类型的压缩包http://www.mobanwang.com/mb/UploadFiles_2010/lo202105/202105033.rar拉取......
  • yum方式安装nginx
    转载地址:https://blog.csdn.net/qq_34200979/article/details/123016644 1、添加CentOS7Nginxyum资源库[root@localhost~]# rpm-Uvhhttp://nginx.org/package......
  • Nginx与LUA(4)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~   Nginx既然可以限制流量,那能不能「扩展」流量呢?当然可以,但可能不是你想象的那种「扩展」,更准确地来说是复制,或者......