web技术与nginx网站环境部署

1. Web 技术基础

  • Web 服务本质:客户端(浏览器)通过 HTTP/HTTPS 协议向服务端发起请求,服务端返回 HTML/CSS/JS 等资源,形成可交互的网页。
  • Web 服务器角色:核心是接收客户端请求、处理并返回资源,Nginx 是目前最主流的高性能 Web 服务器(同时支持反向代理、负载均衡)。
  • 核心协议:HTTP(80 端口,明文)、HTTPS(443 端口,加密)。

2. Nginx 核心优势

  • 轻量级、高性能,并发处理能力远超 Apache;
  • 支持反向代理、负载均衡、动静分离;
  • 配置简单,稳定性强,占用系统资源少。

二、Nginx 环境部署(以 Linux CentOS 7/8 为例)

前置条件

  • 一台 Linux 服务器(本地虚拟机 / 云服务器),具备 root 权限;
  • 服务器可联网,关闭 / 放行防火墙(80/443 端口)。

步骤 1:安装 Nginx

方式 1:yum 一键安装(推荐新手)

bash

运行

复制代码
# 1. 安装EPEL源(CentOS默认仓库无Nginx)
yum install -y epel-release

# 2. 安装Nginx
yum install -y nginx

# 3. 验证安装
nginx -v  # 输出版本号即安装成功,如 nginx/1.20.1
方式 2:编译安装(自定义配置,适合进阶)

bash

运行

复制代码
# 1. 安装依赖
yum install -y gcc pcre-devel zlib-devel openssl-devel

# 2. 下载Nginx源码(替换为最新版本)
wget https://nginx.org/download/nginx-1.24.0.tar.gz

# 3. 解压并编译
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx  # 指定安装目录
make && make install

# 4. 创建软链接(方便全局调用)
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
nginx -v  # 验证

步骤 2:Nginx 基础配置

Nginx 的核心配置文件路径:

  • yum 安装:/etc/nginx/nginx.conf(主配置)、/etc/nginx/conf.d/(站点配置,推荐在此新建配置文件);
  • 编译安装:/usr/local/nginx/conf/nginx.conf
示例 1:部署静态网站(最基础场景)
  1. 创建网站根目录并写入测试页面:

bash

运行

复制代码
# 创建目录
mkdir -p /usr/share/nginx/html/myweb

# 写入测试页面
echo '<!DOCTYPE html>
<html>
<head><title>My First Nginx Site</title></head>
<body>
<h1>Hello Nginx!</h1>
<p>静态网站部署成功</p>
</body>
</html>' > /usr/share/nginx/html/myweb/index.html
  1. 新建 Nginx 站点配置文件:

bash

运行

复制代码
vi /etc/nginx/conf.d/myweb.conf
  1. 写入以下配置(注释已标注关键项):

nginx

复制代码
# 单个服务配置块
server {
    listen 80;  # 监听80端口
    server_name localhost;  # 访问域名/IP,可填服务器公网IP

    # 根目录配置
    root /usr/share/nginx/html/myweb;
    index index.html index.htm;  # 默认首页

    # 日志配置(便于排查问题)
    access_log /var/log/nginx/myweb_access.log;
    error_log /var/log/nginx/myweb_error.log;

    # 静态资源缓存(优化性能)
    location ~* \.(jpg|jpeg|png|css|js)$ {
        expires 7d;  # 缓存7天
    }
}

步骤 3:启动并验证 Nginx

bash

运行

复制代码
# 1. 检查配置文件语法(关键!启动前必做)
nginx -t  # 输出 "nginx: configuration file /etc/nginx/nginx.conf test is successful" 即正常

# 2. 启动Nginx
systemctl start nginx  # yum安装方式
# 编译安装方式:/usr/local/nginx/sbin/nginx

# 3. 设置开机自启
systemctl enable nginx

# 4. 查看运行状态
systemctl status nginx  # 显示 "active (running)" 即启动成功
  1. 验证访问:
    • 本地虚拟机:直接在浏览器输入 http://localhost
    • 云服务器:输入 http://服务器公网IP,即可看到「Hello Nginx!」的测试页面。

步骤 4:进阶配置(可选)

1. 反向代理(前端 + 后端分离)

若有后端服务(如 Java/Node.js,运行在 8080 端口),修改myweb.conf

nginx

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

    # 前端静态资源
    location / {
        root /usr/share/nginx/html/myweb;
        index index.html;
    }

    # 反向代理后端接口
    location /api/ {
        proxy_pass http://127.0.0.1:8080/;  # 后端服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;  # 传递真实IP
    }
}
2. 配置 HTTPS(加密访问)

需先申请 SSL 证书(阿里云 / 腾讯云免费申请),配置示例:

nginx

复制代码
server {
    listen 443 ssl;
    server_name yourdomain.com;  # 你的域名

    # SSL证书路径
    ssl_certificate /etc/nginx/cert/yourdomain.crt;
    ssl_certificate_key /etc/nginx/cert/yourdomain.key;

    # SSL优化配置
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

    root /usr/share/nginx/html/myweb;
    index index.html;
}

# 强制HTTP跳转到HTTPS
server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

三、Nginx 常用运维命令

bash

运行

复制代码
nginx -t          # 检查配置语法
systemctl start nginx   # 启动
systemctl stop nginx    # 停止
systemctl restart nginx # 重启(配置修改后生效)
systemctl reload nginx  # 平滑重启(不中断服务)
systemctl status nginx  # 查看状态
nginx -s stop     # 强制停止(编译安装方式)
nginx -s reload   # 平滑重启(编译安装方式)

四、常见问题排查

  1. 访问超时 / 无法打开

    • 检查防火墙:firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reload
    • 云服务器需在安全组放行 80/443 端口;
    • 检查 Nginx 是否运行:systemctl status nginx
  2. 403 Forbidden

    • 检查网站目录权限:chmod -R 755 /usr/share/nginx/html/myweb
    • 检查 SELinux:setenforce 0(临时关闭),或vim /etc/selinux/configSELINUX=disabled(永久关闭)。
  3. 502 Bad Gateway

    • 反向代理场景下,检查后端服务是否运行;
    • 确认proxy_pass地址正确,无端口 / 路径错误。

总结

  1. 核心流程:安装 Nginx → 配置站点(根目录、端口、域名) → 检查配置语法 → 启动并验证访问;
  2. 关键配置server块是站点核心,listen指定端口,root指定网站目录,proxy_pass实现反向代理;
  3. 运维要点 :修改配置后需平滑重启,日志文件(/var/log/nginx/)是排查问题的核心依据,HTTPS 需配置 SSL 证书并强制跳转。
相关推荐
人间打气筒(Ada)2 小时前
zabbix报警多媒介(企业微信、钉钉)
运维·钉钉·企业微信·zabbix·监控·告警媒介
一水鉴天2 小时前
整体设计的自动化部署完整方案设计与程序实现 (完善版)20260311 之2 (豆包助手)
运维·人工智能·自动化
3Katrina2 小时前
RAG技术全拆解:让大模型告别“瞎编”,秒变靠谱助手
前端
returnthem2 小时前
Linux 测试环境完整部署手册(CentOS 7 + Ubuntu 20.04 双版本)
linux·运维·服务器
kiku18182 小时前
linux系统安全及应用
linux·运维·系统安全
a1117762 小时前
堆叠式流程图编辑器(html 开源)
开发语言·前端·javascript·开源·编辑器·html·流程图
墨渊君2 小时前
前端工程化进阶:Monorepos 架构简析(水文)
前端
兆子龙2 小时前
前端必学:完美组件封装的 7 个原则
前端·javascript
兆子龙2 小时前
React 性能坑:别让 AI 踩了,快来添加 rule 吧
前端·javascript