Nginx概述
Nginx
作为负载均衡在 Linux
系统上具备很好的并发性能,并且占用极小的内存。但是在 Windows
系统上并不支撑较高并发,所以在Windows
系统上选用Nginx
作为负载均衡,需要考虑并发情况。
- 若并发需求低于 300,部署集群仅以热备为目的,可选用 Nginx 作为负载均衡,若并发需求超过 300,则不建议使用 Nginx,须换用其他负载均衡。
nginx下载
因为学习使用以及电脑性能各方面考虑,就没有安装ubuntu服务器或者安装虚拟机,直接在windows操作性系统下载使用
- 点击nginx官网下载地址
nginx安装
将下载好的nginx解压放在一个自己便于管理的文件夹下,不要点击nginx.exe
请注意,如果您在 Windows 上以服务的形式安装了 Nginx,那么您可能需要使用服务管理命令来控制 Nginx,而不是直接运行 nginx.exe。此外,确保您有适当的权限来执行这些命令,尤其是在尝试管理作为服务运行的 Nginx 时。
附上nginx中文文档地址:nginx中文文档
启动步骤
cmd
进入nginx文件夹终端。- Windows+R 输入 cmd 进行以下编译,按照本文档部署的 Nginx 应用,请使用下面的运维命令。
- 进入 Nginx 目录,输入
start nginx
启动Nginx
。如下图所示: - 会有一次终端的闪烁(一闪而过)
一般初始化nginx配置中是监听的就是9000端口(不一定,可以往后看自己配置这个监听的端口)。如果在浏览器能看到以下配置。说明nginx启动成功生效。
基础运维命令
在nginx目录下执行cmd,进入终端
开启:start nginx
更改完之后重启:nginx -s reload
快速停止nginx:nginx -s stop
优雅停止:nginx -s quit注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
基础配置以及注释
# Nginx配置文件
# 定义了服务器如何运行和处理请求的配置# 指定使用的工作进程数
worker_processes 1;# 事件处理模块配置,用于设置连接处理方式
events {# 每个工作进程的最大连接数worker_connections 1024;
}# HTTP服务配置,包括全局、服务器块和位置块配置
http {# 包含mime.types文件,用于定义各种文件类型的默认 MIME 类型include mime.types;# 默认的 MIME 类型default_type application/octet-stream;# 启用sendfile特性,用于提高文件发送性能sendfile on;# 设置客户端连接的保持活动状态超时时间keepalive_timeout 65;# 启用gzip压缩,减少数据传输量gzip on;# 服务器块配置,可以有多个,用于处理不同的请求server {# 监听的端口和服务器名称listen 9000;server_name localhost;# 首页请求处理location / {# 尝试按顺序查找对应的文件,未找到则重定向到/index.html或/index.htmtry_files $uri $uri/ /index.html /index.htm;}# API请求处理location /api/ {# 将API请求代理到指定的IP地址和端口上proxy_pass http://192.168.31.111:9000;}}
}
结构解释
Nginx 的配置文件结构是分层的,主要分为四个部分:主配置区块、事件区块、HTTP区块和服务器区块。下面是每个区块的简要说明和它们在配置文件中的作用:
-
主配置区块 (
http
之外的部分)- 这是最外层的配置区块,包含了全局的配置指令,如配置文件的包含指令
include
、用户定义的变量、进程数worker_processes
等。
- 这是最外层的配置区块,包含了全局的配置指令,如配置文件的包含指令
-
事件区块 (
events
{})- 这个区块配置了与客户端连接相关的设置,比如连接超时时间、工作模式(单线程或多线程)等。
-
HTTP区块 (
http
{})- 这是核心区块,包含了处理 HTTP 请求相关的配置。它包括文件扩展名与 MIME 类型的映射、日志定义、连接超时等。
-
服务器区块 (
server
{})- 位于 HTTP 区块内部,用于定义如何处理针对特定域名或 IP 地址的请求。服务器区块可以包含多个,用于配置虚拟主机。
在服务器区块内部,还可以有:
- 监听区块 (
listen
): 指定服务器监听的地址和端口。 - 服务器名称区块 (
server_name
): 定义当前服务器块适用的域名。 - 位置区块 (
location
{}): 定义请求的 URI 匹配规则,以及匹配后的处理方式,如静态资源服务、代理设置等。
一个典型的 Nginx 配置文件结构示例:
# 用户和组
user nginx;
worker_processes auto;# 错误日志定义
error_log /var/log/nginx/error.log warn;# 进程pid文件
pid /var/run/nginx.pid;# 事件区块
events {worker_connections 1024;
}# HTTP区块
http {# 文件扩展名与MIME类型的映射include /etc/nginx/mime.types;default_type application/octet-stream;# 日志格式定义log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# 访问日志定义access_log /var/log/nginx/access.log main;# 其他HTTP设置sendfile on;# TCP_NODELAY 套接字选项tcp_nopush on;# 防止网络运营商缓存页面tcp_nodelay on;# 包含其他配置文件include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;# 服务器区块server {listen 80 default_server;listen [::]:80 default_server;server_name localhost;# 服务器名称server_name_in_redirect off;# 客户端请求头部中Host字段的值root /usr/share/nginx/html;# 默认页面index index.html index.htm;location / {try_files $uri $uri/ =404;}location ~ \.php$ {# 配置PHP处理}# 其他location区块...}# 其他服务器区块...
}
这个结构展示了 Nginx 配置文件的基本框架,实际配置可能会更复杂,包括更多的指令和区块。理解这个基本结构对于编写和维护 Nginx 配置文件至关重要。