Nginx 系列第一篇 —— Nginx 基础入门与安装配置

阅读 18

03-28 12:00

在现代 Web 开发中,Nginx 作为高性能 Web 服务器、反向代理服务器、负载均衡器,被广泛应用于各种场景。它以高并发、低内存占用的特性,成为企业级应用的首选。

本篇文章将从Nginx 的基本概念、安装、配置文件结构等方面入手,帮助初学者快速上手 Nginx。

1. Nginx 是什么?

Nginx(读作“engine-x”)是一个开源的高性能 HTTP 服务器和反向代理服务器,最初由俄罗斯程序员 Igor Sysoev 开发,用于高流量网站。

1.1 Nginx 主要用途

🔹 Web 服务器(HTTP Server):用于静态资源(HTML、CSS、JS、图片等)的托管。
🔹 反向代理(Reverse Proxy):代理用户请求,将请求转发到后端服务器(如 Node.js、PHP、Tomcat 等)。
🔹 负载均衡(Load Balancer):分发请求到多个后端服务器,提高系统稳定性和吞吐量。
🔹 动静分离(Static & Dynamic Separation):静态资源由 Nginx 处理,动态请求交给后端应用服务器,优化性能。
🔹 SSL 证书管理:提供 HTTPS 支持,实现安全加密通信。

1.2 Nginx vs Apache

对比项

Nginx

Apache

并发处理

异步非阻塞,采用 epoll 机制,高并发性能优秀

多进程/多线程,并发能力较弱

内存占用

,适用于高流量网站

,进程/线程数量多时,消耗大量资源

静态资源

处理效率高,适合静态站点

处理静态资源较慢

配置文件

简洁直观

规则较复杂

负载均衡

内置负载均衡,支持轮询、IP 哈希等策略

需要额外模块支持

2. Nginx 的安装

2.1 在 Linux(Ubuntu/Debian)上安装 Nginx

使用 apt 安装:

sudo apt update
sudo apt install nginx -y

安装完成后,启动 Nginx:

sudo systemctl start nginx

设置开机自启:

sudo systemctl enable nginx

2.2 在 CentOS 上安装 Nginx

使用 yum 进行安装:

sudo yum install -y epel-release
sudo yum install -y nginx

启动 Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

2.3 在 Windows 上安装 Nginx

  1. 访问 Nginx 官网 下载 Windows 版本的 Nginx。
  2. 解压下载的文件,例如解压到 C:\nginx
  3. 打开命令行(CMD 或 PowerShell),进入 Nginx 目录:

cd C:\nginx

  1. 运行以下命令启动 Nginx:

nginx.exe

  1. 在浏览器中输入 http://localhost,如果看到 Welcome to Nginx! 页面,说明 Nginx 运行成功。

3. Nginx 配置文件结构

Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf(Linux)或 C:\nginx\conf\nginx.conf(Windows)。

3.1 Nginx 配置文件结构

# 全局配置
user  www-data;
worker_processes  4;
error_log  /var/log/nginx/error.log;

# 事件相关配置
events {
    worker_connections  1024;
}

# HTTP 服务器配置
http {
    include       mime.types;
    default_type  application/octet-stream;
    
    # 设定日志格式
    access_log  /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;

    # 服务器块
    server {
        listen       80;
        server_name  localhost;

        # 指定网站根目录
        root   /var/www/html;
        index  index.html index.htm;

        # 处理静态资源
        location /images/ {
            root /var/www/static;
        }

        # 反向代理到后端服务
        location /api/ {
            proxy_pass http://127.0.0.1:3000;
        }

        # 错误页面
        error_page  404 /404.html;
    }
}

4. 启动、重启、停止 Nginx

操作

命令

启动 Nginx

sudo systemctl start nginx

停止 Nginx

sudo systemctl stop nginx

重新加载配置

sudo systemctl reload nginx

重启 Nginx

sudo systemctl restart nginx

检查 Nginx 运行状态

sudo systemctl status nginx

如果修改了 Nginx 配置文件,建议使用 reload 方式重新加载,而不是 restart,以避免服务中断。

5. Nginx 反向代理示例

Nginx 最常见的用途之一是反向代理,将请求转发到后端应用服务器(如 Node.js、PHP、Python)。

5.1 配置 Nginx 作为反向代理

编辑 Nginx 配置文件 /etc/nginx/sites-available/default

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1: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;
    }
}

📌 解析

  • proxy_pass http://127.0.0.1:3000;:将请求转发到运行在 localhost:3000 的后端服务。
  • proxy_set_header:设置请求头信息,确保后端能获取正确的 IP 和域名信息。

5.2 测试反向代理

  1. 启动后端应用(如 Node.js 运行在 localhost:3000)。
  2. 重新加载 Nginx:

sudo systemctl reload nginx

  1. 访问 http://example.com,如果成功访问后端服务,则 Nginx 反向代理配置成功。

6. 总结

本篇文章介绍了 Nginx 的基础知识,包括:

  • Nginx 的作用和应用场景
  • 安装 Nginx(Linux & Windows)
  • Nginx 配置文件的基本结构
  • 如何启动、停止、重启 Nginx
  • Nginx 反向代理的基本配置

🚀 下一篇文章,我们将深入探讨 Nginx 的反向代理与负载均衡! 

精彩评论(0)

0 0 举报