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原理