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. 运维关键是通过日志和语法检查定位问题,优先保证端口、路径、权限三大核心要素正确。
相关推荐
wd5i8kA8i1 天前
自研多线程 SSH 极速文件传输助手(附 GitHub 源码)
运维·ssh·github
Boop_wu1 天前
[Java 算法] 字符串
linux·运维·服务器·数据结构·算法·leetcode
徐小夕1 天前
我用 AI 撸了个开源"万能预览器":浏览器直接打开 Office、CAD 和 3D 模型
前端·vue.js·github
小码哥_常1 天前
Flutter Android 延迟加载代码指南:提升应用性能的关键
前端
这是个栗子1 天前
TypeScript(三)
前端·javascript·typescript·react
kvo7f2JTy1 天前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
北风toto1 天前
前端CSS样式详细笔记
前端·css·笔记
菱玖1 天前
SRC常见漏洞情况分类
运维·安全·安全威胁分析
nanfeiyan1 天前
git commit
前端
SkyXZ~1 天前
Jetson有Jtop,Linux有Htop,RDK也有Dtop!
linux·运维·服务器·rdkx5·rdks100·dtop