centos7下Nginx的安装与配置


一、Nginx是什么?

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,其可以支持的并发上限大约为同时支持5W个连接,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、Nginx设计的基础概念

  • 正向代理

正向代理隐藏了用户,用户的请求被代理服务器接收代替,到了服务器端,服务器并不知道用户是谁。从而实现隐藏的目的。

  • 反向代理
    在这里插入图片描述

用户请求过多,服务器会有一个处理的极限。所以使用反向代理服务器接受请求,再用均衡负载将请求分布给多个真实的服务器。既能提高效率还有一定的安全性。

正向代理与反向代理最简单的区别:
正向代理隐藏的是用户,反向代理隐藏的是服务器。

  • 负载均衡
    在这里插入图片描述
    最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能够满足需求的。那么怎么办呢?

上面的分析我们去掉了增加服务器物理配置来解决问题的办法,也就是说纵向解决问题的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

  • 动静分离
    在这里插入图片描述

动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。

将静态html页面,css样式,js文件,以及图片文件这些静态资源放到Nginx服务器中,然后把动态请求显示的文件放到类似于Tomcat这样的容器服务器中,这样方便维护,也可以提高系统性能。

三、Nginx下载、安装

1.安装依赖包

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

2.安装pcre

注:pcre、Nginx文件存放于/usr/local/src

在这里插入图片描述

tar -xvf pcre-8.37.tar.gz                          #解压
cd pcre-8.37                                           #进入解压文件夹
./configure                                             #编译
make && make install

3.安装Nginx

tar -xvf nginx-1.18.0.tar.gz
./configure
make && make install

4.启动Nginx

切换Nginx安装路径

在这里插入图片描述

cd /usr/local/nginx/sbin
./nginx

5.测试

默认情况下是不能访问的,因为linux系统防火墙的拦截,无法直接访问,要在linux中开发80端口,才可以访问。

查看开放的端口号:
firewall-cmd --list-all
设置开放的端口号:
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
重启防火墙:
firewall-cmd --reload

在这里插入图片描述

6.Nginx常用命令

进入nginx安装目录:  cd /usr/local/nginx/sbin
查看nginx版本:   ./nginx –v
启动nginx:         ./nginx
停止nginx:           ./nginx -s stop
重新加载nginx:         ./nginx -s reload

7.Nginx配置文件说明

配置文件所在目录:/usr/local/nginx/conf目录下的nginx.conf

在这里插入图片描述

配置文件分三大部分:

第一部分:全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数, 进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

第二部分: events 块
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置,包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

第三部分: http 块
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。

需要注意的是: http 块也可以包括 http 全局块、 server 块

  • http 全局块:配置的指令包括文件引入、 MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
  • server 块:这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块

四、配置反向代理

1.案例一

实现效果:通过访问http://192.168.0.221地址来访问tomcat主页面

  • 下载jdk8
tar -zxvf jdk-8u11-linux-x64.tar.gz -C /usr/java1.8
  • 配置环境
vim /etc/profile

#java环境
JAVA_HOME=/usr/java1.8/jdk1.8.0_11
JRE_HOME=/usr/java1.8/jdk1.8.0_11/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
  • 重启服务
source /etc/profile
  • 测试 java -version

在这里插入图片描述

  • 下载并启动tomcat

在这里插入图片描述

  • 开放8080端口
firewall-cmd --add-port=8080/tcp –permanent
firewall-cmd --reload
firewall-cmd --list-all

在这里插入图片描述

  • 编辑nginx配置文件 vim /usr/local/nginx/conf/nginx.conf
    在这里插入图片描述
  • 重启启动nginx,访问测试
    在这里插入图片描述

2.案例二

实现效果:通过配置不同路径方式访问两个Tomcat,两个tomcat的端口号分别是:8180、8280

准备Tomcat,修改端口号,分别部署不同的web应用(提供测试版的war包),启动两个tomcat

  • 端口设置
查看开放的端口号:firewall-cmd --list-all
设置开放的端口号:
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8180/tcp --permanent
重启防火墙:firewall-cmd --reload

在这里插入图片描述

  • 配置8180、8280端口的tomcat
cp apache-tomcat-7.0.70 apache-tomcat-7-8180
cp apache-tomcat-7.0.70 apache-tomcat-7-8280

在这里插入图片描述

  • 修改tomcat-8180默认端口
vim /usr/local/src/apache-tomcat-7-8180/conf/server.xml

在这里插入图片描述

  • 修改tomcat-8208端口号
vim /usr/local/src/apache-tomcat-7-8280/conf/server.xml

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

  • 测试两个端口的tomcat是否可以开启

在这里插入图片描述

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

  • 将war包复制到各个端口中webapps/下

在这里插入图片描述

在这里插入图片描述

  • 配置nginx vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

location语法:
location [ = | ~ |~* | ^~ ] uri {
}
= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
~:用于表示 uri 包含正则表达式,并且区分大小写。
~*:用于表示 uri 包含正则表达式,并且不区分大小写。
^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。

  • 测试反向代理

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

五、负载均衡配置

在这里插入图片描述

通过浏览器访问http://192.168.242.100:8888/erp/login.html访问不同的Tomcat,从而实现服务器的负载均衡。
前提条件:
将erp项目分别部署到两台Tomcat服务器中,Tomcat 的端口号分别是:8180和8280,为了区分不同服务器中的erp项目,修改login.html中的内容,区分一下两个不同的应用

  • 配置nginx配置文件

在这里插入图片描述
复制erp到tomcat8280

在这里插入图片描述

  • 修改登录文档
vim erp/login.html

在这里插入图片描述

  • 测试

在这里插入图片描述

nginx提供的分配方式:
在 linux 下有 Nginx、 LVS、 Haproxy 等等服务可以提供负载均衡服务,而且 Nginx 提供了几种分配服务的方式(策略):
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、 weight
weight 代表权,重默认为 1,权重越高被分配的客户端越多,指定轮询几率, weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如:
upstream server_pool{
server 192.168.5.21 weight=1;
server 192.168.5.22 weight=10;
}
3、 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 共享的问题。 例如:
upstream server_pool{
ip_hash;
server 192.168.5.21:80;
server 192.168.5.22:80;
}

  • 配置第三台服务器

开放8380端口,服务tomcat8380
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

修改tomcat8380中的server.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 修改nginx配置文件
    在这里插入图片描述
  • 测试(刷新三次)

在这里插入图片描述

  • 配置服务器的权重
    在这里插入图片描述
  • 测试发现8280端口出现最多

在这里插入图片描述

  • 配置ip_hash,使同一个客户端由相同的tomcat服务器来处理请求,解决seesion共享问题
    在这里插入图片描述
  • 测试发现只出现8380端口

在这里插入图片描述

五、动静分离配置

在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
在这里插入图片描述

准备环境:在linux系统中新建目录/data/imgs和/data/www,分别用于存放图片和静态页面。在这两个目录中分别放入测试页面和测试用图片文件。

  • 配置nginx文件
    在这里插入图片描述
  • 新建目录/data/imgs和/data/www,用于存放图片和静态页面

在这里插入图片描述

  • 测试

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值