一、认识Nginx

1、what 什么是 Nginx?

官方定义

Nginx(读音:Engine X)是一款免费、开源、高性能、轻量级的 HTTP Web 服务器、反向代理服务器、负载均衡器。由俄罗斯程序员 Igor Sysoev 开发,2004 年正式开源发布,目前是全球使用率最高的 Web 服务软件之一。
区别于传统 Apache 服务器,Nginx 基于异步、非阻塞、事件驱动模型设计,主打高并发、低内存、高稳定性。

核心身份定位

  • 静态 Web 服务器:直接部署静态资源(HTML/CSS/JS/图片),替代 Apache、Tomcat 静态服务能力。
  • 反向代理服务器:客户端请求统一入口,转发请求到后端应用服务,隐藏后端真实地址。
  • 负载均衡器:将海量流量分发到多台后端服务器,解决单服务器压力瓶颈,提升集群可用性。
  • HTTP 网关:实现 HTTPS 加密、限流、缓存、黑白名单、URL 重写、跨域处理等统一流量管控能力。

核心架构特点

采用 Master + Worker 多进程模型:

  • Master 主进程:负责管理配置、调度 Worker 进程、监控服务状态、实现热重载。
  • Worker 工作进程:负责处理客户端所有网络请求,默认进程数等同于 CPU 核心数,资源利用率极高。
  • 事件驱动模型:基于 epoll(Linux)实现异步非阻塞,单进程可维持上万并发连接。

2、why 为什么用 Nginx?

核心优势

对比传统服务器(Apache、Tomcat),Nginx 在生产环境成为首选,核心原因是性能强、稳定高、功能全、成本低。

  • 超高并发能力
    Apache采用同步阻塞模型,单进程处理单请求,并发上限低;Nginx异步非阻塞,单台服务器可支撑10万+并发连接,是高并发场景首选。
  • 极低资源占用
    运行时内存占用极小,百兆并发下仅占用几十 MB 内存,服务器硬件成本更低,低配机器也能稳定运行。
  • 高稳定性、高可用
    支持热加载、热部署,修改配置后可平滑生效,无需重启服务,不中断用户请求,适合7*24小时运行。
  • 功能极度丰富
    原生支持反向代理、负载均衡、静态缓存、Gzip 压缩、HTTPS、限流、防攻击、URL 重写、动静分离,无需额外插件即可满足绝大多数业务场景。
  • 跨平台、开源免费
    支持 Linux、Windows、MacOS 系统,开源协议宽松,无商业授权成本,企业、个人均可免费使用。
  • 扩展性极强
    模块化设计,支持 Lua 脚本、第三方模块扩展,可实现自定义网关、监控、限流、灰度发布等高级功能。

解决的行业痛点

  • 解决单台 Tomcat 并发不足、性能瓶颈问题;
  • 解决后端服务地址暴露、网络安全风险问题;
  • 解决多服务集群流量分配不均、单点故障问题;
  • 解决静态资源访问慢、带宽占用高的问题;
  • 解决多域名、多项目统一入口管理混乱问题。

3、where

Nginx 是互联网项目的流量入口标配,几乎所有网站、小程序、后端服务、微服务架构中都会部署,覆盖绝大多数 Web 业务场景。

静态资源部署场景

  • 电商
  • 政务
  • 门户
    在这里插入图片描述
    在这里插入图片描述

反向代理场景(最核心、最常用)

作为客户端与后端服务的中间层,接收用户请求,转发给后端 Java、Python、Node 服务,隐藏后端真实 IP 和端口,提升系统安全性和解耦性。

负载均衡集群场景

后端部署多台业务服务器,通过 Nginx 统一分发流量,实现:

  • 流量均分,避免单服务器过载;
  • 自动剔除故障节点,实现服务高可用;
  • 支持灰度发布、流量权重分配。

二、安装Nginx

安装Nginx

三、配置Nginx静态站点

1、清理默认页面

  • 切换当前工作目录到 Nginx 的默认网页根目录
  • 强制删除当前目录下的 index.html 文件(默认首页文件)
    在这里插入图片描述

2、上传自定义页面

  • 自定义网页文件上传到服务器的 /usr/share/nginx/html 目录下
  • 用 vim 编辑器打开 Nginx 的主配置文件 nginx.conf
    在这里插入图片描述

3、配置生效

  • 网站服务的核心配置
    在这里插入图片描述

4、浏览器验证

  • 访问服务器 IP 192.168.13.128

在这里插入图片描述

四、配置lnmp动态站点

1、认识lnmp

Linux + Nginx + MySQL + PHP

2、安装数据库和php

安装MySQL数据库 见博客

  • 安装 REMI 源(提供 CentOS 7 高版本 PHP)
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y yum-utils
yum-config-manager --enable remi-php74
  • 安装 PHP 及常用扩展(WordPress 必需)
yum install -y php74 php74-php-fpm php74-php-cli php74-php-mysqlnd php74-php-gd php74-php-mbstring php74-php-xml php74-php-xmlrpc php74-php-zip php74-php-opcache
  • 配置 PHP-FPM(用户 / 组改为 nginx)
# 修改用户和组为 nginx
vim /etc/opt/remi/php74/php-fpm.d/www.conf
user = nginx
group = nginx
listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

在这里插入图片描述

  • 启动 PHP-FPM 并开机自启
systemctl enable --now php74-php-fpm
systemctl restart php74-php-fpm

3、数据库基础配置

  • 登录 MySQL
mysql -u root -p
  • 创建 WordPress 数据库与用户
# 创建一个名为 wordpress 的数据库 默认使用 utf8mb4 字符集
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 创建一个 MySQL 登录账号
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'Root@123456';

# 给账号全部权限让它能管理数据库
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';

# 刷新权限 让新设置立即生效
FLUSH PRIVILEGES;

# 退出 MySQL 命令行
EXIT;

在这里插入图片描述

4、下载并配置 WordPress

  • 下载解压 WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -zxf latest.tar.gz

在这里插入图片描述

  • 移动到网站根目录
mv wordpress /var/www/
  • 权限设置
chown -R nginx:nginx /var/www/wordpress
chmod -R 755 /var/www/wordpress
  • 复制配置文件
cd /var/www/wordpress
cp wp-config-sample.php wp-config.php
  • 编辑 wp-config.php 填入数据库信息
vim wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', '你的强密码');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、配置 Nginx 支持 WordPress + PHP

  • 创建独立配置文件
vim /etc/nginx/conf.d/wordpress.conf
server {
    listen 80;
    server_name 192.168.13.128; # 换成你的域名或公网IP
    root /var/www/wordpress;
    index index.php index.html;

    # WordPress 伪静态
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP 转发给 php-fpm
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止访问隐藏文件
    location ~ /\. {
        deny all;
    }
}
  • 测试 Nginx 配置并重启
nginx -t
# 显示 syntax is ok 再重启
systemctl restart nginx
  • 浏览器访问
    在这里插入图片描述
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐