Nginx+Tomcat实现负载均衡集群

1.前期准备工作

1.1 安装

Nginx安装

Tomcat安装

1.2 copy两份tomcat

1[root@localhost tomcat]# mkdir /usr/local/tomcat/tomcat9001 2[root@localhost tomcat]# mkdir /usr/local/tomcat/tomcat9002 3[root@localhost tomcat]# cp -Rf /usr/local/tomcat/apache-tomcat-8.0.49/* /usr/local/tomcat/tomcat9002 4[root@localhost tomcat]# cp -Rf /usr/local/tomcat/apache-tomcat-8.0.49/* /usr/local/tomcat/tomcat9001

2.修改tomcat端口

1[root@localhost tomcat]# vi tomcat9001/conf/server.xml 2 3<Server port="18005" shutdown="SHUTDOWN"> 4//9001tomcat端口号修改为9001 5<Connector port="9001" protocol="HTTP/1.1" 6 connectionTimeout="20000" 7 redirectPort="8443" /> 8//ajp连接器端口修改 9<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" /> 10--------------------------------------------------------------------------------------------------- 11[root@localhost tomcat]# vi tomcat9002/conf/server.xml 12 13<Server port="28005" shutdown="SHUTDOWN"> 14//9001tomcat端口号修改为9002 15<Connector port="9002" protocol="HTTP/1.1" 16 connectionTimeout="20000" 17 redirectPort="8443" /> 18//ajp连接器端口修改 19<Connector port="28009" protocol="AJP/1.3" redirectPort="8443" />

2.2 测试两个tomcat是否能够启动成功

    可以看到两个tomcat都启动成功了。

2.3 测试页面

    接下来写两个测试页面用于区分。

1index.html 2 3 4页面1 5<!DOCTYPE html> 6<html lang="en"> 7 <head> 8 <meta charset="UTF-8" /> 9 <title>我是tomcat9001</title> 10 </head> 11 12 <body> 13 <p5>我是tomcat9001</p5> 14 </body> 15 16</html> 17页面2 18<!DOCTYPE html> 19<html lang="en"> 20 <head> 21 <meta charset="UTF-8" /> 22 <title>我是tomcat9002</title> 23 </head> 24 25 <body> 26 <p5>我是tomcat9002</p5> 27 </body> 28 29</html> 30

3.配置nginx

    接下来配置nginx负载均衡,找到nginx配置文件。在配置文件中http{}里加入集群配置:

1#服务器的集群 2upstream 192.168.2.160 { #服务器集群名字 3 server 192.168.2.160:9001 weight=1; 4 server 192.168.2.160:9002 weight=2; 5}

    服务器配置   weight是权重的意思,权重越大,分配的概率越高。

    在server{}里加入:

1location / { 2 proxy_pass http://192.168.2.160; #要与集群名相同 3 proxy_redirect default; 4}

    完整配置:

1user www www; 2worker_processes 2; #设置值和CPU核心数一致 3error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志级别 4pid /usr/local/nginx/nginx.pid; 5#Specifies the value for maximum file descriptors that can be opened by this process. 6worker_rlimit_nofile 65535; 7events 8{ 9 use epoll; 10 worker_connections 65535; 11} 12http 13{ 14 include mime.types; 15 default_type application/octet-stream; 16 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 17 '$status $body_bytes_sent "$http_referer" ' 18 '"$http_user_agent" $http_x_forwarded_for'; 19 20#charset gb2312; 21 22 server_names_hash_bucket_size 128; 23 client_header_buffer_size 32k; 24 large_client_header_buffers 4 32k; 25 client_max_body_size 8m; 26 27 sendfile on; 28 tcp_nopush on; 29 keepalive_timeout 60; 30 tcp_nodelay on; 31 fastcgi_connect_timeout 300; 32 fastcgi_send_timeout 300; 33 fastcgi_read_timeout 300; 34 fastcgi_buffer_size 64k; 35 fastcgi_buffers 4 64k; 36 fastcgi_busy_buffers_size 128k; 37 fastcgi_temp_file_write_size 128k; 38 gzip on; 39 gzip_min_length 1k; 40 gzip_buffers 4 16k; 41 gzip_http_version 1.0; 42 gzip_comp_level 2; 43 gzip_types text/plain application/x-javascript text/css application/xml; 44 gzip_vary on; 45 46 #limit_zone crawler $binary_remote_addr 10m; 47 #服务器的集群 48 upstream 192.168.2.160 { #服务器集群名字 49 server 192.168.2.160:9001 weight=1; 50 server 192.168.2.160:9002 weight=2; 51 } 52 #下面是server虚拟主机的配置 53 server 54 { 55 listen 80;#监听端口 56 server_name localhost;#域名 57 58location / { 59 proxy_pass http://192.168.2.160; #与集群名相同 60 proxy_redirect default; 61 } 62 63 index index.html index.htm index.php; 64 root /usr/local/nginx/html;#站点目录 65 location ~ .*\.(php|php5)?$ 66 { 67 #fastcgi_pass unix:/tmp/php-cgi.sock; 68 fastcgi_pass 127.0.0.1:9000; 69 fastcgi_index index.php; 70 include fastcgi.conf; 71 } 72 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ 73 { 74 expires 30d; 75 # access_log off; 76 } 77 location ~ .*\.(js|css)?$ 78 { 79 expires 15d; 80 # access_log off; 81 } 82 access_log off; 83 } 84 85}

    配置完毕,开始测试。

3.1 测试,启动nginx

[root@localhost conf]# /usr/local/nginx/sbin/nginx 

    启动完毕可以访问一下index页面,多刷新几次就会发现,权重比相对较高的节点,被访问的概率会更高。

到此完毕。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Nginx+Tomcat实现负载均衡集群 - HelloWorld