欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

Nginx

Nginx — 高性能Web服务器与反向代理工具,解决高并发与负载均衡痛点

兄弟们,今天聊点硬核的——Nginx。这玩意儿在服务端圈子里,基本算是“老黄牛”级别的存在。你刷网页、看视频、点外卖,背后大概率都有Nginx在默默扛着流量。它不是那种花里胡哨的新玩具,但如果你搞Web开发、运维或者自己搭服务器,不掌握Nginx,就像厨师不会颠勺,总觉得少了点灵魂。

它到底干了啥?解决了什么破事?

简单说,Nginx是一个轻量级、高并发的HTTP服务器和反向代理服务器。传统Apache处理一个连接就开一个进程,并发一高,内存直接爆炸。Nginx不一样,它用异步事件驱动模型,一个进程能管成千上万个连接,吃内存少得可怜。你遇到过网站突然卡死、502报错?多半是服务器扛不住并发,这时候Nginx就能救场。

它主要解决三个痛点:

  1. 静态资源服务:图片、CSS、JS这些文件,Nginx直接甩给客户端,比后端语言(比如PHP、Python)快得多。
  2. 反向代理与负载均衡:你只有一个域名,但背后跑着三台应用服务器。Nginx在前排当调度员,把请求均匀分发到后端,挂了一台也不影响。
  3. 安全与限流:防止恶意IP疯狂请求,限制每个用户的访问速度,保护后端不被冲垮。

下载方式

别去百度找那些乱七八糟的“Nginx中文站”,直接去官网或官方仓库最稳:

  • 官网下载:Nginx官方下载页 —— 有Windows和Linux的预编译包,稳定版(Stable)和主线版(Mainline)选稳定版就行。
  • 源码包:源码下载 —— 喜欢自己编译的硬核玩家从这里拿。
  • 第三方编译版:OpenResty —— 基于Nginx的增强版,集成了Lua脚本,适合做API网关。

安装方法

Linux(以Ubuntu/Debian为例,最省心)

sudo apt update
sudo apt install nginx -y

安装完自动启动,访问 http://你的服务器IP 看到Welcome页面就成功了。

CentOS/RHEL

sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx  # 设置开机自启

macOS

用Homebrew一键搞定:

brew install nginx
brew services start nginx

Windows

官网下载zip包,解压到 C:\nginx,双击 nginx.exe 启动。注意:Windows版性能不如Linux,但本地调试够用。

基础使用教程

1. 启动、停止、重载配置

# 启动
sudo nginx
# 快速停止
sudo nginx -s stop
# 优雅停止(处理完当前请求再停)
sudo nginx -s quit
# 重载配置(修改配置后热更新,不停服)
sudo nginx -s reload
# 检查配置语法是否正确
sudo nginx -t

重点:每次改完 nginx.conf,记得先 nginx -t 检查,再 nginx -s reload,不然写错配置直接崩。

2. 配置一个最简单的静态网站

Nginx的配置文件一般在 /etc/nginx/nginx.conf,但推荐在 conf.d 或 sites-available 目录下单独建文件。比如建一个 myblog.conf:

server {
    listen 80;
    server_name example.com;  # 换成你的域名或IP

    root /var/www/myblog;     # 网站文件路径
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

把这个文件放到 /etc/nginx/conf.d/ 下,然后 nginx -s reload,你的网站就上线了。

3. 反向代理——把请求转发给后端服务

假设你有个Node.js应用跑在 http://localhost:3000,想让用户通过 api.example.com 访问:

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

这样用户请求 api.example.com,Nginx就悄咪咪转发给3000端口,用户完全无感。

4. 负载均衡——多台服务器分摊压力

假设你有三台Java应用服务器:192.168.1.10:8080、192.168.1.11:8080、192.168.1.12:8080:

upstream backend {
    server 192.168.1.10:8080 weight=3;  # weight越大,分配流量越多
    server 192.168.1.11:8080;
    server 192.168.1.12:8080 backup;    # 备用,前两台挂了才用
}

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
    }
}

Nginx默认用轮询算法,你也可以用 ip_hash(同一IP固定到同一台服务器,适合需要会话保持的场景)。

进阶技巧(老鸟必看)

1. 限制请求速率(防爬虫、防爆破)

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server {
    location /login/ {
        limit_req zone=one burst=5;  # 允许突发5个请求
        proxy_pass http://backend;
    }
}

这个配置限制每个IP每秒只能访问 /login/ 一次,超过的请求直接返回503。对防暴力破解非常有用。

2. 配置HTTPS(SSL证书)

现在Google都强制HTTPS了,用Let's Encrypt免费证书:

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://localhost:3000;
    }
}

# HTTP自动跳转HTTPS
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

3. 静态文件压缩(Gzip)

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 256;
gzip_comp_level 6;

开启后,Nginx会压缩HTML、CSS、JS等文件,传输体积减少60%-80%,页面加载速度肉眼可见变快。

4. 日志切割(防止日志撑爆硬盘)

Nginx默认不自动切日志,可以用 logrotate:

sudo vi /etc/logrotate.d/nginx

写入:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

这样每天凌晨自动压缩旧日志,保留14天,省心又安全。

最后说两句

Nginx这东西,越用越觉得设计得精巧。它的配置语法虽然初期看着有点别扭(大括号、分号不能乱),但一旦上手,你会发现它几乎能解决所有Web服务层的需求。从个人博客到百万级并发应用,Nginx都能扛。如果你刚开始接触,建议先搭个静态网站,再试反向代理,最后玩负载均衡和限流——一步步来,比死记硬背配置参数强得多。

对了,生产环境千万别用默认配置,记得调 worker_processes(等于CPU核心数)、worker_connections(建议65535),还有关闭 server_tokens 隐藏版本号。安全第一,性能第二,这道理放哪都适用。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消