web技术与nginx网站环境部署

一、核心概念梳理

1. Web 技术基础

Web 服务本质是客户端(浏览器)<-> 服务器的 HTTP/HTTPS 通信,核心组件包括:

  • Web 服务器:处理 HTTP 请求、返回静态资源(HTML/CSS/JS/ 图片),Nginx 是高性能轻量级选择;
  • 动态解析:若需 PHP/Java/Python 动态页面,需搭配 FastCGI / 反向代理(如 Nginx+PHP-FPM);
  • 静态 / 动态资源:静态资源直接由 Nginx 返回,动态请求转发给后端语言解析器。

2. Nginx 核心作用

  • 反向代理(隐藏后端服务、负载均衡);
  • 静态资源托管(性能比 Apache 高 3-5 倍);
  • 虚拟主机(一台服务器部署多个网站);
  • HTTPS 配置、请求限流、缓存等。

二、Nginx 网站环境部署完整步骤(CentOS 7/8 为例)

前置准备

bash

运行

复制代码
# 1. 安装依赖
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 2. 下载并解压Nginx(以稳定版1.24.0为例)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

步骤 1:编译安装 Nginx

bash

运行

复制代码
# 配置编译参数(指定安装路径、启用HTTPS)
./configure --prefix=/usr/local/nginx --with-http_ssl_module
# 编译并安装
make && make install

# 验证安装
/usr/local/nginx/sbin/nginx -v  # 输出版本号则成功

步骤 2:基础配置(部署静态网站)

1. 编辑 Nginx 核心配置文件

bash

运行

复制代码
vim /usr/local/nginx/conf/nginx.conf
2. 核心配置内容(最简版)

nginx

复制代码
worker_processes  1;  # 工作进程数,建议等于CPU核心数
events {
    worker_connections  1024;  # 单进程最大连接数
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;  # 开启高效文件传输
    keepalive_timeout  65;  # 长连接超时时间

    # 虚拟主机配置(一个server对应一个网站)
    server {
        listen       80;  # 监听80端口
        server_name  localhost;  # 域名/服务器IP

        # 网站根目录(需提前创建)
        location / {
            root   /usr/local/nginx/html;  # 静态文件存放路径
            index  index.html index.htm;  # 默认首页
        }

        # 错误页面配置
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
3. 测试配置并启动 Nginx

bash

运行

复制代码
# 检查配置语法
/usr/local/nginx/sbin/nginx -t
# 启动Nginx
/usr/local/nginx/sbin/nginx
# 访问测试(浏览器输入服务器IP)
curl http://localhost  # 输出html页面内容则成功

步骤 3:部署动态网站(Nginx+PHP-FPM 为例)

1. 安装 PHP-FPM

bash

运行

复制代码
yum install -y php php-fpm
# 启动PHP-FPM
systemctl start php-fpm
systemctl enable php-fpm
2. 修改 Nginx 配置,转发 PHP 请求

nginx

复制代码
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/local/nginx/html;
        index  index.php index.html index.htm;  # 优先解析php
    }

    # 转发.php请求到PHP-FPM
    location ~ \.php$ {
        root           /usr/local/nginx/html;
        fastcgi_pass   127.0.0.1:9000;  # PHP-FPM默认端口
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
3. 测试动态页面

bash

运行

复制代码
# 创建php测试文件
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/test.php
# 重启Nginx
/usr/local/nginx/sbin/nginx -s reload
# 访问测试
curl http://localhost/test.php  # 输出PHP信息则成功

步骤 4:多网站部署(虚拟主机)

nginx

复制代码
http {
    # 第一个网站
    server {
        listen 80;
        server_name  www.site1.com;  # 域名1
        root /usr/local/nginx/html/site1;
        index index.html;
    }

    # 第二个网站
    server {
        listen 80;
        server_name  www.site2.com;  # 域名2
        root /usr/local/nginx/html/site2;
        index index.html;
    }
}

步骤 5:HTTPS 配置(可选)

bash

运行

复制代码
# 1. 生成SSL证书(自签测试用)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/nginx/conf/nginx.key -out /usr/local/nginx/conf/nginx.crt
# 2. 修改Nginx配置
server {
    listen 443 ssl;
    server_name localhost;
    ssl_certificate      nginx.crt;
    ssl_certificate_key  nginx.key;
    ssl_session_timeout  5m;
    location / {
        root   html;
        index  index.html index.htm;
    }
}

三、常用运维命令

bash

运行

复制代码
# 启动/停止/重启Nginx
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -s reload  # 平滑重启(不中断服务)

# 查看Nginx进程
ps -ef | grep nginx

# 查看访问日志
tail -f /usr/local/nginx/logs/access.log

# 查看错误日志
tail -f /usr/local/nginx/logs/error.log

四、常见问题排查

  1. 80 端口被占用netstat -anpt | grep :80 找到占用进程,kill -9 PID 杀死后重启;
  2. 配置语法错误nginx -t 会提示具体错误行号,针对性修改;
  3. PHP 页面下载而非解析:检查 fastcgi_pass 配置是否正确,PHP-FPM 是否启动;
  4. 403 Forbidden:检查网站目录权限(需给 nginx 用户可读权限)。

总结

  1. Nginx 部署核心是配置文件 ,需重点关注server块(端口、域名、根目录)和动态请求转发规则;
  2. 静态网站仅需 Nginx 即可部署,动态网站需搭配对应语言解析器(如 PHP-FPM);
  3. 运维关键是通过日志和语法检查定位问题,优先保证端口、路径、权限三大核心要素正确。
相关推荐
OpenTiny社区1 天前
GenUI SDK 生成式UI:六大开发特性详解,适配多种业务场景
前端·github·ai编程
大家的林语冰1 天前
TS 登顶第一语言;JS 最新 Temporal 时间减屎;Node 爆发反 AI 运动;CSS 将支持图片亮暗切换《前端周刊》
前端·javascript·css
Hilaku1 天前
OpenClaw 为什么突然不火了?
前端·javascript·程序员
风翼靓崽1 天前
linux命令杂记 - 杂乱无章
linux·运维·服务器
精益数智工坊1 天前
物料管理是什么?物料管理的具体工作有哪些?
大数据·前端·数据库·人工智能·精益工程
岩岩很哇塞!1 天前
【vue实现模仿探探卡片滑动切换效果】
前端·javascript·vue.js
域中四大1 天前
rk3568中修改波特率
linux·运维
互联网推荐官1 天前
大模型应用开发的上下文工程与推理链路深度拆解
大数据·运维·人工智能
风曦Kisaki1 天前
# Linux Shell 编程入门 Day01:Shell 基础认知、脚本编写规范、变量四大类型、数值运算
linux·运维·chrome
云智慧AIOps社区1 天前
云智慧亮相第二十八届智能体驱动的GOPS全球运维大会2026 · 深圳站!以运维智能体 Castrel AI (SRE Agent)保障系统稳定可靠!
运维·人工智能·ai agent·运维自动化·sre 智能体