【教程】nginx快速学习

该教程介绍了Nginx的基础知识,包括其作为高性能服务器引擎的角色、反向代理和负载均衡的概念。文章详细讲解了Nginx的安装过程,如CentOS和Debian系统的安装命令,以及配置文件结构,如全局块、events块和http块。此外,还提到了一些关键配置指令,如worker_processes和access_log。最后,文章列举了几个实际应用场景,如反向代理、负载均衡和资源压缩等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注

2023/3/1 星期三
由于之前的自己的博客用了可视化的后台管理系统,所以一直没有系统的学习过nginx,准备最近抽时间把nginx好好学习一下

一、基础概念

1.nginx概念

nginx是一个由俄罗斯人用c语言编写的开源的高性能的服务器引擎(web server),有些人也将服务器引擎称为中间件,同时也是一个支持多种协议的代理服务器,我们最常用到的功能除了他的引擎功能外还有反向代理和负载均衡。nginx还具有低内存、高并发、高可靠、高扩展的特点。

2.反向代理和负载均衡

正向代理的客户端通过中间代理访问服务器不同,反向代理是指当客户端将请求发送给中间代理的时候,中间代理会将请求选择性的交给不同的服务器。这样做的好处有很多,负载均衡也是基于这个技术实现的。
负载均衡是当客户端有大量请求时,nginx按照预设好的规则将不同的请求发送到不同服务器以减轻各服务器的压力的功能。

二、安装和部署

1.安装

nginx的安装主要有两种,使用包管理工具一键安装和下载源码编译安装,我们一般选择直接使用包管理工具
centos系列使用:

sudo yum install nginx

debain系列使用:

sudo apt install nginx

源码编译安装方式比较复杂,需要到官网下载源码,在系统上安装c语言编译环境和nginx所使用的库,再在运行./configure时指定需要配置的参数,官网有对应的教程这里就不再做过多赘述了

2.命令

nginx有以下命令

  • nginx -v 显示版本信息
  • nginx -V 显示详细版本信息
  • nginx -t 测试ngixn.conf文件是否有语法错误
  • nginx -T 测试ngixn.conf文件是否有语法错误,并显示文件内容
  • nginx -c [文件] 指定启动时的配置文件
  • nginx -g [文件] 修改配置文件的补充文件
  • nginx -s [参数]
参数作用
stop直接停止nginx服务
quit安全退出nginx服务
relaod重新加载nginx配置文件
reopen不中断服务的重启nginx

三、配置文件结构

nginx中最核心最常用的文件就是nginx.conf了,我们先来学习一下nginx.conf文的文件结构。默认的nginx.conf文件会在/usr/nginx/conf/目录下面。在nginx.conf文件一般可以分为三部分:被http包裹的http块、被events包裹的events块、http和event外的全局块

1.全局块

全局块具有以下命令:

  • user [用户名] [所属组]
    user用于配置worker进程的用户和用户组,所使用的用户须要在Linux中存在
  • master_process [on/off]
    master_process用于开启或关闭worker进程,只能设置为on和off,默认为on
  • worker_process [数字/auto]
    woker_process用于控制worker进程的数量一般建议调整为与主机cpu数相同即可
  • daemon [on/off]
    daemon用于控制nginx是否以守护进程的方式启动,默认为on
  • pid [路径]
    pid用于指定nginx的pid文件存放位置,如果不指定默认是/usr/local/nginx/logs/nginx.pid
  • include [文件]
    include用于包含其他配置文件,与c语言中的include效果类似

2.events块

  • accept_mutex [on/off]
    accept_mutex用于设定当worker进程在休眠时如果收到请求是否要唤醒全部worker进程(对请求处理更加高效但是唤醒过多可能影响nginx性能)
  • multi_accept [on/off]
    multi_accept用于设置是否允许一个worker进程同时接受多个连接
  • worker_connections [数字]
    worker_connections用于指定一个worker进程的最大连接数,最大值为512
  • use [方法]
    use用于指定nginx使用的事件驱动,方法有selet、poll、epoll、kqueue

3.http块

  • default_type [mimetype]
    default_type用于指定文件的默认解析类型,使用的格式是mimetype,如果不指定默认为text/plain也就是纯文本文件,default_type也可以写在其他块中,最常见的位置是http块里(后面的一些其他命令同理)
  • access_log [路径] [格式名]
    access_log用于指定nginx的日志信息的输出位置和使用的格式
  • log_format [名称] [格式]
    log_format用于指定日志的具体格式可以被access_log使用
  • send_file [on/off]
    send_file用于指定nginx是否使用Linux的sendfile()函数来传输文件,开启可以提升静态文件的传输速度,默认是关闭状态
  • keepalive_timeout [时间]
    keepalive_timeout用于指定长连接的超时时间,默认是75s
  • keepalive_request [次数]
    keepalive_request用于指定一次长连接最多请求的次数,默认是100次

4.server块

server块是http块中最重要的部分,有很多非常重要的指令

  • listen [端口号]
    listen用于指定当前server块所监听的端口
  • server_name [域名/ip]
    server_name用于指定当前server块会处理的域名或者ip
  • error_page [状态码] [页面文件]
    error_page用于指定当访问发生错误时不同状态码返回的页面
  • location [位置]{ location块中的命令 }
    location是server块中子块,用于指定不同url所执行的不同命令,位置可以使用正则表达式进行匹配。location块中最基本的指令是root [目录]index [页面文件],root用于指定当前location块访问的资源所在的目录,index用于指定访问位置的默认页面文件

四、需求案例

1.反向代理

2.负载均衡

3.防止盗链

4.资源压缩

5.加密传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值