Centos 7搭建Nginx负载均衡,最简单。
1.安装Nginx
1.1.下载Nginx安装包
Nginx 官网(https://nginx.org)
本次选择的是nginx-1.6.3.tar.gz版本,安装环境是centos7。
然后把下载好的安装包通过SecureCRT工具上传至Centos7中或者使用wget命令下载安装包
#下载nginx-1.6.3.tar.gz
wget -c https://nginx.org/download/nginx-1.6.3.tar.gz
若是出现下面的提示
-bash: wget: command not found
则执行
yum install wget
2.安装Nginx的前提环境
1)安装 gcc 环境
yum install gcc-c++
2) 安装 PCRE 依赖库
yum install -y pcre pcre-devel
3)安装 zlib 依赖库
yum install -y zlib zlib-devel
4) 安装 OpenSSL 安全套接字层密码库
yum install -y openssl openssl-devel
5)解压 Nginx
#解压文件夹
tar -zxvf nginx-1.6.3.tar.gz
6)执行配置命令
cd进入文件夹
cd nginx-1.6.3
执行配置命令
./configure
出现如下图:表示成功
在这里插入图片描述
7)执行编译安装命令
make install
8)查找安装路径
whereis nginx
结果如下:
在这里插入图片描述
9)启动服务
进入 nginx 的目录
cd /usr/local/nginx/sbin/
执行如下命令
#启动
./nginx
#停止,此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
#停止,此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s quit
#重新加载配置文件,Nginx服务不会中断
./nginx -s reload
10)修改配置文件
比如,修改端口号,默认端口号为80,咱们这里改成83;
进入配置文件夹
cd /usr/local/nginx/conf
备份原始配置文件
cp nginx.conf nginx.conf.back
编辑nginx.conf配置文件
vim nginx.conf
找到server中的listen,修改端口号为83
在这里插入图片描述
启动服务
#要进入sbin/下才能执行
./nginx
查看 nginx 进程
ps -ef|grep nginx
在这里插入图片描述
到此,nginx 安装基本完成,直接在浏览器上访问服务器地址:虚拟机的ip:83,就可以进入页面
在这里插入图片描述
3.安装Tomcat
tomcat 官网(http://tomcat.apache.org/)
本次选择的是最新版本,本次安装环境是centos7。
我是直接用wget命令下载
在这里插入图片描述
解压文件夹
tar -zxvf apache-tomcat-8.5.40.tar.gz
重新命名
mv apache-tomcat-8.5.40 tomcat-1
同样的,再次解压安装包,命名为tomcat-2
mv apache-tomcat-8.5.40 tomcat-2
1)修改 tomcat 端口号
将 tomcat-1 的 http 端口设置为8080,将 tomcat-2 的 http 端口设置为8081。
进入tomcat的conf文件夹,修改server.xml
vim server.xml
修改SHUTDOWN、HTTP/1.1、redirectPort、AJP/1.3端口,使其错开,避免重启的时候,报端口被占用问题
tomcat-1 的SHUTDOWN、HTTP/1.1、redirectPort、AJP/1.3设置如下:
<!--关闭服务端口-->
<Server port="9005" shutdown="SHUTDOWN">
...
<!--HTTP服务端口8080,跳转端口9443-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9443" />
<!--AJP服务端口-->
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
...
</Server>
tomcat-2 的SHUTDOWN、HTTP/1.1、redirectPort、AJP/1.3设置如下:
<!--关闭服务端口-->
<Server port="10005" shutdown="SHUTDOWN">
...
<!--HTTP服务端口8081-->
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="10443" />
<!--AJP服务端口-->
<Connector port="10009" protocol="AJP/1.3" redirectPort="10443" />
...
</Server>
2)启动服务
分别进入 tomcat-1 、 tomcat-2 的bin文件夹,执行脚本,启动服务
sh startup.sh
查看服务是否启动成功
ps -ef|grep tomcat
可以直接在浏览器上分别输入ip:8080、ip:8081进行访问了,结果如下:
在这里插入图片描述
3)编写Html
为了便于测试,我们创建一个html格式的页面,文件命名为index.html,内容如下:
进入tomcat-1的webapps文件夹,删除ROOT文件夹里面的东西,创建index.html文件;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
Hello server1!
</body>
</html>
进入tomcat-1的webapps文件夹,删除ROOT文件夹里面的东西,创建index.html文件;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
Hello server2!
</body>
</html>
4)测试
创建好了之后,分别在浏览器上访问ip:8080、ip:8081;
ip:8080,结果如下:
在这里插入图片描述
在这里插入图片描述
实现负载均衡
进入 Nginx 的配置文件夹
cd /usr/local/nginx/conf
编辑nginx.conf配置文件
vim nginx.conf
主要新增upstream集群配置点,配置如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
#服务器的集群(这个就是我们要配置的地方)
#test.com:服务器集群名字,自定义
upstream test.com {
#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
#127.0.0.1:8080、127.0.0.1:8081对应tomcat服务器地址
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}
server {
listen 83;
server_name localhost;
location / {
· #配置反向代理地址
proxy_pass http://test.com;
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
参数说明:
•worker_processes:工作进程的个数,一般与计算机的cpu核数一致
•worker_connections:单个进程最大连接数(最大连接数=连接数*进程数)
•include:文件扩展名与文件类型映射表
•default_type:默认文件类型
•sendfile :开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
•keepalive_timeout:长连接超时时间,单位是秒
•upstream:服务器的集群配置点
配置好之后,进入/usr/local/nginx/sbin/ 文件夹,重新刷新配置文件
./nginx -s reload
最后,访问Nginx服务器所在ip:83地址,多次刷新,看看效果:
在这里插入图片描述
多刷几次
在这里插入图片描述
防火墙的开启
####开启防火墙
[root@localhost httpd]# systemctl start firewalld
####添加81端口放行规则
[root@localhost sysconfig]# firewall-cmd --zone=public --add-port=83/tcp --permanent
success
####添加8080端口放行规则
[root@localhost sysconfig]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
####添加8081端口放行规则
[root@localhost sysconfig]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
success
####重新加载一下
[root@localhost httpd]# sudo firewall-cmd --reload
更多资源和教程请关注公众号:非科班的科班。
如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力最后分享一波java的资源,资源包括java从入门到开发的全套视频,以及java的26个项目,资源比较大,大小大概是290g左右,链接容易失效,获取的方式是关注公众号:非科班的科班,让后回复:java项目即可获得,祝大家学习愉快
Centos 7搭建Nginx负载均衡,最简单。的更多相关文章
- Net分布式系统之二:CentOS系统搭建Nginx负载均衡
一.关于CentOS系统介绍 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat ...
- Net分布式系统之二:CentOS系统搭建Nginx负载均衡(下)
上一篇文章介绍了VMWare12虚拟机.Linux(CentOS7)系统安装.部署Nginx1.6.3代理服务做负载均衡.接下来介绍通过Nginx将请求分发到各web应用处理服务. 一.Web应用开发 ...
- Nginx系列一:正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
转自https://www.cnblogs.com/leeSmall/p/9351343.html 仅供个人学习 一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器( ...
- docker 搭建 nginx负载均衡
本文描述如何在一台机器上搭建nginx负载均衡,我将会启动3个nginx的docker,分别是1台前置nginx负责分发,后面2台负责处理请求. 首先我切换到/usr/local/docker/文件夹 ...
- Nginx负载均衡配置简单配置方法
http://www.jb51.net/article/121235.htm Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器.下面通过 ...
- Nginx系列篇二:linux搭建Nginx负载均衡
建议先搭建好Nginx环境 可阅读--->Linux中搭建Nginx 1.准备好三台服务器[标配] 一.nginx负载均衡服务器:192.168.102.110,配置好Nginx 二.tomca ...
- nginx负载均衡的简单实现
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
- Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验
实验拓扑图: 实验环境: 在VMware workstation搭建虚拟环境,利用网络适配器的Nat和桥接模式模拟内网和外网环境. 实验过程中需要安装的工具包包括:vim unzip lrzsz ls ...
- Linux学习10-CentOS搭建nginx负载均衡环境
前言 当自己的web网站访问的人越来越多,一台服务器无法满足现有的业务时,此时会想到多加几台服务器来实现负载均衡. 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,怎样将同一个域名的访问分散 ...
随机推荐
- poj/OpenJ_Bailian - 2528 离散化+线段树
传送门:http://bailian.openjudge.cn/practice/2528?lang=en_US //http://poj.org/problem?id=2528 题意: 给你n长海报 ...
- Android2_分析项目的结构
一.项目结构 成功运行第一个AS项目HelloWorld之后,我们开始试着分析一下这个项目.毕竟知其然也要知其所以然. 这是一个安卓的项目结构(实际上这是安卓模式的项目结构) 我们可以切换成Proje ...
- Python9_类
类的基础知识 属性:类变量.实例变量.方法:初始化方法 __init__ //初始化方法不是必须的:其他方法: //类的定义class Employee: empCount = 0 //类变量,有些 ...
- shellcode超级反杀
shellcode超级免杀 作者声明: 本文章属于作者原创,不能转载,违反网络安全法自己承担.这里只供学习使用. 日期: 2019-12-30 我试过了电脑管家,火绒安全,360....一系列杀毒软件 ...
- 洛谷$P1864\ [NOI2009]$二叉查找树 区间$dp$
正解:区间$dp$ 解题报告: 传送门$QwQ$ 首先根据二叉查找树的定义可知,数据确定了,这棵树的中序遍历就已经改变了,唯一能改变的就是通过改变权值从而改变结点的深度. 发现这里权值的值没有意义,所 ...
- 「2015南阳CCPC D」金砖 解题报告
金砖 Problem 有一个长度为L的板凳,可以放一排金砖,金砖不能重叠.特别的,摆放的金砖可以超出板凳,前提是必须保证该金砖不会掉下去,即该金砖的重心必须在板凳上. 每块金砖都一个长度和价值,且金砖 ...
- mysql oracle sql获取树 父级 子级 及自己
select * from ( select t.*,d.TABLE_NAME,d.QUERY_SQL,d.data_control_col,d.id table_id,d.where_sql fro ...
- Spring AOP 基于AspectJ
简介 AspectJ是一个基于Java语言的AOP框架,Spring2.0以后新增了对AspectJ切点表达式支持.因为Spring1.0的时候Aspectj还未出现; AspectJ1.5中新增了对 ...
- C#反射与特性(六):设计一个仿ASP.NETCore依赖注入Web
目录 1,编写依赖注入框架 1.1 路由索引 1.2 依赖实例化 1.3 实例化类型.依赖注入.调用方法 2,编写控制器和参数类型 2.1 编写类型 2.2 实现控制器 3,实现低配山寨 ASP.NE ...
- Java框架之Spring01-IOC-bean配置-文件引入-注解装配
Spring 框架,即framework.是对特定应用领域中的应用系统的部分设计和实现的整体结构.就相当于让别人帮你完成一些基础工作,它可以处理系统很多细节问题,而且框架一般是成熟,稳健的. Spri ...
