【教程】nginx快速学习
创始人
2025-05-31 23:48:34

【教程】nginx快速学习

  • 备注
  • 一、基础概念
    • 1.nginx概念
    • 2.反向代理和负载均衡
  • 二、安装和部署
    • 1.安装
    • 2.命令
  • 三、配置文件结构
    • 1.全局块
    • 2.events块
    • 3.http块
    • 4.server块
  • 四、需求案例
    • 1.反向代理
    • 2.负载均衡
    • 3.防止盗链
    • 4.资源压缩
    • 5.加密传输

备注

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.加密传输

相关内容

热门资讯

原创 茅... 在高端白酒领域,贵州茅台无疑是耀眼的明星,其核心产品飞天茅台的官方指导零售价长期锁定在1499元。然...
原创 霸... 婚礼在常州,张俊杰迎娶高海纯,话题立马炸开,强强联合,还是门不当户不对,围观都在评,张俊杰早年苦,睡...
苏酒三强一把手首聚,坐在一起已... 来源:市场资讯 (来源:云酒头条) “破除内卷、勇挑大梁、同振苏酒”三大共识,背后很可能是江苏...
聊聊美食文化那些易被忽略却超关... 探讨美食文化时,绝不能只局限于“吃什么”,以及这样浅显层面的“怎么吃”。在我想的看来,美食文化有的更...
聊聊美食文化那些易忽视却重要的... 美食所蕴含的文化可不单单只是关乎吃何种食物,它与历史相连接,且关联到社会,还和个人记忆有着紧密联系,...