Nginx

1 介绍

Nginx(“enginex”)是一个高性能开源反向代理服务器,也可以用作负载均衡器、HTTP缓存服务器和Web服务器。以下是关于Nginx的一些基本信息

  1. 反向代理服务器 Nginx可以作为反向代理服务器,接受客户端请求并将其转发给后端服务器。它可以帮助处理静态文件负载均衡、SSL终端等任务,提高系统性能和安全性

  2. 负载均衡器: Nginx支持基于轮询、IP哈希最小连接数等算法负载均衡通过分发请求到多个服务器,可以提高应用程序的可伸缩性和稳定性。

  3. HTTP缓存服务器: Nginx可以缓存静态文件,降低对后端服务器的请求压力,提高网站性能。它支持各种缓存策略,如过期时间刷新策略等。

  4. Web服务器: 虽然Nginx在设计上更加注重反向代理负载均衡,但它也可以作为独立的Web服务器使用。它支持静态动态内容的处理,并能够通过FastCGI、uWSGI等与后端应用服务器进行通信

  5. 高性能和低内存消耗: Nginx的事件驱动架构使其能够处理大量并发连接,同时保持较低的内存消耗。这使得Nginx成为处理高流量、高并发请求的理想选择

  6. 模块化设计 Nginx采用模块化设计,允许用户通过添加模块扩展功能。它支持各种第三方模块,丰富了其功能,如安全性、性能优化等。

  7. 配置简单、易读: Nginx的配置文件采用简单文本文件格式,易于理解和维护。其配置语法清晰,使得用户能够灵活地配置各种服务器行为

2 Nginx 安装

  1. 安装所需依赖 pcre

    wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
    

    解压

    tar –xvf pcre-8.37.tar.gz
    

    进入压缩目录执行

    ./configure
    

    执行后出现 error,可再执行下行命令

    yum install -y gcc gcc-c++
    

    问题执行下行命令

    make && make install
    

    然后查看 pcre 是否安装成功

    pcre-config --version
    

    在这里插入图片描述

  2. 安装 opensslzlibgcc 依赖

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
    
  3. 安装 Nginx
    下载地址http://nginx.org/en/download.html
    下载完后解压

    tar –xvf nginx-1.12.2.tar.gz
    

    进入解压缩目录,依次执行

    ./configure
    make && make install
    

    进入目录 /usr/local/nginx/sbin后,启动 Nginx

    ./nginx
    

    练习过程中可以关闭防火墙

    systemctl stop firewalld
    

    然后浏览器访问虚拟机ip访问成功:

    在这里插入图片描述

  4. 防火墙命令
    查看开放端口

    firewall-cmd --list-all
    

    将某些端口设置开放端口

    firewall-cmd --add-service=httppermanent
    firewall-cmd --add-port=80/tcp --permanent
    

    重启防火墙

    firewall-cmd  --reload
    
  5. Nginx 常用命令
    查看 nginx 版本

    ./nginx -v
    

    启动 nginx

    ./nginx
    

    关闭 nginx

    ./nginx -s stop
    

    加载 nginx

    ./nginx -s reload
    

3 nginx.conf 配置文件

nginx.conf 是Nginx的主配置文件,其中包含了Nginx服务器的全局配置http块配置以及server块配置等。以下是对一些常见配置项的解释

  1. 所处位置

    /usr/local/nginx/conf/nginx.conf
    
  2. user 指定Nginx worker进程运行用户用户组。例如

    user www-data;
    
  3. worker_processes 指定Nginx启动worker进程的数量。通常设置为服务器的CPU核心数。

    worker_processes 1;
    
  4. error_log 指定Nginx的错误日志文件路径例如

    error_log /var/log/nginx/error.log;
    
  5. pid 指定Nginx主进程的PID文件路径例如

    pid /var/run/nginx.pid;
    
  6. events 定义Nginx处理连接、请求等事件方法常见配置项有 worker_connections表示每个worker进程能够同时处理的连接数。例如

    events {
        worker_connections 1024;
    }
    
  7. http块: 包括 http 全局块、server 块。常见配置项有 include 用于引入其他配置文件server 用于配置虚拟主机。例如:

    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
    
            # 其他 server 配置...
        }
    
        # 其他 http 配置...
    }
    
  8. include 用于引入其他配置文件。这使得配置文件可以分为更小的模块,方便管理。例如:

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  9. server 定义虚拟主机的配置块,包含监听的端口、服务器名称、和处理请求的配置。例如:

    server {
        listen       80;
        server_name  example.com;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        # 其他 location 配置...
    }
    

4 正向代理和反向代理

4.1 正向代理

正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

4.2 反向代理

反向代理,其实客户端对代理是无感知的,因为客户端需要任何配置就可以访问我们需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址隐藏了真实服务器 IP 地址
在这里插入图片描述

4.2.1 反向代理实例

  1. 实现效果
    浏览器地址栏输入地址 www.123.com跳转linux 系统 tomcat 主页

  2. liunx 系统安装 tomcat启动 tomcat

  3. 修改本机hosts文件

    c:WindowsSystem32driversetchosts
    

    添加以下内容

    192.168.64.128 www.123.com
    

    192.168.64.128 为虚拟机ip地址

  4. 配置 nginx.conf 文件
    在这里插入图片描述
    5. 启动 nginx
    6. 测试
    在这里插入图片描述

4.2.2 反向代理实例

  1. 实现效果
    使用 nginx 反向代理,根据访问路径跳转到不同端口的服务中,nginx 监听端口为 9001。

  2. 准备工作
    准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
    创建文件夹测试页面
    在这里插入图片描述
    tomcat8080里面的tomcat
    在8080的edu文件夹添加a.html,内容为:8080!
    在这里插入图片描述

    在8081的vod文件夹添加a.html,内容为:8081!
    分别启动8080和8081端口
    在这里插入图片描述

  3. 配置 nginx.conf 文件
    在这里插入图片描述

  4. 启动 nginx

  5. 测试
    地址栏输入http://192.168.64.128:9001/edu/a.html,结果如下
    在这里插入图片描述
    地址栏输入http://192.168.64.128:9001/vod/a.html,结果如下:
    在这里插入图片描述

5 负载均衡

并发量特别大的时候容易造成服务器直接崩溃。这时候集群概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡

5.1 负载均衡实例

  1. 实现效果
    浏览器地址栏输入地址 http://192.168.64.128/edu/a.html,负载均衡效果平均 8080和 8081 端口中
  2. 准备工作
    (1)准备两台 tomcat 服务器,一台 8080,一台 8081
    (2)在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹创建页面a.html,用于测试.
  3. 配置 nginx.conf 文件进行负载均衡(默认轮询
    在这里插入图片描述
  4. 启动 nginx
  5. 测试
    地址栏输入http://192.168.64.128/edu/a.html,结果
    在这里插入图片描述
    点击刷新
    在这里插入图片描述

5.2 nginx 分配服务器策略

  1. 轮询默认
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

    upstream myserver{
        server 192.168.64.128:8080;
        server 192.168.64.128:8081;
        # 添加更多后端服务器...
    }
    
  2. weight
    weight 代表权重默认为 1,权重越高被分配客户端越多

    upstream myserver{
        server 192.168.64.128:8080 weight=3;
        server 192.168.64.128:8081 weight=1;
        # 添加更多后端服务器...
    }
    
  3. ip_hash
    每个请求按访问 iphash 结果分配,这样每个访客固定访问一个后端服务器

    upstream myserver{
    	ip_hash;
        server 192.168.64.128:8080;
        server 192.168.64.128:8081;
        # 添加更多后端服务器...
    }
    
  4. fair(第三方
    按后端服务器的响应时间分配请求,响应时间短的优先分配

原文地址:https://blog.csdn.net/k010908/article/details/134504323

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26734.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注