1、nginx介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
在Web开发中,通常来说,都需要将动态资源和静态资源分开。
将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源
如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。
在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。
2、配置介绍
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全-优快云博客
注解版本:
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 1;
# 事件区块开始
events {
#单个进程最大连接数(最大连接数=连接数*进程数)
#根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。
worker_connections 1024;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#include:导入外部文件mime.types,将所有types提取为文件,然后导入到nginx配置文件中
include mime.types;
#默认文件类型
default_type application/octet-stream;
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
#sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
sendfile on;
#长连接超时时间,单位是秒
keepalive_timeout 65;
# 第一个Server区块开始,表示一个独立的虚拟主机站点
server {
# 提供服务的端口,默认80
listen 80;
# 提供服务的域名主机名
server_name localhost;
#对 "/" 启用反向代理,第一个location区块开始
location / {
root html; #服务默认启动目录
index index.html index.htm; # 默认的首页文件,多个用空格分开
}
# 错误页面路由
error_page 500 502 503 504 /50x.html; # 出现对应的http状态码时,使用50x.html回应客户
location = /50x.html { # location区块开始,访问50x.html
root html; # 指定对应的站点目录为html
}
}
}
3、配置示例
# nginx.conf
server {
listen 8080; #端口号
server_name 10.20.30.110; #提供服务的域名主机名
location / { ## 处理根路径请求(前端静态资源)
root D:\webapp\dist; #静态文件根目录
index index.html; # 默认索引文件:返回index.html
}
location /api { #处理/api路径请求
proxy_pass http://localhost:2025; #将请求转发到后台服务
}
# 错误页面路由
error_page 500 502 503 504 /50x.html; # 出现对应的http状态码时,使用50x.html回应客户
location = /50x.html { # location区块开始,访问50x.html
root html; # 指定对应的站点目录为html
}
4、nginx使用命令
1)验证nginx配置文件是否正确
方法1. 进入nginx安装目录sbin下,输入命令
./nginx -t
回显test is successful说明配置正确
2)include ../conf.d/*.conf;
拆分大型配置
include
动态加载外部配置文件,使主配置文件 (nginx.conf
) 更加模块化、易于管理。
-
功能:将指定路径的配置文件内容插入到当前位置。
-
用途:
-
拆分大型配置文件,提高可读性和维护性。
-
按功能或域名分离配置(如虚拟主机、SSL、负载均衡等)。
-
支持通配符(
*
)批量加载多个文件。
-
应用
include ../conf.d/*.conf;
-
路径解析:
-
../conf.d/
:表示相对于当前配置文件所在目录的上一级目录中的conf.d
文件夹。 -
*.conf
:匹配该目录下所有以.conf
结尾的文件。
-
-
加载逻辑:
-
Nginx 会扫描
../conf.d/
目录。 -
按字母顺序加载所有匹配
*.conf
的文件(如a.conf
、b.conf
)。 -
文件内容会被插入到
include
指令的位置,作为主配置的一部分。
-
5、一张表总结 nginx 常用命令
操作 | Linux命令 (root 用户, 非root的普通用户在命令前面加sudo, sudo = Super User Do(以超级用户身份执行)) | Windows 命令 (在安装目录下) |
查看位置 | whereis nginx | where nginx |
启动 | nginx | nginx 或 start nginx |
快速停止 | nginx -s stop | nginx -s stop |
优雅停止 | nginx -s quit | nginx -s quit |
重新加载 | nginx -s reload | nginx -s reload |
重新启动 | nginx -s quit +nginx (分步执行) | nginx -s quit + nginx (分步执行) |
验证配置 | nginx -t | nginx -t |
检查进程状态 | ps -ef | grep nginx | 服务中查看进程 或 tasklist /fi "imagename eq nginx.exe" |
查看版本 | nginx -v | nginx -v |
Nginx 监听端口 (netstat网络统计工具,用于显示网络连接、路由表、接口统计等信息) | netstat -tulpn | grep nginx ss -tulpn | grep nginx | netstat -ano | findstr :13000(验证端口监听) |
6、Linux安装nginx
可参考:Linux系统下安装配置 Nginx 超详细图文教程_nginx安装-优快云博客
1)下载
nginx官网:nginx: download
2)安装
待完善