Nginx

Nginx简介

Nginx是一款轻量级的Web 服务器/反向代理服务器 ,占有内存少,并发能力强,官方测试nginx能够支撑5万并发链接,并且CPU、内存等资源消耗却非常低,运行非常稳定。

Tengine淘宝基于Nginx研发的web服务器。

使用场景

高并发场景

高并发通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。

负载均衡(load Balance ):将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】

正向代理

一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

反向代理

客户只需要发送请求到代理服务器,代理服务器会将请求转发给内部的服务器去处理,处理完毕之后会将结果返回给客户,整个过程中客户和实际处理服务器是不会直接建立连接的。

Ngin源码安装

  • 将安装包上传到Linux虚拟机上
  • 解压,把Nginx存放到指定目录
tar -zxf nginx-1.8.1.tar.gz
  • 安装nginx依赖的软件
yum install gcc pcre-devel zlib-devel openssl-devel -y
  • 下载完成后进入 nginx-1.8.1目录就会看到如图内容

  • 配置安装路径
./configure --prefix=/opt/oykj/nginx-1.8.1
  • 开始编译并安装nginx   
make && make install
  • 进入到sbin目录下开启Ngxin
cd /opt/oykj/nginx-1.8.1/sbin
./nginx

服务器端口就是自己虚拟机的IP

http://192.168.10.110/

常用命令

关闭nginx服务
kill `cat /usr/local/nginx/logs/nginx.pid`

nginx -s reload  :修改配置后重新加载生效
nginx -s reopen  :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

关闭nginx:
nginx -s stop  :快速停止nginx
         quit  :完整有序的停止nginx

其他的停止nginx 方式:
ps -ef | grep nginx

kill -QUIT 主进程号     :从容停止Nginx
kill -TERM 主进程号     :快速停止Nginx
pkill -9 nginx          :强制停止Nginx

启动nginx:
nginx -c /path/to/nginx.conf

平滑重启nginx:
kill -HUP 主进程号

安装目录

Nginx负载均衡

集群搭建

  • 一共四台虚拟机

  • 节点搭建
节点\角色NginxTomcatJDK
basenode* *
node01 **
node02 **
node03 **
  • BaseNode修改配置文件
cd /opt/oykj/nginx-1.8.1/conf
vi nginx.conf

进入文件后,修改为

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  0;

    upstream oykj {
		server 192.168.88.101:8080;
		server 192.168.88.102:8080;
		server 192.168.88.103:8080;
    }

    server {
        listen       80;
        server_name  localhost;
        location / {
			proxy_pass http://oykj;
        }
    }
}

Tomcat配置信息

  • 在node01节点上配置
vi /opt/oykj/apache-tomcat--8.5.47/webapps/ROOT/index.jsp

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
    <head>  
        <meta charset="UTF-8" />
        <title>xxxxx</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
    </head> 
    <body>  
        <h1>welcome to xxxxx</h1> 
        <h2>Server:<%=request.getLocalAddr()  %></h2> 
        <h2>Port:<%=request.getLocalPort()  %></h2> 
        <h2>Client:<%=request.getRemoteAddr() %></h2> 
        <h2>Session:<%=session.getId() %></h2> 
    </body>
</html>
  • 配置完成后拷贝到node02,node03节点上
scp index.jsp root@192.168.88.102:`pwd`

  • 拷贝完成后启动三台服务器,三台均输入此命令
#进入目录
cd /opt/oykj/apache-tomcat-8.5.47/bin/
#启动服务器
./startup.sh

进入服务器

负载策略

请求轮回

  • 依次转发给配置的服务器

增加权重

  • 使用服务器权重,还可以进一步影响nginx负载均衡算法,谁的权重越大,分发到的请求就越多。
upstream xxxweight {
    server 192.168.88.101:8080 weight=1;
    server 192.168.88.102:8080 weight=2;
    server 192.168.88.103:8080 weight=3;
}

最少连接数

  • 在连接负载最少的情况下,nginx会尽量避免将过多的请求分发给繁忙的应用程序服务器,而是将新请求分发给不太繁忙的服务器,避免服务器过载。
upstream xxxleast {
	least_conn;
    server 192.168.88.101:8080;
    server 192.168.88.103:8080;
}

IpHash

  • 确保来自同一客户端的请求将始终定向到同一台服务器,除非此服务器不可用
upstream xxxhash {
	ip_hash;
    server 192.168.88.101:8080;
    server 192.168.88.103:8080;
}

单Linux搭建多Tomcat

  • 把Tomcat改名为apache-tomcat-8080
mv apache-tomcat-8.5.47 apache-tomcat-8080

  • 拷贝一份apache-tomcat-8080并改名为apache-tomcat-18080
cp -r apache-tomcat-8080 apache-tomcat-18080

  • 修改环境变量
vi /etc/profile
  • 进入之后Ctrl+G跳到最后一行,加入下方代码
#tomcat8080
export CATALINA_HOME=/opt/oykj/apache-tomcat-8080
export CATALINA_BASE=/opt/oykj/apache-tomcat-8080
export TOMCAT_HOME=/opt/oykj/apache-tomcat-8080

#tomcat18080
export CATALINA_HOME18080=/opt/oykj/apache-tomcat-18080
export CATALINA_BASE18080=/opt/oykj/apache-tomcat-18080
export TOMCAT_HOME18080=/opt/oykj/apache-tomcat-18080
  • 修改server.xml文件
#进入目录
cd /opt/oykj/apache-tomcat-18080/conf/

vi server.xml

进入后ctrl+:
输入set nu

此命令是显示行数

22行--默认为8005--》修改为18005
<Server port="18005" shutdown="SHUTDOWN">     
69行--默认为8080--》修改为18080
<Connector port="18080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
116行-默认为8009--》修改为18009
<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
  • 进入bin目录下修改catalina.sh
####################第二台tomcat配置,113行开始
export CATALINA_BASE=$CATALINA_BASE18080
export CATALINA_HOME=$CATALINA_HOME18080
export TOMCAT_HOME=$TOMCAT_HOME18080

重新加载环境变量
source /etc/profile
  • 分别启动两台Tomcat
./apache-tomcat8080/bin/startup.sh
./apache-tomcat18080/bin/startup.sh
  • 此时8080端口,18080端口都能访问

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值