Nginx

1. 介绍

官网

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型。作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP 代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持 perl 语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到 7 * 24 不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

Nginx 和 Apache 对比
  • 静态文件处理能力:nginx 高于 apache
  • 资源消耗:nginx 优于 apache,因为 nginx 是异步处理模型,只需要几个进程就能够处理大量在线请求,而 apache 2.4 仍然是进程模型或者线程模型,即仍然采用大量线程来处理大量在线请求。
  • apache 支持的模块很多,而且也比较稳定。而 nginx 由于出现的比较晚,所以在这方面可能比不上 apache。
  • nginx 本身就是一个反向代理服务器,而且支持 7 层负载均衡。
  • nginx 处理动态页面很鸡肋,一般只用与处理静态页面和反向代理。

2. 安装

2.1方法一:系统安装

首先修改ssh配置文件

cd /etc/ssh
nano sshd_config

在这里插入图片描述

在配置文件中增加

PermitRootLogin yes		#允许远程登录root用户

在这里插入图片描述

service ssh restart		#重启ssh服务
service ssh status		#查看ssh状态

在这里插入图片描述

在Xshell中右键点击会话,选择属性
在这里插入图片描述

在用户身份验证中修改用户名为root并输入密码,然后点击连接,以root用户身份登录
在这里插入图片描述

访问https://developer.aliyun.com/mirror/,选择Ubuntu
在这里插入图片描述

找到ubuntu 22.04 LTS (jammy) 配置,点击复制
在这里插入图片描述

cd /etc/apt
nano sources.list		#修改镜像资源列表

在这里插入图片描述

将复制的配置粘贴在文件中,保存退出
在这里插入图片描述

接着更新apt,并安装nginx

apt update
apt upgrade
apt install nginx
service nginx status		#查看nginx状态

在这里插入图片描述

ps aux | grep nginx		#查看nginx进程

在这里插入图片描述

cd /etc/nginx/
ls
nano nginx.conf		#查看配置文件
cd sites-available/
ls
nano default	#查看系统设定文件

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

2.2方法二:编译安装

访问https://nginx.org/en/download.html,选择稳定版nginx-1.26.2
在这里插入图片描述

在/root目录下创建test文件夹
在这里插入图片描述

使用Xftp传输刚刚下好的nginx压缩包到test中
在这里插入图片描述
在这里插入图片描述

tar -xzvf nginx-1.26.2.tar.gz		#解压缩

在这里插入图片描述

rm -rf nginx-1.26.2.tar.gz 		#删除压缩包
cd nginx-1.26.2/
ls
cd conf
ls
nano nginx.conf 编辑nginx配置文件

在这里插入图片描述

修改监听端口号为81(因为80已被系统安装的nginx占用)
在这里插入图片描述

在test中创建bin目录,用于编译安装nginx
./configure --prefix=/root/test/bin		#选择编译安装路径
发现报错,输入命令:
apt install build-essential		#安装编译和构建软件所需的基本工具和库
安装完成后再次输入
./configure --prefix=/root/test/bin

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

发现缺少pcre和zlib库,输入命令:
sudo apt-get install libpcre3 libpcre3-dev		#安装系统上的pcre库
sudo apt install zlib1g-dev		#安装系统上的zlib库
./configure --prefix=/root/test/bin		#再次选择编译安装路径
依赖包都安装完成后,出现makefile文件
然后输入命令:
make & make install		#编译并安装

在这里插入图片描述

安装完成后发现bin目录下出现4个目录,其中sbin目录中出现nginx可执行文件
输入命令:
ln -s ~/test/bin/sbin/nginx /usr/bin/nginx		#创建软连接

在这里插入图片描述

在浏览器中输入主机地址即可看见下图,表示nginx成功运行
在这里插入图片描述

3. 配置

Nginx是一个高性能的Web服务器和反向代理服务器,它使用一个主配置文件(通常称为nginx.conf)以及一系列辅助配置文件来管理其行为。以下是对Nginx配置文件的详细解释:

3.1 主配置文件:nginx.conf

nginx.conf 是 Nginx 的主配置文件,它位于 /etc/nginx/(在Debian/Ubuntu系统中)或 /usr/local/nginx/conf/(在其他系统中)。这个文件定义了 Nginx 的全局配置,包括工作进程数、日志文件位置、事件处理模型等。

以下是一个简化的 nginx.conf 示例:

# 工作进程数量的参数
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;
        }
    }
	
    upstream home {
        server 127.0.0.1:8080 weight=1;
        server 127.0.0.1:800 backup;
    }
}
  • worker_processes 指令定义了Nginx工作进程的数量。通常设置为服务器的CPU核心数。
  • events 块定义了Nginx的事件处理模型,如 worker_connections 指令,它定义了每个工作进程允许的最大并发连接数。
  • http 块包含了所有与HTTP相关的配置。
    • include 指令包含了其他配置文件,如 mime.types,它定义了文件扩展名与MIME类型之间的映射。
    • default_type 指令定义了默认的MIME类型。
    • sendfile 指令启用了sendfile系统调用,以提高文件传输性能。
    • keepalive_timeout 指令定义了客户端连接的保持活跃时间。
    • server 块定义了一个虚拟服务器,它可以监听特定的端口(如80)并响应请求。
      • listen 指令定义了服务器监听的端口。
      • server_name 指令定义了服务器的主机名。
      • location 块定义了请求的处理规则。在这个例子中,所有对根路径(“/”)的请求都会被映射到 html 目录下的 index.htmlindex.htm 文件。
      • error_page 指令定义了错误页面的映射。在这个例子中,所有50x错误都会被重定向到 /50x.html 文件。

3.2 辅助配置文件

除了主配置文件外,Nginx还可以包含其他辅助配置文件。这些文件通常位于 /etc/nginx/conf.d/(在Debian/Ubuntu系统中)或 /usr/local/nginx/conf/(在其他系统中)。辅助配置文件可以包含特定于站点或应用程序的配置,以便于管理和维护。

辅助配置文件的语法与主配置文件相同,可以包含 serverlocation等块。例如,以下是一个简单的辅助配置文件,用于设置一个名为 example.com 的站点:

server {
    listen       80;
    server_name  example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

在这个例子中,我们定义了一个新的虚拟服务器,它监听80端口,并响应 example.com 的请求。站点的根目录设置为 /var/www/example.com,默认索引文件为 index.html。我们还定义了一个 location 块,用于处理所有对根路径的请求。

3.3 重载配置文件

在修改Nginx配置文件后,您需要重新加载配置以使更改生效。这可以通过以下命令完成:

nginx -s reload

或者,如果您使用的是 systemd 管理的系统,可以使用以下命令:

systemctl reload nginx

# Ubuntu
service nginx reload

这些命令会向 Nginx 发送一个信号,告诉它重新加载配置文件。请注意,在重新加载配置文件之前,您应该确保配置文件的语法是正确的,以避免服务中断。您可以使用以下命令检查配置文件的语法:

nginx -t

如果配置文件的语法正确,您将看到以下输出:

nginx: configuration file /etc/nginx/nginx.conf test is successful

3.4 location

location 路径的不同写法优先级:

  1. 最高优先级 =:表示路径完全等于
  2. 第二高 ^~:表示 startsWith
  3. 第三高 ~、~*、!~、!~*
    • ~:正则匹配,表示正则,如果要用 {} 是特殊符号,需要整个加引号,建议直接加双引号,防止出错
    • ~*:不区分大小写正则
    • !~:正则不匹配的
    • !~*:不分大小写的正则不匹配
  4. 最低没有前置符号:不符合上面三种,就会匹配到这
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值