Linux下Nginx学习笔记

一、Nginx概述

1.1、Nginx简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

1.2、代理

在这里插入图片描述

1.2.1、正向代理

在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。
在这里插入图片描述

1.2.2、反向代理

在这里插入图片描述

1.3、负载均衡

将请求通过反向代理服务器分发到各个单个服务器上。
在这里插入图片描述

1.4、动静分离

将动态资源和静态资源分开部署
在这里插入图片描述

二、Nginx的安装配置简介

2.1、nginx的安装

2.1.1、准备工作

# 1.Linux的编译需要gcc包,如果没有需要安装一下
yum install gcc-c++ 
# 2.PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
# 3.zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
# 4.OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel

2.1.2、下载nginx

nginx下载地址
在这里插入图片描述
将下载好的文件放到Linux上,并解压到当前的目录。
然后进入到nginx目录中

# 告诉安装的文件要放在哪里。(也可以不设置,直接 ./configure)
./configure --prefix=/usr/local/nginx 
# 编译并安装
make && make install

2.1.3、启动nginx

通过进入到nginx的启动目录下,通过下面的命令启动nginx

./nginx

在这里插入图片描述
在这里插入图片描述

2.2、nginx的常用命令

使用nginx操作命令的前提条件是必须要进入到ngix的/usr/local/nginx/sbin目录下。
注意:如果不想每次都到这个目录下才能执行的话,可以执行下面的命令。添加软链

ln -s /usr/local/nginx/sbin/nginx    /usr/bin/nginx
命令 释义
./nginx -v 查看当前版本号
./nginx -s stop 停止进程
./nginx 启动进程
./nginx -s reload 重加载配置文件
systemctl status nginx.service 查看进程状态

2.3、nginx的配置文件

2.3.1、nginx的配置文件的路径

/usr/local/nginx/conf
在这里插入图片描述

2.3.2、nginx的配置文件的组成

nginx的配置文件由三部分组成
1、全局块
从配置文件开始到events块之间的内容,主要设置一些影响nginx服务器整体运行的配置指令。
work_processes 1; 配置的值越大,并发承载量越大。但受硬件限制。
2、events块
影响nginx服务器与用户的网络连接。
比如:worker_connections 1024;支持的最大连接数;
3、http块
nginx服务器配置中最频繁的部分,http块包括http全局块和server块。

三、Nginx案例实操

3.1、反向代理

实现效果:打开浏览器后,输入访问地址,使得跳转到tomcat主页面。

3.1.1、准备工作

1、nginx安装并启动
2、在Linux上启动应用,并使用8080端口。
3、这里需要特别注意的是防火墙的端口。需要打开8080端口。

3.1.2、访问过程分析

在这里插入图片描述

3.1.3、方向代理配置

在这里插入图片描述
配置后重加载配置。

3.1.4、测试

在这里插入图片描述

3.2、反向代理-实例2

访问不同的路由跳转不同的端口。
在这里插入图片描述

3.2.1、准备工作

准备两个tomcat服务器,一个8080端口,一个8081端口。

3.2.2、具体配置

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

3.2.3、查看是否开放了需要开放的端口

# 查看已开放的端口
firewall-cmd --list-port

如果没有开放,则需要开放相应的端口。

3.3、负载均衡

3.3.1、实现效果

同过浏览器访问,实现负载均衡。即让nginx将访问请求平均分发到8080和8081两个应用上。

3.3.2、配置负载均衡

在这里插入图片描述
在这里插入图片描述

3.3.3、nginx分配服务器策略

3.3.3.1、轮询(默认)

在这里插入图片描述

3.3.3.2、权重(weight)

weight代表权重为1,权重越高被分配得客户端越多。
在这里插入图片描述

3.3.3.3、ip_hash

在这里插入图片描述

3.3.3.4、fair(第三方)

在这里插入图片描述

3.3、动静分离

在这里插入图片描述
在这里插入图片描述

3.3.1、准备

在Linux系统中准备一些静态资源,为之后的测试提供资源。
在这里插入图片描述

3.3.2、配置

在这里插入图片描述

3.3.3、测试

这是应为在配置文件中配置了autoindex on;
在这里插入图片描述
在这里插入图片描述

四、高可用集群

4.1、概念

在这里插入图片描述
在这里插入图片描述

4.2、准备工作

在这里插入图片描述

# 安装keepalived
yum install keepalived -y

4.3、配置工作

4.3.1、kepalived.conf配置文件

在这里插入图片描述
在这里插入图片描述
从服务器需要修改下图中的配置
在这里插入图片描述

4.3.2、nginx_check.sh配置文件

在这里插入图片描述

4.4、测试

4.4.1、启动两台服务器上的ginx和keepalived

在这里插入图片描述

4.4.2、测试访问

使用虚拟IP访问,发现可以访问到nginx说明之前的keepalived配置没有问题。
在这里插入图片描述
通过下面的命令行查看可以看到50已绑到了ens33这个网卡上了。
在这里插入图片描述

4.4.3、停止Master测试访问

# 停止主服务器的keepalived
systemctl stop keepalived.service
# 停止nginx
systemctl stop nginx.service

刷新页面,可以看到还是能访问到
在这里插入图片描述

4.5、高可用配置文件详解

在这里插入图片描述
在/etc/hosts文件中需要配置如下图
在这里插入图片描述

五、nginx原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了76 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_38657051/article/details/104907392