Nginx基础入门

15 篇文章 0 订阅
13 篇文章 0 订阅

Nginx

1.简介

1.1什么是Nginx?

Nginx就是一个服务器,他可以作为http服务器,反向代理服务器,也可以作为邮件代理服务器。

Nginx的特点是占用内存少,并发处理能力强。Nginx的并发处理能力在同类的Web服务器中表现较好,在全世界范围内,有大量的网站在使用Nginx。如国内的:淘宝,新浪,网易等等。

1.2安装

  • 下载

    我的版本CentOS版本是7mini

    下载Nginx

    使用Xshell6用它来远程管理Linux十分好用

  • 安装前置库
    yum -y install gcc gcc-c++ make automake pcre pcre-devel zlib zlib-devel openssl openssl-devel
    
  • 上传
    yum -y install lrzsz
    rz -y
    

1.3部署一个静态网站

  • 将准备好的静态网站打包上传,上传目录为:/opt/www

在这里插入图片描述

  • 在该目录下解压文件,没有unzip,使用yum安装一个

    unzip disney.zip
    
  • 修改Nginx主配置文件,在server中加入

    location /disney {
                root /opt/www;
                index index.html;
            }
    
  • 重新加载

    nginx -s reload
    
  • 通过浏览器访问
    在这里插入图片描述

2.负载均衡

2.1什么是负载均衡?

随着业务量的增大,一台服务器压力越来越大,我们不可能一直换更高级的服务器,此时可以增加服务器数量,构建"集群"提供服务,将请求分发到各个服务器上。所谓负载均衡就是将请求分配给集群中不同的服务器上。

原理图

在这里插入图片描述

2.2安装tomcat

  • 准备3个tomcat

在这里插入图片描述

  • 修改配置

  • 启动服务

    //启动tomcat
    ./apache-tomcat-9.0.39-8081/bin/startup.sh
    
  • 开放端口

    //开启端口
    firewall-cmd --add-port=8090/tcp --permanent
    //重启端口
    firewall-cmd --reload
    //查看端口
    firewall-cmd --list-ports
    
  • 准备一个简单项目打成war包

  • 上传,部署

  • 负载均衡配置

    user  nobody;
    worker_processes  4;
    
    pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        gzip  on;
    #   //注意
        upstream www.myweb.com {
            server 172.16.2.130:8081;
            server 172.16.2.130:8082;
        }
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    #   //注意
            location /myweb {
                proxy_pass http://www.myweb.com;
            }
    	
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    
  • 测试刷新

在这里插入图片描述
在这里插入图片描述
注意:
我只准备了两个tomcat端口,只要访问就会看到8081和8082之间切换。

jsp页面代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="utf-8">
    <title>index.jsp</title>
</head>
<body>
    <h3>Hello, JSP</h3>

    本次请求的端口号是:8080 <br>
    会话id: <%=session.getId()%>
</body>
</html>

2.3负载均衡策略(详情轮询算法之前发的

  • 轮询

    Nginx默认会将请求均匀的转发给tomcat服务器

  • 权重轮询weight

    平滑加权轮询算法

    upstream www.myweb.com {
    	server 172.16.2.130:8081 weight=3;
    	server 172.16.2.130:8082 weight=1;
     	server 172.16.2.130:8083 weight=1;
    }
    

    轮询顺序:

  • ip_hash

    Nginx获取发起请求的客户端ip,然后计算出ip地址的hash值,根据这个hash值将请求转发给tomcat,只要客户端ip地址不变,这个客户端就会一直访问同一个tomcat。

    upstream www.myweb.com {
     ip_hash;
    	server 172.16.2.130:8081 weight=3;
    	server 172.16.2.130:8082 weight=1;
     	server 172.16.2.130:8083 weight=1;
    }
    
  • 最少连接least_conn

    请求会被转发到连接数最少的tomcat服务器上

    upstream www.myweb.com {
    least_conn;
    	server 172.16.2.130:8081 weight=3;
    	server 172.16.2.130:8082 weight=1;
    }
    
  • backup服务器
    upstream www.myweb.com {
    	server 172.16.2.130:8081 weight=3;
    	server 172.16.2.130:8082 weight=1;
     	server 172.16.2.130:8083 backup;
    }
    

    当占用8081和8082端口的服务器都挂掉,端口为8083的tomcat服务器才会处理请求。在实际应用中,这是用来恢复数据的。

3.代理服务器

指在局域网内部的机器通过代理服务器发送请求到互联网服务器,代理服务器一般在客户端。Nginx是反向代理。

3.1正向代理

客户端知道自己的请求,最终被转发到那个服务器上。
正向代理的是客户端,是把代理服务器配置在客户端。

3.2反向代理

客户端不知道自己的请求,最终被转发到那个服务器上。
反向代理的是服务器端,是把代理服务器配置在服务端。

4.动静分离

nginx部署静态网页,tomcat部署动态web。

客户端将请求动态网站发给nginx nginx转发给tomcat,tomcat将文件解析后发给nginx,nginx将数据流发给客户端。

为了减轻服务器压力进行动静分离,tomcat不擅长处理html文件,所以在实际应用中,我们将静态资源(图片、css、html、js等)都交给Nginx处理,Nginx更擅长于静态资源的处理,性能更好,效率更高!把静态资源部署到Nginx服务中,而不是部署到tomcat中。

好久没有更新了!虽然看到人不多但是,还是要说sry!!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值