1. 背景

基于nginx强大的功能,实现一种负载均衡,或是不停机更新程序等。nginx相比大家基本上都知道是什么来头了,具体的文章大家可以去搜索相关文章学习阅读,或是可以查看Nginx中文文档Nginx官网。本博文主要实现的功能大致功能流程如下图:

2. Nginx安装及使用

2.1 安装过程

查看官网文档,我是CentOS系统,因此采用yum源安装。首先要设置yum源,新增文件/etc/yum.repos.d/nginx.repo,并增加如下设置:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=
enabled=

其中要注意的地方是baseurl的设置,官网给的这个url不是最终路径,如果你用的是红帽系统路径中的OS要替换成rel,如果是用的CentOS系统则替换成centos,OSRELEASE替换成对应的系统版本,我用的CentOS系统7,则我的最终路径是http://nginx.org/packages/centos/7/$basearch/,其中在浏览器访问http://nginx.org/packages/centos/7会看到如下信息,说明是可以下载安装的:

yum源设置后,可以在命令行窗口搜索一下看看,

# 搜索yum源中,包含Nginx的安装包
yum search nginx

既然有了yum源了,直接安装接可以了, 按提示输入y直到安装成功。

# 安装Nginx
yum install nginx

2.2 Nginx启动

Nginx的启动很简单,安装成功后,在命令行执行 nginx 即可,启动成功后可以过滤查看进程

# 过滤进程中是否有nginx
ps -ef | grep nginx

存在nginx进程的话,就可以访问浏览器了,看到如下效果,Welcome to nginx!

2.3 Nginx常用命令

  nginx -s quit         优雅停止nginx,有连接时会等连接请求完成再杀死worker进程

nginx -s reload     优雅重启,并重新载入配置文件nginx.conf

nginx -s reopen    重新打开日志文件,一般用于切割日志

nginx -v               查看版本

nginx -t               检查nginx的配置文件

nginx -h              查看帮助信息

 nginx -V              详细版本信息,包括编译参数

nginx  -c file        指定配置文件

3. docker启动tomcat

3.1 获取最新tomcat

#在docker仓库获取最新的tomcat镜像
docker pull tomcat

3.2 添加两个静态页面

静态页面模拟启动的程序,区分两个tomcat,简单的html页面,启动tomcat时要加载到webapps目录下。

在目录/data/tomcat1/ROOT下添加静态文件index.html

<html>
  <head></head>   <body>
    <h1>This is tomcat 1 server</h1>
  </body> </html>

在目录/data/tomcat2/ROOT下添加静态文件index.html

<html>
  <head></head>   <body>
    <h1>This is tomcat 2 server</h1>
  </body> </html>

3.3 启动两个tomcat

# 启动tomcat1
docker run --name tomcat1 -p : -v $PWD/tomcat1/ROOT:/usr/local/tomcat/webapps/ROOT -d tomcat
# 启动tomcat2
docker run --name tomcat2 -p : -v $PWD/tomcat2/ROOT:/usr/local/tomcat/webapps/ROOT -d tomcat 参数说明:
--name 启动的名称
-p 端口映射,8060:8080,为宿主机的8060端口映射到docker容器的8080端口
-v 设置路径
   $PWD/tomcat1/ROOT:/usr/local/tomcat/webapps/ROOT
   将当前目录下的tomcat1/ROOT目录挂载到要启动的docker容器tomcat的webapps/ROOT目录下,$PWD/tomcat1/ROOT也可以换成全路径,比如/data/tomcat1/ROOT.
-d 是后台启动

3.4 访问两个tomcat

4. 配置nginx实现负载均衡

yum安装,nginx默认安装目录在 /etc/nginx目录下。其中nginx.conf是主要配置文件,一般该文件是不动的,其中目录conf.d是用来存放用户新增的配置文件。在conf.d目录下新增配置文件tomcat_server.conf,详细配置如下:

upstream tomcat-server{
server 172.16.106.244: weight=;
server 172.16.106.244: weight=;
}
server {
listen ; # 监听8010端口
server_name localhost; location / {
proxy_pass http://tomcat-server;
}
}

#server_name:表示监听到之后需要转到哪里去。

#location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

#weight=1 表示权重,值越大可能被请求的次数越多

#注意upstream 后面名字的命名,不能有下划线“_”,否则在跳转访问的时候会出现400的情况。

 

设置完毕后要重新加载配置文件,nginx的一个好处就是不用重启,执行以下命令就好了:

# 重新加载配置并生效
nginx -s reload

这样就可以访问8010端口了,页面会在1和2之间交替出现,1的比重设置的是5,出现的次数较多一些。

5. 总结

本次博文主要是对nginx的简单使用,以及实现一些后面可能用到的功能,比如负载均衡、静态网站的替换等等,nginx的功能还是很强大的。目前也是简单的会用,还没深入了解高级功能,等有了新的认识再来更新该博文,如有不正确的地方欢迎指正学习,谢谢阅读!

Nginx安装使用及与tomcat实现负载均衡的更多相关文章

  1. Nginx安装部署(反向代理与负载均衡)

    一.下载安装Nginx(本文环境为windows xp 32bit环境) 下载地址:http://files.cnblogs.com/likehua/nginx-1.0.11.zip 解压nginx- ...

  2. Nginx 服务器 之Nginx与tomcat实现负载均衡

      本文讲解我们如何使用Nginx做反向带服务器,实现nginx与tomcat服务器集群做负载均衡. 一.nginx与tomcat实现负载均衡 1.在/usr/local/ngnix/conf  创建 ...

  3. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  4. Tomcat(五):nginx/httpd + tomcat及负载均衡tomcat

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  5. Linux 下配置 nginx + 两个 tomcat 的负载均衡

    前提:已经安装了 nginx 和两个 tomcat 1.修改 nginx.conf 配置文件    1)在 http{} 节点之间添加 upstream 配置 2)修改 nginx 的监听端口,默认是 ...

  6. 使用 Nginx + Tomcat 搭建负载均衡

    负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance, ...

  7. [Linux]nginx tomcat做负载均衡

    之前使用nginx做过web反向代理,没有做过负载均衡,今天有个同学须要做tomcat的负载均衡,我也研究下. 一共是2个机器,一个物理机(win7)上面部署2个tomcat,使用不同的port启动. ...

  8. nginx+tomcat实现负载均衡集群

    一台tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下 所以需要一套可靠的解决方案来完善web站点架构 而Nginx只能访问静态页面,如果需要动态需要 ...

  9. nginx+tomcat实现负载均衡以及双机热备

    还记得那些年吗? 还记得更新代码之后,服务器起不来被领导训斥吗?还记得更新代码,需要停机过多的时间被渠道部们埋怨吗?还记得更新代码,代码出错时自己吓个半死吗?于是我们聪明勤快的程序员,看着电影待到夜深 ...

随机推荐

  1. shell入门练习

    **定义局部变量, 局部变量在退出Shell客户端时会失效** **单引号:原样输出** **双引号:如果里面有变量,会输出变量** **没有引号:输出变量** 可以在调用脚本的时候给脚本传递参数,脚 ...

  2. 【fiddler】抓取https数据失败,全部显示“Tunnel to......443”

    这个问题是昨天下午就一直存在的,知道今天上午才解决,很感谢“韬光养晦”. 问题描述:  按照网络上的教程,设置fiddler开启解密https的选项,同时fiddler的证书也是安装到系统中,但是抓取 ...

  3. 2018.11.06 NOIP训练 简单的计数问题(计数dp)

    传送门 直接f[i][j]f[i][j]f[i][j]表示已经到第iii个位置已经找到jjj个的方案数. 简单转移一下就行了. 代码

  4. [zhuan]SQLServer查询最近一天,三天,一周,一月,一季度方法

    三天 select * from T_news where datediff(day,addtime,getdate())<= 2 and datediff(day,addtime,getdat ...

  5. 纯css实现网络图标

    <html> <head> <title>css图标</title> <meta charset="utf-8"> &l ...

  6. javaScript正则表达式的使用

    今天看了一个正则的写法,回想一下,对于正则都忘记得差不多了,称这个时间整理一下,收集了一些以前的资料和查看了一些别人的资料,做一个小小的总结,方便自己以后查看,也希望能帮助到大家!!   欢迎指正,欢 ...

  7. tomcat 服务器故障排除

    故障现象 通过浏览器访问tomcat服务器发现服务器没有响应. 问题分析检查 登陆服务器发现,TOMCAT服务器并没有宕机,服务还在. 使用JPS命令查看了一下tomcat的进程ID,获取进程ID后, ...

  8. bootstrap-glyph-customization

    http://www.runoob.com/try/demo_source/bootstrap-glyph-customization.htm http://fontawesome.io/icons/

  9. ZOJ 2132 The Most Frequent Number (贪心)

    题意:给定一个序列,里面有一个数字出现了超过 n / 2,问你是哪个数字,但是内存只有 1 M. 析:首先不能开数组,其实也是可以的了,后台数据没有那么大,每次申请内存就可以过了.正解应该是贪心,模拟 ...

  10. [指南] 15分钟学会MySQL(Linux版)

    原文链接:http://www.mysqlpub.com/thread-348-1-1.html 原创出处:MySQLpub.com  , 作者:kider  ,转载请注明作者和出处,并不能用于商业用 ...