首页 > 系统相关 >nginx知识点

nginx知识点

时间:2024-08-24 17:15:48浏览次数:11  
标签:知识点 负载 http 192.168 server nginx 均衡 80

1、nginx的角色
web服务器、缓存服务器、做反向代理和负载均衡

2、proxy_pass加不加斜杠的区别

主机:192.168.20.144:80

(1)、proxy_pass后面有斜杠
	location /api/ {
		proxy_pass http://192.168.20.145:80/
	}
	当用户去访问http://192.168.20.144:80/api时会代理到 http://192.168.20.145:80/index.html;

(2)、proxy_pass后面无斜杠
	location /api/ {
		proxy_pass http://192.168.20.145:80
	}
	当用户去访问http://192.168.20.144:80/api时会代理到http://192.1368.20.145:80/api/index.html

3、在nginx中如何访问两个不同的前端页面、如何同时做反向代理

有两个前端页面需要部署访问的话只需要写两个server块就行,分别监听不同的端口,每个前端又对应自己的后端服务,只需要在对应的的server块中写location,使用proxy_pass关键字,做反向代理即可。


server{
	listen 80;
	server_name  www.baidu.com;  #用于定义域名,请求来时会在所有的server块中匹配server_name,最后选中某一server块进行匹配,当没有匹配到server块时,一般会有一个默认的server块进行匹配,写法如server_name _;(单个下划线)
	
	location / {
		root "/xxxx/xxxx/xxxx/html";
		index index.html;
	}            #第一个前端页面

	location /api/ {
		proxy pass http://192.168.20.111:8080;
	}	    #反向代理到后端第一个服务

	location /abcd/ {
		proxy_pass http://192.168.20.100:9090;
	}          #反向代理到后端第二个服务
}


server{
	listen 80;
	server_name  www.sina.com;  
	
	location / {
		root "/xxx/xxx/html";
		index index.html;
	}            #第二个前端页面

	location /apio/ {
		proxy pass http://192.168.20.1:7070;
	}	    #反向代理到后端第三个服务

	location /Abcde/ {
		proxy_pass http://192.168.20.2:6666;
	}          #反向代理到后端第四个服务
}

4、nginx做负载均衡(基于7层)

nginx做负载均衡在http模块下写一个upstream组就行,和server同级,格式如下:

http {

	upstream student{
		server 192.168.20.1:8080;
		server 192.168.20.2:8080;
		server 192.168.20.3:8080;
	}

	server {
		listen 80;
		location / {
			proxy_pass http://student;
		}
	}

}
当需要多个负载均衡时可以增加upstream的数量,增加location的数量与之对应。

5、nginx基于第几层做负载均衡

(1)、第四层(TCP/IP层)负载均衡
第四层负载均衡,也称为网络层负载均衡或传输层负载均衡,主要基于IP地址和端口号来实现负载均衡。Nginx通过其stream模块支持第四层负载均衡。这种负载均衡方式不关心具体的应用层协议(如HTTP、HTTPS等),而是直接根据TCP/IP连接的信息来分发请求。它适用于那些对应用层协议无特殊要求的场景,或者当应用层协议较为复杂,不适合在应用层进行负载均衡时,可以选择在TCP/IP层进行负载均衡。

	stream {  
			upstream backend {  
  				  server 192.168.1.100:80;  
   				  server 192.168.1.101:80;  
	 	}  

			server {  
   				listen 80;  
    			proxy_pass backend;  
			}  
	}
基于四层的负载均衡,在Nginx中通常是通过stream块来配置的,而stream块与http块是同级的,而不是包含在http块中。

(2)、第七层(应用层)负载均衡
第七层负载均衡,也称为应用层负载均衡或内容交换,主要基于HTTP/HTTPS等应用层协议的内容来实现负载均衡。Nginx的http模块支持第七层负载均衡,它可以根据请求的URI、Host头、Cookie等信息来分发请求。由于Nginx能够解析HTTP协议,因此它可以实现更加精细的负载均衡策略,如基于URL的负载均衡、基于会话的负载均衡等。这种负载均衡方式适用于需要处理HTTP/HTTPS请求的场景,能够提供更高的灵活性和可配置性。

http {

	upstream student{
		server 192.168.20.1:8080;
		server 192.168.20.2:8080;
		server 192.168.20.3:8080;
	}

	server {
		listen 80;
		location / {
			proxy_pass http://student;
		}
	}

}
当需要多个负载均衡时可以增加upstream的数量,增加location的数量与之对应。

6、nginx做负载均衡的算法有哪些

nginx做负载均衡的算法有轮询、加权轮询、ip_hash、最小连接数,默认情况下使用的是轮询。

(1)、轮询是Nginx默认的负载均衡算法。在这种算法中,Nginx会按照配置文件中服务器的顺序,逐一将请求分发到不同的后端服务器。当所有服务器都被遍历一遍后,算法会重新开始,从第一个服务器继续分发请求。

(2)、加权轮询是轮询算法的一种扩展,它允许管理员为后端服务器分配不同的权重。Nginx会根据这些权重来决定分发请求的比例。

(3)、ip_hash算法根据客户端的IP地址来计算一个哈希值,并将该哈希值映射到后端服务器列表中。这样,来自同一IP地址的请求都会被分发到同一台后端服务器上。

(4)、最小连接数算法会将新的请求分发到当前连接数最少的后端服务器上。这种算法旨在优化资源利用,确保负载均衡器能够更公平地分配请求。

标签:知识点,负载,http,192.168,server,nginx,均衡,80
From: https://www.cnblogs.com/X-sj/p/18377962

相关文章

  • 通过Nginx日志检测异常ip并封禁
    需求来源从攻防演练中获得灵感,不需要使用其他防火墙即可实现异常ip拦截nginx.conf增加配置log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''&qu......
  • Docker安装Nginx
    第一步:拉取镜像可指定版本,也可不写,则为默认最新版本第二步:拷贝配置文件首先运行容器dockerrun-d--namenginx-p8082:8082nginx然后复制配置文件到宿主机文件夹,此处的宿主文件夹为自己手动创建,即为D:/usr/nginx/conf#将容器nginx.conf文件复制到宿主机dock......
  • docker对的tomcat、mysql、redis、nginx的安装
    本章篇章主要讲解了docker对常用软件的安装说明总体步骤:搜索镜像、拉取镜像、查看镜像、启动镜像、停止容器、移除容器tomcatdockerseachertomcat//也可以在dockerhub上面查找tomcat镜像dockerpulltomcat从dockerhub上拉取tomcat镜像到本地dockerimages//查看是否......
  • docker mysql导入导出 nginx
    导出MySQL文件mysqldump--no-tablespaces-uroot-pabc>abc.sql导入MySQL文件mysql-uwpp-pvGgM701wWSBNwj8--default-character-set=utf8wpp<D:\wpp\nest\tmp\wpp.sql问题:docker中MySQL无法输入中文解决:dockerexec-itmysqlenvLANG=C.UTF-8/bin/bash将权限json......
  • Docker部署Nginx,无法访问的解决办法
    最近用阿里云的服务器部署了一下Nginx,发现无法通过外网访问,排除掉防火墙和端口映射的问题,最终在阿里云官方发现解决办法,docker0网桥的网段与内网eth0网段冲突,可能导致Nginx无法访问,修改Docker的网段后正常访问.1.运行以下命令,查看docker0和eth0网段是否冲突route如果回显信......
  • K8S之Ingress常用Nginx、Traefik示例
    NginxIngress创建Pod、Service,定义如下nginx-ingress-demo.yamlapiVersion:extensions/v1beta1kind:Deploymentmetadata:name:nginx-deploynamespace:defaultspec:replicas:3selector:matchLabels:app:nginx-demoreplease:canary......
  • 自定义安装Nginx
    nginx下载地址:https://nginx.org/download/1.下载wgethttps://nginx.org/download/nginx-1.18.0.tar.gz2.安装依赖yum-yinstallgccgcc-c++makeautomakeautoconfpcrepcre-develzlibzlib-developensslopenssl-devellibtool3.解压tar-vxfnginx-1.18.0.tar.......
  • nginx代理服务
    Nginx****代理服务代理区别区别在于代理的对象不⼀样正向代理代理的对象是客户端反向代理代理的对象是服务端2.Nginx****负载均衡2.2Nginx****负载均衡状态配置backupmax_conns测试backup以及down状态当⼀个后端服务器被标记为backup时,它将仅作为备⽤服务器使......
  • 【C/C++ 软件开发模拟面试 集】cmake 相关知识点模拟面试
    摘自:https://zhuanlan.zhihu.com/p/662623216第一轮:基础知识 1.1什么是CMake? 面试官: 请问你能简单描述一下CMake是什么,以及它通常用来做什么吗? 面试者: CMake是一个跨平台的自动化构建系统,主要用来管理软件构建的过程,它使用一个名为CMakeLists.txt的配置文件来指导编......
  • 在CentOS7.9上 编译安装openssl-3.3.1+编译安装Nginx1.26.2
    编译安装注意事项知识点一:openssl的重要性openssl在Linux系统中扮演着至关重要的角色,尤其是在网络安全方面。许多服务和应用程序都依赖于openssl提供的加密功能,包括但不限于web服务器(如Apache和Nginx)、数据库服务器(如MySQL和PostgreSQL)、邮件服务器、VPN等。以下......