平面设计网上培训机构宁波seo快速优化

当前位置: 首页 > news >正文

平面设计网上培训机构,宁波seo快速优化,济南网站建设正规公司,哈尔滨最新通知今天文章目录 一、Nginx​​实现负载均衡原理1.正向代理和反向代理2.负载均衡模式1. 轮询#xff08;Round Robin#xff09;#xff1a;2. 最少连接数#xff08;Least Connections#xff09;#xff1a;3. IP 哈希#xff08;IP Hash#xff09;#xff1a;4. 加权轮询… 文章目录 一、Nginx​​实现负载均衡原理1.正向代理和反向代理2.负载均衡模式1. 轮询Round Robin2. 最少连接数Least Connections3. IP 哈希IP Hash4. 加权轮询Weighted Round Robin5. 最少时间算法Least Time6. 一致性哈希Consistent Hashing 二、NginxTomcat负载均衡、动静分离实验1.实验占用内存,内存最好4G以上2.关闭所有实验机器的防火墙3.配置nginx服务器3.1安装所需开发包和编译环境、编译器3.2创建程序用户便于准确控制访问3.3编译安装nginx 4.部署2台Tomcat 应用服务器3.动静分离配置4.Nginx server 配置 三、Nginx四层代理配置 一、Nginx​​实现负载均衡原理 Nginx实现负载均衡是通过反向代理实现 Nginx服务器作为前端Tomcat服务器作为后端web页面请求由Nginx服务来进行转发。​​ ​​但是不是把所有的web请求转发而是将静态页面请求Nginx服务器自己来处理动态页面请求转发给后端的Tomcat服务器来处理。​​ ​​据我们所知Tomcat是属于轻量级的应用服务器可接受访问量可能会不足所以我们需要多台Tomcat服务器然后通过Nginx配置权重来进行挑选Tomcat服务器去进行处理负载均衡的一种策略 Nginx配置反向代理的主要参数 upstream 服务池名 { }配置后端服务器池以提供响应数据proxy_pass http://服务池名配置将访问请求转发给后端服务器池的服务器处理1.正向代理和反向代理 ① 正向代理 正向代理 代理的是客户端 去访问 服务器 加快访问速度 ② 反向代理 反向代理 代理的是服务端 负载均衡 2.负载均衡模式

  1. 轮询Round Robin 轮询算法是 Nginx 的默认分流算法。它按顺序将请求依次分配给每一台后端服务器直到最后一台服务器然后重新从第一台服务器开始。这种方法简单且均匀地分配了流量。 数据流向每个请求依次被分配到下一个服务器。假设有三台服务器Server A、Server B、Server C第一个请求被分配到 Server A第二个请求分配到 Server B第三个请求分配到 Server C第四个请求又回到 Server A依此类推。 特点请求均匀分布无视服务器的当前负载和响应时间。 配置示例 upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; }
  2. 最少连接数Least Connections 最少连接数算法将请求分配给当前活动连接数最少的服务器。这种算法适用于请求处理时间不均匀的情况可以有效平衡服务器的负载。 数据流向每个请求被分配到当前连接数最少的服务器。例如Server A 有 2 个连接Server B 有 5 个连接新的请求会被分配到 Server A。 特点动态均衡负载适用于请求处理时间不一的场景。 配置示例 upstream backend { least_conn; server backend1.example.com; server backend2.example.com; server backend3.example.com; }
  3. IP 哈希IP Hash IP 哈希算法通过计算客户端 IP 地址的哈希值将请求始终分配给同一台服务器。适用于需要将特定客户端的请求固定在同一台服务器上的场景。 数据流向每个客户端的 IP 地址被哈希计算然后根据哈希值将请求固定分配到某一台服务器。假设客户端 X 的哈希值指向 Server A客户端 Y 的哈希值指向 Server B则无论多少次请求X 的请求总是流向 Server AY 的请求总是流向 Server B。 特点同一个客户端总是被分配到同一台服务器有助于会话保持。 配置示例 upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; }
  4. 加权轮询Weighted Round Robin 加权轮询算法允许为每台服务器设置权重权重越大的服务器将会获得更多的请求。适用于服务器性能不均衡的情况。 数据流向根据服务器设置的权重值分配请求。假设 Server A 权重为 3Server B 权重为 1则 4 个请求中3 个会被分配到 Server A1 个会被分配到 Server B。 特点高权重服务器接收更多的请求适用于服务器性能差异较大的场景。 配置示例 upstream backend { server backend1.example.com weight3; server backend2.example.com weight1; server backend3.example.com weight2; }
  5. 最少时间算法Least Time 最少时间算法基于请求的响应时间将请求分配给响应时间最短的服务器。这种算法在 Nginx 1.15.3 及以后版本中可用适用于需要最大化响应速度的场景。 数据流向每个请求分配到响应时间最短或平均连接时间最短的服务器。假设 Server A 的响应时间较快Server B 较慢则新的请求更可能流向 Server A。 特点进一步优化了最少连接算法适用于高负载环境下的动态负载均衡。 配置示例 upstream backend { least_time header; server backend1.example.com; server backend2.example.com; server backend3.example.com; }
  6. 一致性哈希Consistent Hashing 一致性哈希算法可以保证当集群中某台服务器故障时只有部分请求会重新分配到其他服务器而不是全部重新分配。这在缓存等场景中非常有用。 数据流向根据请求的某个特定参数如 URL、Cookie 或其他 Header进行哈希计算将请求分配到哈希值对应的服务器。假设 Server A 和 Server B参数 “foo” 的哈希值指向 Server A参数 “bar” 的哈希值指向 Server B则 “foo” 请求总是流向 Server A“bar” 请求总是流向 Server B。 特点适应服务器节点变动减少请求的重新分配适合缓存敏感的场景。 配置示例需要第三方模块如 ngx_http_upstream_hash_module upstream backend { hash \(request_uri consistent; server backend1.example.com; server backend2.example.com; server backend3.example.com; } 二、NginxTomcat负载均衡、动静分离实验 Nginx 服务器192.168.44.10:8080 Tomcat服务器1192.168.44.30:8080 Tomcat服务器2192.168.44.40:8080 1.实验占用内存,内存最好4G以上 2.关闭所有实验机器的防火墙 systemctl stop firewalld setenforce 03.配置nginx服务器 3.1安装所需开发包和编译环境、编译器 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make3.2创建程序用户便于准确控制访问 useradd -M -s /sbin/nologin nginx3.3编译安装nginx cd /opt tar zxvf nginx-1.20.2.tar.gz -C /opt/./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream --with-http_ssl_modulemake make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/vim /lib/systemd/system/nginx.service [Unit] Descriptionnginx Afternetwork.target [Service] Typeforking PIDFile/usr/local/nginx/logs/nginx.pid ExecStart/usr/local/nginx/sbin/nginx ExecrReload/bin/kill -s HUP \)MAINPID ExecrStop/bin/kill -s QUIT \(MAINPID PrivateTmptrue [Install] WantedBymulti-user.targetchmod 754 /lib/systemd/system/nginx.service systemctl start nginx.service systemctl enable nginx.service------------------------------------------------------------------------------------------------------ ./configure \ --prefix/usr/local/nginx \ --usernginx \ --groupnginx \ --with-file-aio \ #启用文件修改支持 --with-http_stub_status_module \ #启用状态统计 --with-http_gzip_static_module \ #启用 gzip静态压缩 --with-http_flv_module \ #启用 flv模块提供对 flv 视频的伪流支持 --with-http_ssl_module #启用 SSL模块提供SSL加密功能 --with-stream #启用 stream模块提供4层调度4.部署2台Tomcat 应用服务器 systemctl stop firewalld setenforce 0tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/vim /etc/profile export JAVA_HOME/usr/local/jdk1.8.0_91 export JRE_HOME\){JAVA_HOME}/jre export CLASSPATH.:\({JAVA_HOME}/lib:\){JRE_HOME}/lib export PATH\({JAVA_HOME}/bin:\)PATHsource /etc/profiletar zxvf apache-tomcat-8.5.16.tar.gzmv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.shnetstat -ntap | grep 80803.动静分离配置 Tomcat server 配置 mkdir /usr/local/tomcat/webapps/test vim /usr/local/tomcat/webapps/test/index.jsp% page languagejava importjava.util.* pageEncodingUTF-8% html head titleJSP test1 page/title #指定为 test1 页面 /head body % out.println(动态页面 1,http://www.test1.com);% /body /htmlcd /usr/local/tomcat/conf/ cp server.xml{,_bak} vim /usr/local/tomcat/conf/server.xml #由于主机名 name 配置都为 localhost需要删除前面的 HOST 配置 Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalseContext docBase/usr/local/tomcat/webapps/test path reloadabletrue/Context /Host/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh 4.Nginx server 配置 echo htmlbodyh1这是静态页面/h1/body/html /usr/local/nginx/html/index.html mkdir /usr/local/nginx/html/img #放入图片 cd /usr/local/nginx/html/imgvim /usr/local/nginx/conf/nginx.confhttp { ……#gzip on;#配置负载均衡的服务器列表weight参数表示权重权重越高被分配到的概率越大upstream tomcat_server {server 192.168.44.30:8080 weight1;server 192.168.44.40:8080 weight1;}server {listen 80;server_name www.kgc.com;charset utf-8;#access_log logs/host.access.log main;#配置Nginx处理动态页面请求将 .jsp文件请求转发到Tomcat 服务器处理location ~ ..jsp\( {proxy_pass http://tomcat_server;proxy_set_header HOST \)host;proxy_set_header X-Real-IP \(remote_addr;proxy_set_header X-Forwarded-For \)proxy_add_x_forwarded_for;}#配置Nginx处理静态图片请求location ~ ..(gif|jpg|jpeg|png|bmp|swf|css)\( {root /usr/local/nginx/html/img;expires 10d;}location / {root html;index index.html index.htm;} ......} ...... }------------------------------------------------------------------------------------------------------------------- proxy_pass http://tomcat_server; ##它告诉 Nginx 将该位置匹配到的请求转发到指定的后端服务器proxy_set_header X-Real-IP \)remote_addr; ##将原始请求中的客户端IP地址存储在X-Real-IP请求头中然后将这个请求头发送到后端服务器。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ##将原始请求中的客户端 IP 地址添加到 X-Forwarded-For 请求头中并将这个请求头发送到后端服务器。三、Nginx四层代理配置 Nginx 四层代理配置 ./configure –with-stream和http同等级所以一般只在http上面一段设置 stream {upstream appserver {server 192.168.80.100:8080 weight1;server 192.168.80.101:8080 weight1;server 192.168.80.101:8081 weight1;}server {listen 8080;proxy_pass appserver;} }http { ……}