• Nginx入门(简介、反向代理、负载均衡)


    一Nignx概述

    1、简介

     官网:https://nginx.org/

    2、下载安装

    到Nginx官网下载Nginx安装包,地址为https://nginx.org/en/download.html(我们以1.16.1为例)

     2.1 在linux系统上新建一个文件夹用来暂时存放我们的安装包

    mkdir /opt/mysoftwear

    2.2 利用Xftp把下载好的文件传输至Linux系统的 /opt/mysoftwear目录下

     2.3 因为Nginx是C编写的,所以安装时需要下载Nginx安装依赖包

    yum -y install gcc pcre-devel openssl openssl-devel

    2.4 解压到 usr/local/文件夹下

    tar -zxvf /opt/mysoftwear/nginx-1.16.1.tar.gz -C /usr/local/

     2.5 安装

    1. cd /usr/local/nginx-1.16.1
    2. /usr/local/nginx-1.16.1/configure --prefix=/usr/local/nginx
    3. //编译并安装
    4. make && make install

    3、目录结构

    二、Nginx命令

    1、查看版本

    /usr/local/nginx/sbin/nginx -v

    2、检查配置文件正确性

            在Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:

    /usr/local/nginx/sbin/nginx -t

      

    3、启动和停止

    1. //启动Nginx服务:
    2. /usr/local/nginx/sbin/nginx
    3. //关闭Nginx服务
    4. /usr/local/nginx/sbin/nginx -s stop
    5. //启动之后查看一下Nginx服务的进程
    6. ps -ef | grep nginx

     接下来我们首先查看一下Linux的80端口是否打开,若没有打开,我们可以选择  打开80端口 或 直接关闭Linux防火墙(任选其一)来访问一下Nginx的首页面,若是打开状态,直接跳过。

    1. //查看80端口是否打开
    2. firewall-cmd --query-port=80/tcp //no表示未打开 yes表示已打开
    3. //打开80端口
    4. firewall-cmd --add-port=80/tcp
    5. //关闭防火墙
    6. systemctl stop firewalld

    4、重新加载配置文件

    /usr/local/nginx/sbin/nginx -s reload

    5、 配置nginx的环境变量

    vim /etc/profile

     

     三、Nginx配置文件的结构

    nginx配置文件(conf/niginx.conf)由于配置文件比较复杂,我们把配置文件分为三部分:

      

    1、全局块(和Ngin运行相关的全局配置)

    2、Events块(和网络连接相关的配置)

    3、Http块(代理、缓存、日志记录、虚拟主机配置)

    一个 http块中可以有多个server块,一个server块中也可以有多个location块,关于他们有什么作用,这里先不细讲,大家先把配置文件的结构捋清楚就行。

     四、Nginx具体应用 

    • 部署静态资源

            1、Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、css样式文件、js文件、图片、视频等资源。

            2、相对于Tomcat来说,Nginx处理静态资源的能力更加高效,所以在生产环境中,一般都会将静态资源部署到Nginx中。

            3、将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。

    我们进入html目录,随便创建一个html文件(相当于部署完成)

     重启Nginx服务,到浏览器测试

    我们修改一下Nginx的默认首页 

    这里我们看到中文乱码了,解决方法:在server全局配置和location配置中增加字符集设置 

    • 反向代理

            1、了解反向代理之前先了解一下什么是正向代理

             2、反向代理

            3、正向代理与反向代理的区别

            正向代理是在客户端设置代理服务器,客户端知道有代理服务器目标web服务器的存在,只知道访问了一个服务器,并返回了资源;反向代理的过程中客户端并不知道代理服务器的存在,客户端只需要访问反向代理服务器,此时反向代理服务器把请求转发到被代理的目标web服务器,目标代理服务器把响应的数据和结果返回给反向代理服务器,反向代理服务器再把响应数据和结果返回到客户端。

    说简单点就是:

            正向代理:(客户端+代理服务器)访问(web服务器)帮助客户访问服务器

            反向代理: (客户端)访问(代理服务器+web服务器)

            4、配置反向代理(在nginx的配置文件中新增加一个server块,监听82端口)

     1、接下来再准备一台服务器192.168.80.132,(我是用的虚拟机,所以直接添加一台虚拟机,来部署一个简单的web应用),将idea中的web应用用maven打成jar包

    1. //在idea终端中输入以下maven命令
    2. maven clean package

    2、web应用仓库地址nginx_proxy: 用于测试nginx反向代理

    3、接下来我们需要在这台服务器上安装JDK,用于运行jar,安装教程:Linux安装JDK教程

    4、将上面打的jar包拷贝至Linux虚拟机的某个目录(我直接放在/路径下)

    5、运行jar

    java -jar jar包的名字(按Tab键补全)

    6、在浏览器地址栏输入192.168.80.132:8080/hello,查看是否成功 

    (注意,若这一步你是404的话,可能是linux的8080端口没打开,输入下面命令打开端口,再次到浏览器测试就成功了) 

    firewall -cmd --add-port=8080/tcp

    7、打开代理服务器的82端口

    1. //先把nginx的配置文件重新加载一遍
    2. nginx -s reload
    3. //开启82端口
    4. firewall-cmd --add-port=82/tcp

     8、在浏览器端访问:192.168.80.100:82/hello,访问成功!

    • 负载均衡

            1、负载均衡简介

     我们通过了解负载均衡示意图,可以看出负载均衡就是基于反向代理来实现的,本质上就是反向代理,只不过后面对的不是一台服务器,而是多台服务器。负载均衡器可以根据负载均衡相应的算法把请求分配到具体的某一台web服务器上去。

            2、配置文件(这里我们用被代理的服务器的两个不同端口模拟两个服务器)

     配置好以后,重新加载nginx的配置文件,然后去浏览器访问:192.168.80.100:8080/hello,每次刷新就会发现每次代理服务器分配到的端口都不一样,8080端口和8081端口轮换着进行访问,这就是Nginx的轮询机制算法

     除了轮询机制算法,负载均衡策略还有其他的负载均衡算法,就不一一演示了,下面解释的很清楚了。

    • 负载均衡策略

      配置负载均衡(按权配置)

  • 相关阅读:
    字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠讲16国语言(Python3.10)
    使用VirtualBox和Vagrant安装centos7
    npm install 报错问题解决合集
    Layui快速入门之第十一节 弹出层
    [第一章 web入门]常见的搜集
    十三、企业开发(5)
    信息学奥赛一本通 1941:【07NOIP普及组】Hanoi双塔问题 | 洛谷 P1096 [NOIP2007 普及组] Hanoi 双塔问题
    【TS】函数重载--可选参数--默认参数
    MCU常见通信总线串讲(二)—— RS232和RS485
    【C++】智能指针
  • 原文地址:https://blog.csdn.net/qq_45839663/article/details/127268114