Nginx

发布于 2023-09-24  913 次阅读


内容纲要

Nginx 反向代理与负载均衡

一、安装nginx

1.软件包

Nginx依赖如下:

  • pcre
  • zlib
  • openssl
  • Nginx

NGINX通过pcre进行正则表达式匹配,所以需要在LInux安装pcre库,使用zlib对文件进行gzip压缩,并且如果需要Nginx支持https就需要openssl

安装pcre

下载软件包:

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

下载完成之后解压文件 通过:
tar -zxvf 目标文件名 -C 目标目录

执行解压命令:
tar -zxvf -C usr/pcre

执行./configure进行编译

执行make && make install 进行安装

安装openssl

下载OpenSSL的地址:
openssl

1)解压文件, 回到 openssl目录下,

2)./configure 完成后,

3)执行命令: make && make install

安装zlib

通过阿里云镜像站下载:
zlib rpm包

1) 下载zlib

curl -o zlib.rpm https://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/kickstart/Packages/zlib-1.2.11-17.el8.i686.rpm?spm=a2c6h.13651111.0.0.61bd2f70G1qsTE&file=zlib-1.2.11-17.el8.i686.rpm

2) 安装zlib

rpm -i zlib.rpm --force --nodeps

因为可能由于缺少依赖导致zlib安装失败 所以使用 --force --nodeps 忽略依赖强制安装。

安装nginx

yum install nginx


2.启动nginx

通过yum安装nginx之后需要找到nginx的安装目录:

whereis nginx

结果:

nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz

第一个目录是nginx可执行文件的目录。

cd /usr/sbin

启动nginx:nginx

启动之后查看进程:ps -ef | grep nginx

nginx进程

接下来即可输入IP访问首页(不需指定端口因为默认端口为80)

3.Nginx的常用命令

注意:在使用nginx命令之前必须将当前目录切换到nginx可执行目录下。

1) 查看版本:nginx -v

[root@ecs-4a4c sbin]# nginx -v
nginx version: nginx/1.20.1

2) 关闭nginx nginx -s stop
3) 重新加载nginx:nginx -s reload


4.Nginx配置文件

a.查看Nginx配置文件

​ 不同方式安装的nginx目录可能都不同,因此需要通过命令来查找nginx文件,这里使用yum方式安装nginx,默认nginx的配置文件nginx.conf是在/etc/nginx/nginx.conf。

​ 如果不知道nginx的配置文件 可以通过nginx -t命令来检索Nginx配置文件是否正常,同时获得nginx配置文件的位置。

image-20230910004136045

b.Nginx配置文件的组成

Nginx的配置文件有三个主要部分:

  • 全局块
  • events部分
  • http部分

去掉Nginx安装之后的默认注释部分,默认的Nginx配置为:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
全局块

其中Events上方的内容是全局的核心配置部分,例如上方worker_processes 表示最大并发处理数,我在阿里云镜像中下载的Nginx默认使用的是auto表示自动决定。

同时还有其他的配置项:

user nginx
# 指定运行Nginx的用户,默认为Nginx。
error_log /var/log/nginx/error.log;
#错误日志存放路径
pid /run/nginx.pid;
# pid 存放路径
......
events块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否 允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024.
这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

http块

http块是实现web业务的主要配置文件,其中包括http全局块和server块。

http块包括:http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

server块:和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了 节省互联网服务器硬件成本。

同时在Server块中又可以包含多server全局块和多个location块,location块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称 (也可以是IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。 地址定向、数据缓 存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

总结:

Nginx的配置文件结构:

Nginx
    └─Ngixn全局块
    ├─Events块
    │  └─...主要的Event配置
    ├─http块
    │  ├─http全局块
    │  └─Server块
    │      ├─location块
    │      └─server全局块

二、Nginx基本使用

(一)、Nginx的工作原理

届ける言葉を今は育ててる
最后更新于 2023-09-26