参考资料

  1. SimpleMindMap 是一款开源的思维导图工具
  2. TeamSpeak(TS)是一款专为游戏玩家和团队协作设计的语音通信软件
  3. AdoptOpenJDK 是一个提供预构建 OpenJDK 二进制文件的社区项目,支持多种平台和版本
  4. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,用于构建高性能
  5. SWI-Prolog 是一个开源的 Prolog 实现,广泛用于人工智能、自然语言处理和知识表示等领域
  6. Ubuntu 是基于 Debian 的开源 Linux 发行版
  7. Caddy 是一个现代化的、开源的 Web 服务器和反向代理工具
  8. docker安装redis详细说明以及案例

Nginx 简介

Nginx 是一款高性能的开源 Web 服务器、反向代理服务器和负载均衡器,由 Igor Sysoev 开发。它采用事件驱动的异步架构,支持高并发连接,广泛用于静态资源服务、API 网关和动态内容加速。

特点

  1. 高性能:事件驱动模型,支持高并发(单机可处理数万并发连接)。

  2. 低内存消耗:高效的内存管理机制。

  3. 反向代理与负载均衡:支持 HTTP、TCP/UDP 负载均衡。

  4. 热部署:支持不重启服务更新配置或二进制文件。

  5. 模块化设计:支持动态模块加载(如 HTTP/2、gRPC)。

  6. 高扩展性:通过 Lua 脚本(OpenResty)或第三方模块扩展功能。

最新更新内容及时间

  • 最新稳定版:1.25.3(截至 2023 年 10 月)

    • 新增:对 QUIC 和 HTTP/3 的实验性支持。

    • 修复:内存泄漏和 SSL 相关漏洞。

    • 详情见 官方更新日志

镜像下载地址

官网地址

文档地址


Docker 安装示例

# 拉取官方镜像
docker pull nginx:latest

# 运行容器(映射 80 端口)
docker run -d -p 80:80 --name my-nginx nginx

# 挂载自定义配置和静态文件
docker run -d -p 80:80 -v /path/to/nginx.conf:/etc/nginx/nginx.conf -v /path/to/html:/usr/share/nginx/html nginx

YAML 配置示例(适用于 Kubernetes)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25
        ports:
        - containerPort: 80
        volumeMounts:
        - name: nginx-config
          mountPath: /etc/nginx/nginx.conf
          subPath: nginx.conf
      volumes:
      - name: nginx-config
        configMap:
          name: nginx-config

常见错误及解决

  1. 403 Forbidden

    • 原因:权限不足或根目录配置错误。

    • 解决:检查 root 路径权限,确保用户(如 nginx)有读取权限。

  2. 502 Bad Gateway

    • 原因:反向代理的后端服务不可达。

    • 解决:检查 proxy_pass 地址和后端服务状态。

  3. Address already in use

    • 原因:端口被占用。

    • 解决:终止占用端口的进程或修改 Nginx 监听端口。

  4. worker_connections exceed open file resource limit

    • 原因:系统文件描述符限制。

    • 解决:修改 /etc/security/limits.conf,增加 nofile 值。

  5. SSL 证书错误

    • 原因:证书路径或权限问题。

    • 解决:检查 ssl_certificatessl_certificate_key 路径,确保证书文件可读。


配置片段示例

# 反向代理配置
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://backend-server;
        proxy_set_header Host $host;
    }
}

# 静态文件服务
server {
    listen 80;
    root /var/www/html;
    index index.html;
}