(Nginx)01_Nginx入门

一、Nigix简介

web服务器 反向代理服务 邮件代理服务

由于:

Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
高度的模块化和自由软件许可证是的第三方模块层出不穷(这是个开源的时代啊~)
Nginx是一个跨平台服务器,可以运行在Linux, FreeBSD, Solaris, AIX, Mac OS, Windows等操作系统上
这些优秀的设计带来的极大的稳定性。

所以,Nginx火了!

二、常用功能介绍

2.1.Nginx 作为 web 服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、 php
等。但是不支持 java。 Java 程序只能通过与 tomcat 配合完成。 Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

2.2.HTTP代理和反向代理

正向代理:代理服务器很明确自己代理的对象  阿迪达斯 专卖店  你就只代理的阿迪达斯  
反向代理: 反向代理不明确自己代理的对象, 主要应用在分布式部署的系统上  隐藏了代理的服务器的信息。

项目场景
通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向代理服务器,反向代理了多台真实的业务处理服务器。具体的拓扑图如下:
在这里插入图片描述
什么是反向代理?
客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
在这里插入图片描述

2.3.负载均衡

将服务器接收到的请求按照规则分发的过程,称为负载均衡。
负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两种,硬件负载均衡也称为硬负载,如F5负载均衡,相对造价昂贵成本较高,但是数据的稳定性安全性等等有非常好的保障,如中国移动中国联通这样的公司才会选择硬负载进行操作;更多的公司考虑到成本原因,会选择使用软件负载均衡,软件负载均衡是利用现有的技术结合主机硬件实现的一种消息队列分发机制。
Nginx支持的负载均衡调度算法方式如下:

  1. weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。
  2. ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
  3. fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是Nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块。
  4. url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意Nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包。

Nginx可以通过反向代理来实现负载均衡。

2.4.动静分离

为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源比如图片,js,css等文件,我们可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。用户请求的动态文件比如servlet,jsp则转发给Tomcat,Jboss服务器处理,这就是动静分离。这也是反向代理服务器的一个重要的作用。
在这里插入图片描述

三、环境搭建

在这里插入图片描述
准备工作:
在之前的虚拟机的基础上 克隆出一台服务器 专门来作为nignx服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
**克隆完成之后 清楚之前安装的 rediszookeeper **

  1. 上传nginx
  2. 解压
[root@localhost soft]# tar -zxvf nginx-1.16.1.tar.gz  -C /opt/programfiles/
  1. 环境准备
    ①需要安装gcc
    ②安装第三方的开发包
    PERE perl库 —— 是nginx的配置文件中配置所需的。
[root@localhost soft]# yum install -y pcre pcre-devel

ZLIB—— 压缩和解压库

[root@localhost soft]# yum install -y zlib zlib-devel

OpenSSL——套接字密码库 主要做密钥和证书管理

[root@localhost soft]# yum install -y openssl openssl-devel
  1. 执行配置
    进入解压目录
    在这里插入图片描述
[root@localhost nginx16]# ./configure --prefix=/usr/local/nginx

执行之后 会产生一个Makefile
在这里插入图片描述
Makefile是一种配置文件 定义了一系列的配置规则

  1. 编译
[root@localhost nginx16]# make
  1. 安装
[root@localhost nginx16]# make install
  1. 检查nginx的配置文件是否正确
    在这里插入图片描述

查看软件的安装目录
[root@localhost sbin]# whereis nginx
nginx: /usr/local/nginx

  1. Nginx的相关命令
    查看nginx的版本号在这里插入图片描述
    启动命令
    在这里插入图片描述
    查看进程在这里插入图片描述
    在这里插入图片描述
    在外网访问
    在这里插入图片描述
    nginx的关闭命令
    在这里插入图片描述
    重加载命令
    在这里插入图片描述

四、Nginx的配置文件

Nginx的主要功能 都是通过配置文件来实现

/usr/local/nginx/conf/nginx/conf 去除注释之后得到的文件内容

worker_processes  1;
events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

Nginx主配置文件的结构
在这里插入图片描述
此配置文件 server块 可以有多个 并且在一个server块中 location块 可以有多个

发布了67 篇原创文章 · 获赞 6 · 访问量 1907

猜你喜欢

转载自blog.csdn.net/weixin_45801537/article/details/105087151