nginx最新稳定版本已经发布,支持windows11、10、8和7等主流操作系统,nginx是什么意思?中文翻译就是代理服务器,用专业术语来描述就是高性能的tcp、udp、http和反向代理服务器,简单描述就是web服务器软件,可以说它就是为网页而生,超级小的内存,不占电脑空间,稳定性强,从俄罗斯传到国内后,深受国内程序猿的喜爱。
nginx是干嘛用的
nginx安装包是轻量级的Web服务器、反向代理服务器及电子邮件代理服务器,并在BSD-like协议下发行,在高连接并发的情况下,这款服务器是Apache服务器的不错替代品。而且因为软件完全用C语言编写,所以这款强大的服务器目前能够应用在许多操作系统平台,比如Linux、windows、Mac OS X等等系统上。中国大陆许多网站都使用了这款软件,比如京东、腾讯、淘宝、网易等。占用内存少,并发能力强,而且并发能力目前在同类型的软件中表象的非常好,尤其是在网页服务器中,该软件的配置也非常简洁,不需要用户花费大量时间去进行相关配置,而且还只会赐perl语法,BUG也非常的少!
nginx官网中文版背景
Nginx最新版(发音同 engine x)是轻量级的Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。
nginx安装步骤
下载解压后,运行nginx.exe;
win10以上系统,会弹出安全提示,点击“允许访问”;
点击任务管理器,查看是否启动成功;
在进程里面,一直下拉,直到看到nginx.exe,代表安装和运行成功。
nginx配置文件详解超详细
1.配置文件结构
Nginx 的主要配置文件通常位于 /etc/nginx/nginx.conf。该文件包含全局指令、事件配置和多个 server 块,用于定义不同的虚拟主机。
配置文件基本结构:
user nginx; 指定运行 Nginx 的用户
worker_processes auto; 自动设置工作进程数量
events {
worker_connections 1024; 每个工作进程允许的最大连接数
}
http {
include mime.types; 包含 MIME 类型
default_type application/octet-stream; 默认 MIME 类型
sendfile on; 启用高效文件传输
keepalive_timeout 65; 连接保持时间
定义服务器块
server {
listen 80; 监听端口
server_name localhost; 服务器名称
location / {
root /usr/share/nginx/html; 网站根目录
index index.html index.htm; 默认主页
}
错误页面
error_page 404 /404.html;
location = /404.html {
internal;
}
}
}
2.常用指令详解
http 块
include mime.types;:引入 MIME 类型文件,用于根据文件扩展名设置 Content-Type。
default_type:指定默认的 MIME 类型。
sendfile on;:启用高效的文件传输。
keepalive_timeout:设置保持连接的超时时间。
server 块
listen:指定 Nginx 监听的 IP 地址和端口。
server_name:定义服务器名称,支持域名和 IP 地址。
location:根据请求 URI 来匹配不同的处理规则。
location 指令
location /:匹配根 URL。
location /images/:匹配以 /images/ 开头的 URL。
location ~ .php$:使用正则表达式匹配以 .php 结尾的 URL。
3.示例配置
3.1 基本静态文件服务
server {
listen 80;
server_name example.com www.example.com;
location / {
root /var/www/example; 网站根目录
index index.html index.htm; 默认主页
}
error_page 404 /404.html; 自定义404页面
}
3.2 反向代理
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://backend_server; 反向代理到后端服务器
proxy_set_header Host $host; 转发请求头
proxy_set_header X-Real-IP $remote_addr; 转发真实 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 转发代理 IP
}
}
3.3 SSL 配置
server {
listen 443 ssl; 启用 SSL
server_name example.com;
ssl_certificate /etc/ssl/certs/example.crt; SSL 证书路径
ssl_certificate_key /etc/ssl/private/example.key; 私钥路径
location / {
root /var/www/example;
index index.html index.htm;
}
}
3.4 gzip压缩
http {
gzip on; 启用 gzip 压缩
gzip_types text/plain application/json; 压缩的 MIME 类型
}
3.5 日志配置
http {
access_log /var/log/nginx/access.log; 访问日志
error_log /var/log/nginx/error.log; 错误日志
}
3.6 负载均衡
轮询负载均衡
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend; 代理到 upstream 定义的服务器
}
}
}
最少连接负载均衡
http {
upstream backend {
least_conn; 使用最少连接方法
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
IP 哈希负载均衡
http {
upstream backend {
ip_hash; 使用 IP 哈希
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
3.7 安全性配置
通过 deny 和 allow 指令来限制 IP 地址的访问
server {
listen 80;
server_name example.com;
location / {
allow 192.168.1.0/24; 允许某个网段的 IP
deny all; 拒绝其他所有 IP
}
}
防止其他网站直接链接到你网站的图片
server {
listen 80;
server_name example.com;
location ~* .(jpg|jpeg|png|gif)$ {
valid_referers none blocked example.com *.example.com;
if ($invalid_referer) {
return 403; 拒绝访问
}
}
}
限制请求速率:防止 DDoS 攻击
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location / {
limit_req zone=one burst=5;
}
}
}
3.8 URL 重写与重定向
重定向
server {
listen 80;
server_name old-example.com;
return 301 http://new-example.com$request_uri; 301 重定向到新域名
}
使用 rewrite 指令进行 URL 重写。
server {
listen 80;
server_name example.com;
location / {
rewrite ^/oldpath/(.*)$ /newpath/$1 permanent; 永久重写
}
}
3.9 处理 PHP 文件
server {
listen 80;
server_name example.com;
root /var/www/example;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404; 处理静态文件
}
location ~ .php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; PHP-FPM 的地址
fastcgi_index index.php;
fastcgi_param script_FILENAME $document_root$fastcgi_script_name;
}
}
3.10 错误页面定制
可以自定义错误页面,以提高用户体验。
server {
error_page 404 /404.html; 定义404错误页面
location = /404.html {
root /usr/share/nginx/html; 错误页面的文件路径
internal; 防止直接访问
}
}
3.11 HTTP Auth Basic
访问某个location增加二次认证
location /protected {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd; 指向密码文件
}
3.12 WebSocket 支持
server {
location /ws/ {
proxy_pass http://backend_service;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; WebSocket 需要的头部
proxy_set_header Connection "upgrade";
}
}
3.13 nginx防盗链配置
防盗链(Hotlink Protection)可以有效防止其他网站直接链接到你的资源(如图片、视频等),从而节省带宽和保护内容。
server {
listen 80;
server_name example.com;
location ~* .(jpg|jpeg|png|gif|mp4)$ {
valid_referers none blocked example.com *.example.com myfriend.com; 放行特定的网站访问
if ($invalid_referer) {
return 403; 拒绝请求
}
root /path/to/your/files;
}
error_page 403 /403.html;
location = /403.html {
root /usr/share/nginx/html;
internal; 只允许内部访问
}
}
3.14 跨域配置,基本 CORS 配置
在 Nginx 的 server 块中添加 add_header 指令,以支持跨域请求。
server {
listen 80;
server_name example.com;
location /api/ {
add_header 'Access-Control-Allow-Origin' 'https://specific-domain.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Access-Control-Allow-Credentials' 'true';
if ($request_method = OPTIONS) {
add_header 'Access-Control-Allow-Origin' 'https://specific-domain.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
return 204;
}
其他配置
proxy_pass http://backend_service;
}
}
4.其他配置
4.1全局配置
Nginx 的全局配置包含了影响 Nginx 服务器整体行为的指令,这些指令主要位于全局块中。全局块通常位于 events 和 http 块之外,它包含了对 Nginx 服务器运行所需的基本配置,如用户和用户组、进程数、工作目录、错误日志级别、PID 文件路径等。
常用的 Nginx 全局配置的主要指令包括:
user:指定 Nginx 工作进程运行的用户和用户组。
worker_processes:设置工作进程的数量,可以设置为 auto 自动匹配 CPU 核心数,或者指定具体数值。
error_log:配置错误日志的路径和日志级别。
pid:指定 Nginx 主进程 ID 文件的存放位置。
举个简单例子:
全局配置
user nginx nginx; 指定运行Nginx的用户和用户组为nginx
worker_processes auto; 自动设置工作进程数量,等于CPU核心数
错误日志配置
error_log /var/log/nginx/error.log warn; 设置错误日志的路径和级别为warn
PID文件配置
pid /var/run/nginx.pid; 设置PID文件的存放位置
4.2 events 块
events 块用于设置服务器与客户端连接的相关属性配置。这些配置主要涉及网络连接和事件处理。
这里也举几个常用的例子。
worker_connections
设置每个工作进程的最大客户端连接数。这个指令通常与 worker_processes 指令结合使用,来计算整个 Nginx 服务器的最大并发连接数。
举个栗子
events {
worker_connections 1024;
}
use
指定使用哪种事件模型。Nginx 支持多种事件模型,如 epoll(Linux)、kqueue(BSD)、select 和 poll 等。通常,Nginx 会根据操作系统自动选择最佳的事件模型,但也可以手动指定。
举个栗子
events {
use epoll;
}
multi_accept
设置是否允许服务器在单个监听事件中接受多个连接。这可以减少 I/O 等待时间,提高性能。
举个栗子
events {
multi_accept on;
}
accept_mutex
在某些情况下,可以设置为 on 来允许多个工作进程同时监听相同的端口。默认情况下,它是关闭的,以避免多个进程间的端口竞争。
举个栗子
events {
accept_mutex on;
}
accept_mutex_delay
当 accept_mutex 被启用时,这个指令可以设置尝试获取互斥锁的延迟时间。
举个栗子
events {
accept_mutex_delay 10ms;
}
常用命令
nginx -s reload 改变配置文件的时候,重启其工作进程,来时配置文件生效
nginx -s reopen 打开日志文件
nginx -s stop 强制关闭
nginx -s quit 安全关闭
关于我们
高可靠性:Nginx 的设计目标是提供 7x24 小时不间断的服务。
模块化:Nginx 拥有丰富的模块系统,可以轻松扩展其功能。
配置简单:Nginx 的配置文件结构清晰,易于理解和管理。
高性能:Nginx 能够处理大量的并发连接,而内存使用率相对较低。

魔兽争霸3冰封王座中文版
Bandizip便携破解版
悟饭游戏厅电脑版
同花顺苹果电脑版
trafficmonitor电脑版
altair psim 2025仿真软件







造梦西游之黎尤浩劫篇唐三藏通关攻略
造梦西游之黎尤浩劫篇灵宠大全
未定事件簿新春活动有哪些
造梦西游之黎尤浩劫篇怎么玩
斗破苍穹手游摘星老鬼怎么样
永劫无间方诺攻略
斗破苍穹手游紫妍怎么样
方舟生存进化棘背龙吃什么驯服
吉星派对局内任务怎么完成
未定事件簿故城长燃的薪火怎么玩
绝区零2.6版本内容介绍
潮汐守望者武圣关羽怎么样
全民祖玛公测时间什么时候
凡人灵境游公测时间介绍
火影忍者新春主题活动有哪些
第五人格春节主题1V4限时玩法介绍
百战群英手游征战四方怎么玩
星绘友晴天编辑器怎么用