Nginx入门使用

正文

正向代理VS反向代理与负载均衡

  1. 正向代理:一个专门在用户和某个网站中间做中介的服务器,比较常见的就是用户自己安装的VPN
    在这里插入图片描述
  2. 反向代理:反向代理隐藏了真实的服务端,通常是为网站服务的,比如网站有多个服务器(应用服务器、数据库服务器、文件服务器等等),则用户的访问会被代理,反向代理可以看作网站请来守门口的在这里插入图片描述
  3. 负载均衡:一个人搞不定的事,多找几个人来承担,而Nginx则可以作为协调,把请求交给适合的服务器,这种操作就是负载均衡
    在这里插入图片描述

Nginx基本操作

  1. 安装:我用的是Mac,直接 brew install nginx
  2. 启动:nginx 启动:nginx
  3. 关闭:nginx [ -s stop]关闭:nginx [ -s stop]
  4. 重启:nginx [ -s reload],如果重启会重新加载配置文件重启:nginx [ -s reload],如果重启会重新加载配置文件
  5. 很多配置是关注nginx.conf这个配置文件很多配置是关注nginx.conf这个配置文件

反向代理

  1. 将server字段下的location字段改成如下
location / {
    root   html;
    # index  index.html index.htm;
    proxy_pass http://http://127.0.0.1:8111;   # 反向代理,表示把请求都交给http://127.0.0.1:8111来处理
}
  1. 注意点:在这里,proxy_pass是nginx固有的key,与自己定义一个url的域名是不一样的

负载均衡

  1. 在http的字段下增加参与共同负载的服务器(把服务员都记录遍),并给这个“集群”自定义一个名字(后面要用),比如tomcat_8111_8222,在这里权重越大的服务器被分到的可能性越高
upstream tomcat_8111_8222{
    server	127.0.0.1:8111 weight=1;
    server	127.0.0.1:8222 weight=2;
}
  1. 重新修改server.location字段下的proxy_pass属性,反向代理这个新的集群
location / {
    proxy_pass http://tomcat_8111_8222;
}

session共享

经过负载均衡后会将请求分到不同的服务器,但是session里面的内容却不能共享,这样一来用户在两个服务器上的信息则不一致了,会让用户不爽
针对这个问题,有两种解决方式

  1. 使用ip_hash,即一旦给一个用户代理到某个服务器后,后面对他的服务都进入相同的服务器,这样做就失去了负载均衡和容灾的效果
  2. 使用redis来存取session,tomcat有和redis交互的jar包,在参与到负载均衡的tomcat的配置文件中context.xml中加上以下字段即可
  3. 记得开启redis,否则tomcat启动就抛异常了
    在这里插入图片描述
    <!--tomcat和redis连通的字段-->
    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
    host="127.0.0.1"  
    port="6379"  
    database="0"  
    maxInactiveInterval="60" /> 
    

参考资料

  1. how2j——Nginx教程
  2. 知乎——反向代理为何叫反向代理?知乎——反向代理为何叫反向代理?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值