zoukankan      html  css  js  c++  java
  • Nginx安装使用及与tomcat实现负载均衡

    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=0
    enabled=1

    其中要注意的地方是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 8060:8080 -v $PWD/tomcat1/ROOT:/usr/local/tomcat/webapps/ROOT -d tomcat # 启动tomcat2
    docker run --name tomcat2 -p 8090:8080 -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:8090 weight=1;
        server 172.16.106.244:8060 weight=5;
    }
    server {
        listen       8010;  # 监听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的功能还是很强大的。目前也是简单的会用,还没深入了解高级功能,等有了新的认识再来更新该博文,如有不正确的地方欢迎指正学习,谢谢阅读!

  • 相关阅读:
    面向对象之魔术方法
    装饰器和单例模式练习
    装饰器练习
    扩展数据类型练习
    Vlan的 tag 和 untagged
    【转】OSI 七层模型和TCP/IP模型及对应协议(详解)
    性能测试的相关概念和指标。
    Python接口自动化之数据驱动
    Python接口自动化之登录接口测试
    Python接口自动化之unittest单元测试
  • 原文地址:https://www.cnblogs.com/soinve/p/9488411.html
Copyright © 2011-2022 走看看