一、 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 


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐