自学内容网 自学内容网

nginx负载均衡、java、tomcat装包

一、nginx 七层负载均衡

1、七层负载均衡基础配置

2、负载均衡状态

[root@server]# vim /usr/local/nginx/conf/nginx.conf

worker_processes 1;

event {

   worker_connections 1024;

   }

   http {      # 七层负载均衡支持http、ftp协议

      include mime.types;

      default_type application/octet-stream;

      sendfile on;

      keepalive_timeout 65;

      upstream qicengzu {     # 服务器组,组名qingcengzu

           server 192.168.33.11:8080;     # 组内服务器1

           server 192.168.33.22:8080;     # 组内服务器2

           }
 
      server {     # 虚拟服务器
  
           listen 80;     # 虚拟服务器端口

           server_name localhost;     # 虚拟服务器名

           location {    # 虚拟服务器的url跳转
 
                proxy_pass http://qicengzu;# 当访问本机的80端口时,跳转到服务器组

            }

      }

}

 3、负载均衡策略

(1)轮询

upstream backend {

   server 192.168.33.11:8080;
 
   server 192.168.33.22:8080;

}

 

(2)weight加权

upstream backend {

server 192.168.33.11:8080 weight=5;

server 192.168.33.22:8080 weight=2;    # 权重默认为1,谁权重大,谁优先处理请求

}

(3)ip_hash

1)当对后端的多台动态应用服务器做负载均衡时,ip_hash指令能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。

2)这样,当来自某一个IP的用户在后端Web服务器A上登录后,再访问该站点的其他URL,能保证其访问的还是后端web服务器A。

3)注意: 使用ip_hash指令无法保证后端服务器的负载均衡,可能导致有些后端服务器接收到的请求多,有些后端服务器接受的请求少,而且设置后端服务器权重等方法将不起作用。

upstream backend {

    ip_hash; # ip_hash算法
  
    server 192.168.33.11:8080;

    server 192.168.33.22:8080;

}

(4)least_conn

least_conn:最少连接,把请求转发给连接数较少的后端服务器。轮询算法是把请求平均地转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,leastconn这种方式就可以达到更好的负载均衡效果。

upstream backend {

    least_conn; # 将请求转发给连接数较少的后端服务器

    server 192.168.33.11:8080;

    server 192.168.33.22:8080;

}

(5)url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用ur_hash,可以使得同一个url (也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以从缓存中读取。

upstream backend {

     hash $request_uri;

     server 192.168.33.11:8080;
 
     server 192.168.33.22:8080;

}

二、nginx四层负载均衡

1、四层使用 stream 模块,与七层的 http 模块同级。

[root@localhost ~]# nginx -V
nginx version: nginx/1.22.1

built by gcc 8.5.0 20210514 (Red Hat 8.5.0-16) (GCC)

built with OpenSSL 1.1.1k FIPS 25 Mar 2021TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx--with-httpssl module --withhttp_stub status_module --with-http_realip module
[root@localhost ~]# cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginxbak   #将原有/usr/local/nginx/sbin/nginx进行备份

[root@localhost ~]# cd /usr/src/nginx-1.22.1/

[root@localhost nginx-1.22.1]# Is

auto CHANGES CHANGES.ru configure html Makefile objs

conf contrib LICENSE man README src
[root@localhost nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --withhttp_ssl_module --with-http_stub_status_module --withhttp_realip_module --with-stream     # 安装指定模块

[root@localhost nginx-1.22.1]# make # 进行编译
[root@localhost nginx-1.22.1]# cp ./objs/nginx  /usr/local/nginx/sbin/ # 将obis下面的nginx移动到/usr/local/nginx/sbin下

[root@localhost nginx-1.22.1]# nginx -V    # 模块添加成功

nginx version: nginx/1.22.1

built by gcc 8.5.0 20210514 (Red Hat 8.5.0-16) (GCC)

built with OpenSSL 1.1.1k FIPS 25 Mar 2021TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx--with-httpssl module --withhttp_stub status_module --with-http_realip module --withstream
[root@server ~]# vim /usr/local/nginx/conf/nginx.conf
events {
    worker_connections 1024;
    }
    stream {
        upstream dongtai {    # 配置dongtai服务器组
             server 192.168.33.11:8080;    # 动态资源走tomcat的8080端口
             server 192.168.33.22:8080;
        }
        server {
             listen 81;     # 设置监听端口
             proxy_pass dongtai;  #当请求访问到本机的81端口时,将请求转发到dongtai组
        }
        upstream jingtai {    # 配置jingtai服务器组
             server 192.168.33.33:80; # 静态资源走nginx或tomcat的80端口
             server 192.168.33.44:80;
        }
        server {
             listen 82;
             proxy_pass jingtai;
        }
  }

三、java环境的配置

1、下载jdk22

wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz

2、解压

tar -zxvf jdk-22.2.tar.gz

3、移动到usr目录

mv jdk-22.2/ /usr/local/jdk22/

4、修改配置文件

vim /etc/profire

……

export JAVA_HOME=/usr/local/jdk22/

export PATH=$JAVA_HOME/bin:$PATH

5、运行profile

source /etc/profile

6、测试

java

java -version

四、tomcat的配置

1、tomcat启动服务

/usr/local/tomcat/bin/startup.sh    //启动
netstat -lnput|grep java     //端口状态
8080
8005
/usr/local/tomcat/bin/shutdown.sh    //停用

2、tomcat的目录

(1)bin

1)可执行文件

A.在window和linux通用

B. win10上优化之后上传到linx,只需要添加权限就可以了

C. win对应的文件的扩展名为bat(批处理文件)

D. linux对应的文件的扩展名为sh

F. startupsh

E. Shutdown.sh

(2)webapps

1)每个目录就是一个项目

2)ROOT是默认的项目目录,在实际开发中,我们可以将程序打包成ROOT.war或者将目录名称修改为ROOT就可以直接发布。

3)使用10.1.1.20:8080直接访问的页面是ROOT目录下的index.jsp

4)在这个目录下可以部署一些静态资源,可以使用浏览器查看,也可以使用下载

5)用可以在该目录下创建新的文件夹作为项目发布

6)要发布项目有两个选项

 A. 将项目移动该目录下

 B. 在conf/server.xml修改资源文件的位置

 C. nginx 默认的路径/usr/local/nginx/html,也可以在server中配置其他的绝对路径,不必须是在内部的html目录中

(3)work

1)将jsp还原成java和class文件

2)保存的路径

/usr/local/tomcat/work/Catalina/localhost/myweb/org/apache/jsp/xxx.java

3)自动将jsp解析为javav文件,不需要重启服务器

(4)logs

1)日志文档

2)catalina.log

3)localhost.log

4)都有相应日期

(5)conf

[root@dynamic001 conf]# ls -l

总用量 232

drwxr-x--- 3 root root 23 8月 1 14:11 Catalina

-rw------- 1 root root 12926 7月 8 05:02

catalina.policy

-rw------- 1 root root 7693 7月 8 05:02

catalina.properties

-rw------- 1 root root 1411 7月 8 05:02 context.xml

-rw------- 1 root root 1149 7月 8 05:02 jaspic

providers.xml

-rw------- 1 root root 2313 7月 8 05:02 jaspic

providers.xsd

-rw------- 1 root root 4144 7月 8 05:02

logging.properties

####################################################333

-rw------- 1 root root 7126 7月 8 05:02 server.xml

######################################################

-rw------- 1 root root 2756 7月 8 05:02 tomcat

users.xml

-rw------- 1 root root 2558 7月 8 05:02 tomcat

users.xsd#####################################################

-rw------- 1 root root 172780 7月 8 05:02 web.xml

######################################################33

(6)lib

(1)tomcat运行为项目提供的依赖文件

(2)要访问没有数据,访问数据库的包

五、数据库

1、关系型数据库

(1)oracle

(2)mysql

1)安装和配置

2)sql语句

3)优化

4)备份与安全

5)集群

A.主从

B. 一主多从

C. 增删改主机

D. 从服务负责mysql查询

(3)sql-server

2、非关系型数据库

(1)redis

(2)cached

(3)mongodb


原文地址:https://blog.csdn.net/weixin_70751365/article/details/140855646

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!