在 VPS.Town 安装 Nginx 完全指南

温馨提示

本文由用户 xiaoqingnian- 撰写,并已加入 VPS.Town 优秀原创文章激励计划,本站享有完整版权,未经允许不得转载。

本文已通过 VPS.Town 社区文章投稿及奖励规则 (试行稿) 审核,并获得 -- 奖励。

📖 本文目录

1. Nginx 简介

Nginx (发音为 "engine-x") 是一个高性能的开源 Web 服务器和反向代理服务器。它因其高效、稳定、低内存消耗和高并发连接处理能力而闻名。

主要用途:

  • Web 服务器:提供静态内容,如 HTML、CSS、JavaScript 等
  • 反向代理:将客户端请求转发到后端服务器
  • 负载均衡器:在多个后端服务器之间分配流量
  • 缓存服务器:缓存静态内容,减轻后端压力
  • API 网关:管理 API 请求和响应

nginx-architecture

2. 安装准备

2.1 系统要求

Nginx 可以在多种操作系统上运行,包括: Linux (各种发行版)、FreeBSD、macOS、Windows。

2.2 安装前的准备工作

在安装 Nginx 前,请确保系统已更新并安装必要的依赖包:

# Debian/Ubuntu 系统
sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

# CentOS/RHEL 系统
sudo yum update
sudo yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

我更偏爱 Debian 一点,以我的本地环境(Debian 12.0)为例,给出安装截图: nginx-architecture

3. 安装方法

3.1 使用包管理器安装 (五星推荐)

Debian/Ubuntu

sudo apt update
sudo apt install -y nginx

CentOS/RHEL

sudo yum install epel-release
sudo yum install nginx

安装完记的去设置开机启动,参见Nginx 管理

3.2 源代码编译安装

源码安装可以个性化选择想要的模块,集成自己想要的第三方模块,还可以针对特定硬件做优化。 但对于我们普通用户来说可以但没必要。以前玩树莓派的时候编过,现在没有热情了没有再完整编译安装过,这里也不做推荐。只是为了文档完整性,作为补充。

nginx-source-install

步骤 1:下载源码包

# 创建下载目录
mkdir -p ~/nginx-build && cd ~/nginx-build

# 下载最新稳定版
wget http://nginx.org/download/nginx-1.24.0.tar.gz

步骤 2: 解压源码包

tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

步骤 3:配置编译选项

./configure \
  --prefix=/usr/local/nginx \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_realip_module \
  --with-http_gzip_static_module \
  --with-http_stub_status_module

步骤 4: 编译和安装

# 编译
make

# 安装
sudo make install

3.3 验证安装

# 检查 Nginx 版本
/usr/local/nginx/sbin/nginx -v

# 检查配置文件语法
/usr/local/nginx/sbin/nginx -t

nginx-architecture

4.配置 Nginx

4.1 目录结构

安装完成后, Nginx 的主要目录结构如下:

目录/文件描述
/etc/nginx/ 或 /usr/local/nginx/conf/配置文件目录
/etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf主配置文件
/etc/nginx/sites-available/可用站点配置
/etc/nginx/sites-enabled/已启用站点配置
/var/log/nginx/ 或 /usr/local/nginx/logs/日志文件目录
/usr/share/nginx/html/ 或 /usr/local/nginx/html/默认网站文件目录

4.2 常见配置场景

静态网站配置

nginxserver {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html;

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

反向代理配置

nginxserver {
    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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

负载均衡配置

nginxupstream backend {
    server backend1.example.com weight=3;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
    }
}

5. Nginx 管理

5.1 服务控制

系统服务方式 (systemd)

# 启动 Nginx
sudo systemctl start nginx

# 停止 Nginx
sudo systemctl stop nginx

# 重启 Nginx
sudo systemctl restart nginx

# 重新加载配置
sudo systemctl reload nginx

# 查看状态
sudo systemctl status nginx

# 设置开机启动 (建议开启)
sudo systemctl enable nginx

手动控制

# 启动 Nginx
sudo nginx

# 停止 Nginx
sudo nginx -s stop

# 优雅停止(等待请求处理完毕)
sudo nginx -s quit

# 重新加载配置
sudo nginx -s reload

# 检查配置文件语法
sudo nginx -t

6. Extra

还有一些别的配置,如日志管理, Nginx 性能优化、安全配置,这里暂且不谈,有机会在下一篇我们再聊。

Refer

1. Nginx 官方手册

2. Nginx Github 仓库