Nginx 新手入门

Nginx新手入门指南,常用命令 本文介绍了 Nginx 的基础知识、安装方法、常用命令及常见问题解决方案。Nginx 作为一款高效稳定的服务器软件,适用于各种 Web 场景。希望本文能帮助你快速上手 Nginx! 阅读详情

安装

在centOS上安装nginx,最新版本1.21的要求centOS 7.4.x以上的,我们用的是centOS 7.3,试了一下,也能装。
centOS安装教程在这里,下面简单翻译下,大致这些步骤

  • 安装工具
sudo yum install yum-utils
  • 设置yum的仓库,增加文件ect/yum.repos.d/nginx.repo,内容如下
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

这样默认安装的是稳定版,如果想要直接安装最新主线版本,可以运行这个yum命令

sudo yum-config-manager --enable nginx-mainline
  • 执行如下命令安装nginx
sudo yum install nginx

安装完成。

新手入门

本篇将介绍如何启动、停止nginx,重新加载配置,解释配置文件的结构,并解释如何设置该配置文件以便nginx可以提供静态文件,如何把nginx配置为一个反向代理,以及如何连接一个FastCGI应用。

nginx 有一个master进程,以及多个worker进程,master进程的主要工作是读取并评估配置文件,维护多个worker进程。从进程用于处理实际的web请求。nginx依赖于事件模型以及其他一些独立于操作系统的机制来有效的在多个worker进程之间分发客户请求。
worker进程的数量在配置文件中定义,可以针对给定配置固定,也可以根据可用CPU内核的数量自动调整。
nginx及其模块的工作方式在配置文件中确定。默认情况下,配置文件名为nginx.conf,并放置在目录/usr/local/nginx/conf、/etc/nginx或/usr/local/etc/nginx中。

启动、停止以及重新加载配置文件

只要在bash环境下输入nginx即可启动nginx服务

nginx

启动之后,就可以通过信号量量控制该nginx服务,格式如下

nginx -s signal

其中signal可以是以下几个值

  • stop — fast shutdown
  • quit — graceful shutdown
  • reload — reloading the configuration file
  • reopen — reopening the log files

比如,执行如下的命令可以结束nginx进程,他会等待worker进程处理完当前正在执行的请求之后再结束。

nginx -s quit
这个命令必须使用启动该nginx进程的用户来执行。

配置文件改变之后,要生效的话,要执行reload命令。

nginx -s reload

master进程收到reload信号量之后,他会检查配置文件的语法是否正确,并且尝试加载该配置,如果加载成功,master进程会开启一个新的worker进程,并且发送信号给老的worker进程,要他结束运行。如果加载失败,则master会回滚配置,老的worker进程继续运行。
worker进程收到结束命令之后,将停止接受新的连接,但会继续处理完手上的连接,处理完之后就关闭。

也可使用linux的kill命令来给nginx进程发送消息,如下命令直接把 -s QUIT命令发送给1628进程。

kill -s QUIT 1628

可以通过如下命令来查找正在运行的nginx进程

ps -aux  | grep nginx

在这里插入图片描述
可以看到进程描述,是nginx master 还是nginx worker

配置文件结构

nginx由配置文件中指定的指令控制的模块组成。指令分为简单指令和块指令。简单指令由名称和参数组成,以空格分隔,以分号(;)结尾。块指令与简单指令具有相同的结构,但它不是分号,而是以一组附加指令结束,这些指令由大括号( { 和 })包围。如果块指令可以在大括号内包含其他指令,则称为上下文(例如:event、http、server和loction)。
那些不在任何大括号内的指令可以被认为是处于main上下文中。events和http指令放在main上下文内,server放在http内,location放在server内。
#开头的行是注释。

提供静态内容

web服务器的一项重要任务是提供文件(如图像或静态HTML页面)。您将实现一个示例,其中根据请求,将从不同的本地目录:/data/www(可能包含HTML文件)和/data/images(包含图像)提供文件。这将需要编辑配置文件,并在http块内设置一个server块,其中包含两个location块
首先,创建/data/www目录,并将包含任何文本内容的index.html文件放入其中,然后创建/data/images目录并在其中放置一些图像。
接下来,打开配置文件。默认配置文件已经包含了server块的几个示例,大部分都被注释掉了。现在,注释掉所有这些块并启动一个新的server块:

http {
    server {
    }
}

通常,配置文件可能包括多个服务器块,这些服务器块由它们侦听的端口和服务器名称区分。一旦nginx决定哪个服务器处理一个请求,它将根据server块中定义的location指令的参数测试请求头中指定的URI。
把如下的location块添加到server块内

location / {
    root /data/www;
}

此location块指定"/"前缀与来自请求的 URI 对比。对于匹配的请求,URI 将被添加到root 指令中指定的路径中 ,即 /data/www,以形成本地文件系统上所请求文件的路径。如果有多个匹配location块,nginx 会选择前缀最长的块。location上面的块提供了长度为 1 的最短前缀,因此只有当所有其他location 块都无法提供匹配时,才会使用该块。
接下来,添加第二个location块:

location /images/ {
    root /data;
}

它将匹配以/images/ (上面的location /也匹配此类请求,但前缀较短)。
增加配置之后,server块的配置如下。

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}

这是一个可以正常工作的配置,他将在标准端口 80 上侦听,并可通过http://localhost/在本地计算机上访问 。响应以/images/开头的 URI 请求,服务器将从/data/images目录发送文件。例如,为了响应 http://localhost/images/example.png请求,nginx 将发送/data/images/example.png文件。如果这样的文件不存在,nginx 将发送一个响应,指示 404 错误。对于其他不以/images/开头的URI请求,都将被映射到/data/www目录。例如,为了响应 http://localhost/some/example.html请求,nginx 将发送/data/www/some/example.html文件。

要应用该新配置,如果nginx没有启动,则使用nginx命令启动他;如果已经启动,则使用reload命令重新加载.

nginx -s reload
如果万一配置不生效,我们想要分析原因,则可以通过user/local/nginx/logs 或者 /var/log/nginx来查看日志

配置一个简单的代理服务器

nginx 的常见用途之一是将其设置为代理服务器,这意味着服务器接收请求,将它们传递给代理服务器,从它们接收响应,并将它们发送到客户端。

我们将配置一个基本的代理服务器,对于所有图像的请求,他将使用来自本地目录的文件来响应,对于所有其他请求将发送到代理服务器。在此示例中,两个服务器都将在单个 nginx 实例上定义。

server {
    listen 8080;
    root /data/up1;

    location / {
    }
}

这将是一个简单的服务器,它侦听端口 8080(在上个例子中,由于使用了标准端口 80 ,因此未指定该listen指令)并将所有请求映射到/data/up1本地文件系统上的目录。创建此目录并将index.html文件放入其中。请注意,该root指令位于 server上下文中,对于该server内后续其他的location指令,如果内部没有指定root指令,则使用该根路径下的root指令作为默认。

接下来,复用上一节的server配置并修改,使其成为一个代理服务器配置。在第一个location中,添加一个proxy_pass指令,在内容中带上协议(http://)、名称、以及端口号,也就是本例子中的(http://localhost:8080)

server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location /images/ {
        root /data;
    }
}

接下来修改第二个location指令,让他只处理特定类型的图片资源,如下。

location ~ \.(gif|jpg|png)$ {
    root /data/images;
}

~ .(gif|jpg|png)$ 是一个正则表达式,他将所有以 .gif, .jpg, .png结尾的URI都萤石到 /data/images目录下。
当nginx收到一个请求之后,他按照如下规则来定位对应的location块:

  • 是否有对应的前缀的location块,长度越长的越优先;
  • 然后检查正常表达式,看是否有匹配的表达式。
  • 如果都没有,则使用之前记住的location块。

此时,这个server块是这样的

server {
    location / {
        proxy_pass http://localhost:8080/;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

重新加载该配置之后,该配置将生效,对于.gif, .png, .jpg结尾的图片,nginx将使用 /data/images的本地文件响应,其他请求都将转到 http://localhost:8080代理服务器。
关于代理服务器的更多配置指令,可以参考这里

Windows的nginx部署 新手入门 nginx错误 Nginx在Windows下的安装与使用 https://blog.youkuaiyun.com/weixin_38187317/article/details/79334492 阅读详情

相关推荐

Linux新手入门系列:注册nginx的systemctl服务,设置nginx开启自启动

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。 注意: Linux下区分大小写; Linux多用户多线程; Linux下每个文件和目录都有访问权限; 配置开机自启动,注册systemctl服务 安装环境:CentOS7 64位、nginx1.20.1 #开机自启动#、#应用该程序自启动#、#注册自启动服务#、#注册自系统服务#、#注册systemctl服务.

IT小胖豆的博客 3237

在CentOS 7上安装和配置Nginx

Nginx是一款高性能的HTTP和反向代理服务器。本文将详细介绍如何在CentOS 7系统上安装、配置以及管理Nginx服务。

leafseelight的专栏 745

三菱FX3U PLC红绿灯ST编程实战:从基础逻辑到急停功能完整实现

本文以十字路口红绿灯控制为例,详细讲解了三菱FX3U PLC使用ST编程的完整实战过程。内容涵盖从基础时序逻辑、状态机设计,到急停功能、黄灯闪烁、昼夜模式切换等高级功能的实现,并提供了代码优化与调试技巧,帮助工程师掌握结构化文本在工业控制中的清晰、结构化应用。

weixin_29070861的博客 533

nginx配置例子-动静分离实例

步骤一:在 根目录/ 下 创建 目录data/www 和 data/image步骤二:在目录www 下 ,创建a.html文件步骤三:在目录image下,将图片拖到Xshell客户端,实现图片导入Linux,导入/data/image下。

HCS11的博客 377

LEC/FORMAL --- PARTIII debug

lec(logic equivalence checking)又叫formal check,是对ic design的综合,PR前后的设计进行逻辑对比检查的工具/手段,保证综合不改变rtl原始的logic function。目前用的较多的就是C家的formal工具。接下来介绍一下lec过程中遇到的问题以及debug手段。...

sinat_27691203的博客 7712

海康摄像头V3.4 升级改造VUE3

摘要:本文介绍了一个基于Vue3的海康威视摄像头组件封装方案。针对官方仅提供HTML版本SDK的问题,作者通过封装实现了Vue3组件化集成,解决了iframe/webview引入方式的弊端。组件核心功能包括实时预览、本地录像、录像下载、截图抓拍等,并优化了SDK初始化逻辑(单例模式)、定位问题修复和错误处理机制。关键技术点包括:1)SDK插件容器定位修复;2)录像下载进度监控;3)多格式图片数据处理;4)多窗口场景下的SDK实例管理。该组件可直接通过npm安装使用,提供了完善的API和事件接口,显著提升了海

LINLINLINShi的博客 114

Nginx新手入门

Nginx安装 系统平台:CentOS release 6.6 (Final) 64位。 一、安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二、首先要安装 PCRE PCRE 作用是让 Nginx 支持 Rewrite 功能。 1、下载 PCRE 安装包,下载地址: ht...

qq_28655127的博客 244

三分钟解决RKNN-Toolkit2安装失败:从模块报错到成功验证的完整记录

本文详细记录了RKNN-Toolkit2安装失败的解决方案,从环境配置到模型转换实战,特别针对常见的'No module named 'rknn''报错提供了完整修复指南。通过YOLOv8模型转换示例,展示了从ONNX到RKNN格式的完整流程,并分享了在RK3588芯片上的部署优化技巧。

html8的博客 265

《从零开始:Nginx新手入门完全指南》

Nginx是一款高性能的HTTP和反向代理服务器,以其高并发处理能力、低内存占用和模块化设计著称。本文从零开始指导新手掌握Nginx的核心概念、安装配置和实际应用,涵盖虚拟主机配置、反向代理、负载均衡、HTTPS设置等核心功能,并提供性能优化与安全配置建议。通过详细的配置示例和常见问题排查方法,帮助读者快速上手Nginx服务器部署与管理,为进一步学习高级功能打下基础。

源码分享的博客 523

CH569 USBSS库函数分析

CH569 USB3.0 解析

havc_W的博客 7687

Abaqus中使用Python提取裂缝数据并用matplotlib库绘图

ABAQUS后处理PYTHON二次开发代码:提取裂缝数据并用matplotlib库绘图

qq_42568527的博客 3472

Nginx系列之新手入门

简单介绍Nginx的安装、使用与配置,并通过其实现提供静态资源HTTP服务。

Ghosind 1132

柔性电极材料新突破:清华团队实现0.1mV级脑信号采集精度

清华团队的 0.1mV 级柔性电极突破,不仅是材料科学与神经工程的跨界胜利,更标志着脑机接口从 “信号采集” 向 “神经交互” 的范式转变。当电极与脑组织实现 “柔性共生”,人类首次拥有了窥探大脑微观电活动的 “精密探头”,这既是神经疾病诊疗的里程碑,更是人机融合时代的新起点。随着技术标准化与产业生态的完善,这场始于实验室的 “柔性革命”,正加速向临床病房、智能工厂、消费电子等场景渗透,为脑机接口的大规模应用铺设 “柔性跑道”。:当柔性电极实现 “神经信号的无损捕捉”,如何平衡技术创新与伦理边界?

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2946

Nginx 下载 安装 配置 新手入门教程

这篇文章全面讲解了 Nginx 的特点、下载、安装、配置、网站上线及高级应用。涵盖其高性能、低资源占用等特点,适用于 Web 服务器、反向代理等场景。详细介绍了各系统安装方法,包括源码编译。提供配置文件示例及编辑方法,指导网站部署和上线。解答常见问题,介绍反向代理、动静分离和 HTTPS 配置等高级功能。最后附带教程网站源码示例。

2201_75759195的博客 2915

self‑improving‑agent 安装与配置指南(OpenClaw)

长期记忆错误反思用户偏好学习持续进化AI → 反思 → 学习 → 改进。

tiantiantbtb的博客 1342

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Nginx UI新手入门:零基础也能玩转Nginx配置

还在为复杂的Nginx配置头疼吗?Nginx UI让Nginx管理变得前所未有的简单!作为一款现代化的Nginx Web管理界面,它让初学者也能轻松上手,告别命令行配置的烦恼。🚀 ## 什么是Nginx UI? Nginx UI是一款开源的Nginx Web管理界面,由[0xJacky](https://jackyu.cn/)、[Hintay](https://blog.kugeek.com

gitblog_00339的博客 402

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Nginx 新手入门学习

Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。跨平台、配置简单。非阻塞、高并发连接:处理 2-3 万并发连接数,官方监测能支持 5 万并发。内存消耗小:开启 10 个 Nginx 才占 150M 内存。成本低廉,且开源。稳定性高,宕机的概率非常小。内置的健康检查功能:如果有一个

叮当猫的喵i 728

nginx新手入门

分享会nginx安装利用包管理工具(简单)源码编译安装(灵活,但参数配置比较复杂)开启,关闭,重载/etc/init.d/nginx start# kill -s signal pid(by default to the nginx.pid in the directory /usr/local/nginx/logs or /var/run) nginx -s signalstop 快速关闭qui...

hhh_2333 449

Nginx是什么?怎么用?(新手入门版)教程

一、Nginx介绍 1.1 引言 为什么要学习Nginx? 问题场景: 客户端到底要将请求发送至哪台服务器? 如果所有请求都发送到了服务器1,那么其他的服务器貌似都没什么用 服务器搭建集群后: 服务器搭建集群后,使用Nginx做反向代理服务器 1.2 Nginx背景 Nginx是由俄罗斯人研发的,应对Rambler的网站,并且2004年发布了第一个版本 Nginx的特点: 稳定性极强。7*24小时不间断运行。 Nginx提供了非常丰富的配置实例。 占用内存小,并发能力强 能承受5w并

Object_de_Father的博客 22万+

Nginx(新手入门)

Nginx 什么是Nginx: Nginx是一个高性能的HTTP反向代理WEB服务器 Nginx的特点: 设计语言:C语言开发 1:内存少 服务占用系统内存不超过3M 2:并发内力强 官方测试为五万/ NGginx下载安装: 根据自己的系统选择相应的版本! 网盘我上传了一个windows老版本的 需要的话自取: 链接:https://pan.baidu.com/s/1hpgJSONXBZ64fs...

DoChengAoHan的博客 824

Nginx的配置解析(新手入门)

 Nginx功能简述 反向代理:简单来说就是代理多台服务器,客户端在访问的时候并不知道自己实际上是访问的是哪个服务器,具体的请求由nginx来进行服务器的分发                            负载均衡:Nginx提供的负载均衡策略有5种: 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除 指定权重:指定轮询几率,wei...

zhttly的博客 316

Linux新手入门系列:安装nginx

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。 注意: Linux下区分大小写; Linux多用户多线程; Linux下每个文件和目录都有访问权限; 安装nginx 本文提供安装nginx的2种方法,一种是yum源安装,一种是编译安装。 一、Yum安装(需要联网) 1.安装yum源 CentOS7: # rpm -Uvh http://nginx.org/.

IT小胖豆的博客 237

新手入门:一分钟让你学会安装Nginx!

Nginx初识 1. 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。 2. 应用场景 1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。 2...

weixin_44040505的博客 279

nginx 学习笔记(2) nginx新手入门

这篇手册简单介绍了nginx,并提供了一些可以操作的简单的工作。前提是nginx已经被安装到你的服务器上。如果没有安装,请阅读上篇:nginx 学习笔记(1) nginx安装。这篇手册主要内容:1. 如何启动和停止nginx,如何加载nginx配置; 2.配置文件的结构;3.如何安装nginx来做静态内容的服务器;4,如何配置nginx作为代理服务器;5:如何连接FastCGI应用。

a6611976的博客 267
上一篇: 关于node的消息队列与工作队列
下一篇: 《Spring in action 4th》 学习笔记,第一部分
strinkbug
博客等级 码龄24年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值