一、 Windows 环境nginx安装及基本使用
1、下载 nginx-1.27.1 最新的主线版本
安装 nginx/Windows,请下载1.27.1最新的主线版本, nginx 的主线分支包含所有已知的修复程序。
2、 解压缩 nginx-1.27.1 版本
nginx/Windows 作为标准控制台应用程序(而不是服务)运行, 可以使用以下命令对其进行管理:
nginx -s stop 快速关闭 nginx -s quit 正常关闭 nginx -s reload 更改配置, 使用新配置启动新的 worker 进程, 正常关闭旧的工作进程 nginx -s reopen 重新打开日志文件
3、切换到解压目录,执行命令运行 :
cd nginx-1.27.1
4 、启动nginx
start nginx
5、查看nginx 进程
tasklist /fi "imagename eq nginx.exe"
其中一个进程是主进程,另一个进程是 worker 进程。
如果 nginx 没有启动,请在错误日志文件 :logs\error.log
。
如果尚未创建日志文件,则应报告其原因 在 Windows 事件日志中。
6、自定义维护脚本
自定义维护脚本: startup.bat
,增加启动 、关闭、重启、退出配置项,如图:
~文章末尾全部源码 ,有需要的朋友可拿去使用。
二、nginx 目录结构详解
1、conf/ 目录
功能和作用:
- 存放Nginx的配置文件
- 包含主配置文件nginx.conf和其他辅助配置文件
主要文件:
- nginx.conf: 主配置文件
- mime.types: MIME类型映射
- fastcgi_params, scgi_params, uwsgi_params: 各种协议的参数配置
使用注意事项:
-
修改配置后需要重新加载或重启Nginx
-
建议对重要配置文件进行备份
-
使用nginx -t命令检查配置文件语法
-
注意文件权限,确保Nginx进程有读取权限
-
可以使用include指令拆分复杂配置
2、contrib/
NGINX的contrib目录主要包含一些附加的工具和模块,这些内容不是NGINX核心功能的一部分,但可能对NGINX高级户和开发者有用。下面详细解释一下contrib目录的作用和内容:
(1)、辅助工具
contrib目录包含了一些辅助工具,这些工具可以帮助NGINX的配置、管理和使用。例如:
-
vim语法高亮脚本: 用于在vim编辑器中高亮显示NGINX配置文件的语法。
-
geo2nginx.pl: 一个Perl脚本,用于将MaxMind GeoIP数据库转换为NGINX可用的格式。
(2)、第三方模块
一些由社区开发的NGINX模块也会放在contrib目录中。这些模块提供了额外的功能,但并未被包含在NGINX的核心代码中。
(3)、实验性功能
有时,一些实验性的或者尚未完全集成到NGINX主线中的功能也会放在contrib目录下。
(4)、示例代码
contrib目录可能包含一些示例代码或配置,展示如何使用NGINX的某些特性或如何开发NGINX模块。
(5)、文档和指南
一些额外的文档、指南或者HOW-TO文档可能也会放在contrib目录中。
(6)、性能测试工具
可能会包含一些用于NGINX性能测试或基准测试的工具。
需要注意的是:
- contrib目录中的内容通常不会得到NGINX官方的正式支持。
- 使用contrib目录中的内容时应当谨慎,并自行评估其稳定性和安全性。
- contrib目录的具体内容可能会随着NGINX版本的不同而变化。
对于NGINX开发者和高级用户来说,contrib目录是一个宝库,可以找到很多有用的工具和扩展。但对于普通用户,核心的NGINX功能通常已经足够使用,不必过多关注contrib目录。如果你对NGINX的扩展开发感兴趣,contrib目录中的内容可以作为很好的参考和学习资料。
3、docs/ 目录
功能和作用:
- 存放Nginx的文档
- 包含HTML格式的用户指南、开发指南等
使用注意事项:
- 这些文档通常是离线版本,可能不如官网更新
- 建议同时参考官方在线文档获取最新信息
- 对于开发者和管理员,这是很好的学习资源
4、html/ 目录
功能和作用:
- 存放默认的静态网页文件
- 包含默认的欢迎页面和错误页面
使用注意事项:
- 可以自定义这些页面,但要注意保留原始文件作为备份
- 确保文件权限正确,允许Nginx读取
- 在生产环境中,建议将静态文件放在单独的目录或使用专门的静态文件服务器
5、logs/ 目录
功能和作用:
- 存放Nginx的日志文件
- 通常包含access.log (访问日志) 和 error.log (错误日志)
使用注意事项:
-
定期检查和分析日志文件
-
实现日志轮转以管理磁盘空间
-
注意日志文件的权限,确保Nginx可以写入
-
考虑使用logrotate等工具自动管理日志
-
在高流量站点,注意日志对I/O性能的影响
6、temp/ 目录
功能和作用:
- 存放Nginx运行时的临时文件
- 可能包含客户端请求体、代理、FastCGI等的临时数据
使用注意事项:
- 确保有足够的磁盘空间
- 定期清理,但不要手动删除正在使用的文件
- 可以通过配置调整临时文件的位置
- 在高并发环境下,考虑将temp目录放在性能较好的存储设备上
- 注意文件系统权限,确保Nginx进程可以读写
通过正确管理和利用这些目录,可以提高Nginx的性能、安全性和可维护性。对于不同的使用场景,可能需要对这些目录进行不同的优化和配置。
三、自定义脚本完整源码
使用时,只需要修改对应的 Nginx 根目录,保存为 startup.bat
即可:
SET NGINX_DIR=C:\nginx-1.27.1\
@ECHO OFF
SET NGINX_DIR=C:\nginx-1.27.1\
color 0a
TITLE Nginx Management
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * * Nginx Management * * * * * * * * * * *
ECHO. * *
ECHO. * 1 启动Nginx *
ECHO. * *
ECHO. * 2 关闭Nginx *
ECHO. * *
ECHO. * 3 重启Nginx *
ECHO. * *
ECHO. * 4 测试配置文件 *
ECHO. * *
ECHO. * 5 退 出 *
ECHO. * *
ECHO. * * * * * * * * * * * * * * * * * * * * * * * *
ECHO.
ECHO.请输入选择项目的序号:
set /p ID=
IF "%id%"=="1" GOTO cmd1
IF "%id%"=="2" GOTO cmd2
IF "%id%"=="3" GOTO cmd3
IF "%id%"=="4" GOTO cmd4
IF "%id%"=="5" EXIT
PAUSE
:cmd1
ECHO.
ECHO.启动Nginx......
IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在
cd %NGINX_DIR%
IF EXIST %NGINX_DIR% start %NGINX_DIR%nginx.exe
ECHO.OK
PAUSE
GOTO MENU
:cmd2
ECHO.
ECHO.关闭Nginx......
taskkill /F /IM nginx.exe > nul
ECHO.OK
PAUSE
GOTO MENU
:cmd3
ECHO.
ECHO.关闭Nginx......
taskkill /F /IM nginx.exe > nul
ECHO.OK
GOTO cmd1
GOTO MENU
:cmd4
ECHO.
ECHO.测试Nginx的配置文件......
nginx.exe -t
ECHO.OK
PAUSE
GOTO MENU