Tengine的简单使用篇(动静分离,共享yum源等),tengineyum


Tengine


tenginenginx的改装版,具有所有nginx的功能,并且另外添加了一部分功能,

nginx适用于高并发访问的负载均衡,不适用上传和下载任务较多的io服务


tengine官方中文文档:http://tengine.taobao.org/nginx_docs/cn/docs/


如果想体验nginx使用但是还没有安装nginx的伙伴,可以参考这个:https://blog.csdn.net/weixin_39445556/article/details/80808312



A-nginx的组成

-------------------------------------

分为masterworker两个角色

master负责管理worker

worker是实际负责处理任务的角色.


B-配置文件设置(打开自己环境的${NGINX_HOME}/conf/nginx.conf对比学习效果更好哦)

--------------------------------------

1-${nginx_home}/conf/nginx.conf中通过设置worker_processes来设置一个服务器启动几个worker,一般情况设置同该机器内核数量相     .如果不知道机器机器的数量,可以设置为auto自动匹配机器内核数.

worker_processes num | auto (位置在nginx.conf文件的开头部分)

worker_processes 	num | auto		(位置在nginx.conf文件的开头部分)

注意,只有tengine才有auto选项,nginx只支持num


2-通过设置events中的worker_connections来限制每个worker的最大连接数,连接数应该大于服务器分配到每个worker上的最大连接数,缺省值是1024,一般不用改变.

events{
	worker_connections 		1024
	}

位置在worker_processes的下面一点.



3-server配置部分包含在http配置里.server部分的listen选项设置的是监听的哪个端口,一个配置文件中可以有多个server配置,每个server配置可以监听同样或不同的端口,各个server可以通过server_name来区分.

一般的,server_name会设置成域名/ip,目的是通过用户访问的url信息来确定哪个server来响应请求.通过这个办法可以使用一个服务器同时为多个域名提供服务,达到了虚拟主机的效果.配置如下

    

server {                                                                                                                                     
  listen 80;                                                                                                                               
  server_name www.test2.com;                                                                                                               
  location / {                                                                                                                             
    root /opt/test2;                                                                                                                     
  }                                                                                                                                        
}                                                                                                                                            
                                                                                                                                                   
server {                                                                                                                                     
  listen 80;                                                                                                                               
  server_name www.test3.com;                                                                                                               
  location / {
    root /opt/test3;
  }
}

两个server都监听80端口,不过分别为项目Test1Test2服务


4-location决定了响应请求对应的文件,配置位于server配置的内部.结构:location [ = | ~ | ~* | ^~ ] uri {  ...  }

精确到一个具体的文件

正则匹配,区分大小写

~* 正则匹配,不区分大小写

^~ 不使用正则匹配

无符号,直接写uri,可以匹配指定的该目录下所有文件.

优先级 = > ^~ > ~ | ~* > 直接写uri


server {                                                                                                                                     
  listen 80;                                                                                                                               
  server_name www.test2.com;                                                                                                               
  location / {                                                                                                                              
    root /opt/test2;                                                                                                                     
    index index.html index1.html;                                                                                                        
  }                                                                                                                                        
}     

上面的配置,可以通过www.test2.com/index.html访问index.html,也可以通过www.test2.com/index1.html访问Index1.html.当不输入具体文件时,访问按照名字字符排序靠前的文件.


                                                                                                                                                

       

server {                                                                                                                                     
  listen 80;  
  server_name www.test3.com;                                                                                  
  location = / {   
    root /opt/test2;                                                                                                                     
  }                                                                                                                                        
  location / {            
    root /opt/test3;  
  }             
}      


配置文件如上边例子一样时,访问的地址是location / {...},官网给出的答案不对.



5-ip访问权限控制,权限配置在location选项中.deny ip为拒绝的ip,allow ip为允许的ip

例如

location / {
  allow 192.168.1.1;
  deny  192.168.1.0/24;
  allow 2001:0db8::/32;
  deny all;
}


规则按照顺序依次检测,直到匹配到第一条规则。在192.168.1.x的网段中,只有192.168.1.1被允许访问了.ipv6网段中,只有2001:0db8::/32被允许了.

      

server {                                                                                                                           
  listen 80;                                                                                                                     
  server_name www.test2.com;                                                                                                     
  location / {                                                                                                                   
    deny all;                                                                                                                  
    allow 192.168.1.102;                                                                                                       
    root /opt/test2;                                                                                                           
    index index.html index1.html;                                                                                              
  }                                                                                                                              
}

当配置如上所示时,192.168.1.102没有访问权限.


6-权限验证访问控制.同样写在location配置中.需要添加两个选项.

auth_basic           "closed site"; --身份验证时的提醒信息

   auth_basic_user_file conf/htpasswd; --指定存放验证信息(用户名密码)的文件


存放用户名和密码的文件是自己提前使用加密工具生成的,可以是SHA加密,MD5加密,也可以用apachehtpasswd加密



7-通过location配置的autoindex on选项可以设置目录共享,yum源共享.

location /mirror {
  root /mnt;
  autoindex on;
}

如上配置当其他用户访问http://ip/mirro的时候可以看到并下载/mnt/mirro下的所有文件.yum的配置文件yum.repos.d文件的baseurl选项配置为http://ip/mirro,yum clean,yum makecatched可以将该目录作为yum.


8-通过nginx服务器设置动静分离.动静分离指动态请求和静态请求的分离.

动静分离概念:http://baijiahao.baidu.com/s?id=1588586920645843819&wfr=spider&for=pc


动态请求都是以 .jsp/.action/.do结尾的请求,可以通过location选项实现.

location ~* \.(jsp|do|action)$ {
  proxy_pass 	http://集群名 (或者具体某台机器的ip和端口)
}

当需要将请求传递到一个集群的时候,集群需要在upstream配置中配置好集群信息.upstringserver选项外.

upstream 集群名 {
  server ip:端口;
  server ip:端口;
}

集群名称需要跟locationproxy_pass调用的对应.proxy_pass作用是请求转发.



9-使用memcatched设置session共享.

a-安装mamcatched yum -y install memcatched

b-启动memcatched service memcatched start    监听11211端口

c-memcatched jar包放到tomcatlib,jarSXTZMB/tengine/memcatched_lib中和下载/服务器集群/memcatched_lib,注意版本.

d-tomcat/conf/context.xml中的<Context></Context>标签中配置memcatched的信息.粘贴如下内容即可.

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

memcachedNodes=“n1:192.168.1.132:11211" 

    sticky="false" 

    lockingMode="auto"

    sessionBackupAsync="false"

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

    sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

注意ip.每台tomcat服务器都要更改,两台主机的名称需要设置一样,就是n1这个名字要相同,

两台tomcat的服务器时间要同步.



10-nginx实现伪静态

通过nginx_http_rewrite_module来实现.可以使用正则替换url.

http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_rewrite_module.html



相关内容

    暂无相关文章