nginx
nginx 基本概念
(1)nginx 是什么?能做什么事情
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,能够支持高达 50,000 个并发连接数的响应
(2)反向代理
正向代理:意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
(3)负载均衡
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
(4)动静分离
动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
nginx 的安装
wget http://nginx.org/download/nginx-1.19.2.tar.gz
需要前置依赖pcre、openssl、zlib
1.安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2.安装pcre
pcre2和pcre版本不一样,使用pcre2编译时,可能会编译失败,这里使用pcre
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
2.1解压压缩包
tar -zxvf pcre-8.44.tar.gz
2.2编译安装
cd pcre-8.44
./configure
make && make install
2.3检查pcre版本
rpm -qa pcre
# pcre2-config --version
3.安装nginx,默认会把nginx相关文件放在 /usr/local/nginx
,默认端口为80,注意开放防火墙
tar -zxvf nginx-1.19.2.tar.gz
cd nginx-1.19.2
./configure
make && make install
nginx常用命令
# 查看nginx版本号
./nginx -v
# nginx 启动
./nginx
# nginx 停止
./nginx -s quit
# nginx 强制停止
./nginx -s stop
# 重新加载
./nginx -s reload
# 测试配置文件
./nginx -t
nginx 配置文件
默认安装时,配置文件在 /usr/local/nginx/conf/nginx.conf
nginx 配置文件分为三个部分
-
全局块
从配置文件到events块之前的内容,主要会设置一些影响nginx服务器整体运行的配置指令
-
events块
主要涉及的指令影响Nginx服务器与用户网络的链接,常用的设置包括是否开启对多worker_process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种随机事件驱动模型来处理连接请求,每个worker_process 可以同时支持的最大连接数
-
http块
这是Nginx服务器配置最频繁的部分,代理、缓存、和日志定义等绝大多数功能和第三方模块的配置都在这里。其中内部又包括:
-
http 全局块
文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。
-
server块
和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的机器主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
每个http块可以包含多个server块,而每一个server块相当于一个虚拟主机。
而每个server块也分为全局server块,以及可以包含多个location块
-
# 配置用户或者组,默认为nobody nobody
#user nobody;
# 这是nginx服务器并发处理服务的关键配置,worker_process值越大,可以支持的并发处理量也就越多,但是会受到硬件、软件等设备的制约
worker_processes 1;
# 指定日志路径,级别。这个设置可以放入全局块,http块,server块,级别依次为:debug|info|notice|warn