Web与Nginx

发布于:2025-09-07 ⋅ 阅读:(15) ⋅ 点赞:(0)

Web与Nginx网站服务入门指南

一、Web基础概念

1.1 什么是Web?

Web(World Wide Web,万维网)是运行在互联网之上的超文本信息系统,依赖于HTTP/HTTPS协议实现浏览器与服务器之间的交互。

核心特点:

  • 分布式:资源分布在世界各地的服务器上
  • 跨平台:只要有浏览器,就能访问资源
  • 无状态:每次HTTP请求都是独立的(除非使用Cookie/Session)

1.2 B/S架构模型

Web采用B/S架构(Browser/Server):

  • Browser(浏览器):用户入口,发送请求、渲染页面
  • Server(服务器):接收请求,返回所需资源或动态内容
用户浏览器 → Web服务器(Nginx/Apache) → 应用服务器(PHP/Python/Java) → 数据库(MySQL/Redis)

1.3 Web请求与响应过程

一次完整的Web访问包括以下步骤:

  1. 输入URL:用户在浏览器输入网址
  2. DNS解析:浏览器将域名解析为IP地址
  3. 建立连接:浏览器与Web服务器建立TCP连接(3次握手)
  4. 发送请求:浏览器发起HTTP请求(GET/POST)
  5. 服务器处理:Web服务器处理请求,可能需要应用服务器和数据库参与
  6. 返回响应:服务器将结果打包成HTTP响应返回
  7. 渲染页面:浏览器解析HTML、加载CSS/JS、渲染最终页面

1.4 静态资源与动态资源

  • 静态资源:不需要服务器额外处理,直接返回(HTML、CSS、图片、视频、JS文件)
  • 动态资源:需要服务器端代码计算生成(PHP脚本、Python Flask/Django、Java Servlet)

1.5 Web发展阶段

  • Web 1.0(只读):静态页面为主,用户只能浏览
  • Web 2.0(交互式):用户可生成内容,AJAX技术普及
  • Web 3.0(智能化):语义网、区块链、去中心化概念兴起

二、HTTP与HTTPS协议

2.1 HTTP与HTTPS区别

  • HTTP:明文传输,不安全
  • HTTPS:在HTTP上加入SSL/TLS加密,防止中间人攻击

2.2 HTTPS握手流程

  1. 客户端Hello:浏览器发起请求,告诉服务器支持的加密算法
  2. 服务端Hello+证书:网站返回SSL证书,选择加密算法
  3. 客户端验证证书:浏览器检查证书是否可信
  4. 协商密钥:双方生成临时密钥用于对称加密
  5. 加密通信开始:后续HTTP数据通过加密通道传输

2.3 HTTP状态码详解

状态码 类型 含义 通俗解释
200 2xx成功 OK 请求成功,东西拿到了
301 3xx重定向 Moved Permanently 页面永久搬家了
302 3xx重定向 Found 页面临时搬家
304 3xx重定向 Not Modified 内容未变,可用缓存
400 4xx客户端错误 Bad Request 请求格式错误
401 4xx客户端错误 Unauthorized 需要先登录
403 4xx客户端错误 Forbidden 没有访问权限
404 4xx客户端错误 Not Found 页面找不到
500 5xx服务器错误 Internal Server Error 服务器内部错误
502 5xx服务器错误 Bad Gateway 网关错误
503 5xx服务器错误 Service Unavailable 服务不可用
504 5xx服务器错误 Gateway Timeout 网关超时

三、Nginx入门

3.1 Nginx简介

Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发。

主要功能:

  • 静态资源服务
  • 反向代理
  • 负载均衡
  • 高并发处理

优势:

  • 轻量级,占用内存小
  • 支持百万级并发访问
  • 稳定可靠,开源且社区活跃

3.2 Nginx与Apache差异

  • Nginx基于事件驱动,Apache基于进程驱动
  • Nginx避免子进程概念,Apache基于子进程
  • Nginx在内存消耗和连接方面表现更好
  • Nginx支持热部署,Apache不支持
  • Nginx对静态文件处理和反向代理有明显优势

3.3 Nginx进程结构

Nginx采用多进程方式:

  • 主进程:管理 worker 进程
  • Worker进程:实际处理网络请求

Worker进程数量一般设置为核心数,充分利用CPU资源,同时避免进程竞争导致的上下文切换损耗。

Nginx 安装与配置完整指南

4.1 下载 Nginx

在 Linux 系统中使用 wget 命令下载 Nginx 稳定版本:

wget https://nginx.org/download/nginx-1.20.2.tar.gz

下载完成后,系统会显示下载进度和保存路径信息。

4.2 安装依赖环境

安装编译 Nginx 所需的依赖包:

# 关闭防火墙(根据实际环境需求)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

# 安装编译工具和依赖库
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

安装过程会自动解决依赖关系并安装所需的所有软件包。

4.3 创建用户并解压

创建 Nginx 运行用户并解压安装包:

# 创建Nginx用户(不允许登录系统)
useradd -M -s /sbin/nologin nginx

# 解压Nginx安装包到/opt目录
tar zxvf nginx-1.20.2.tar.gz -C /opt/

4.4 编译安装 Nginx

进入解压目录并进行编译安装:

# 进入Nginx源码目录
cd /opt/nginx-1.20.2/

# 配置编译选项
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module

# 编译并安装
make && make install

4.5 检查 Nginx 配置

验证 Nginx 配置文件语法是否正确:

nginx -t

如果配置正确,将显示:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

4.6 启动 Nginx 服务

直接使用 nginx 命令启动服务:

nginx

4.7 查看 Nginx 版本信息

验证安装版本和编译参数:

nginx -V

输出将显示版本号、编译器和模块信息。

4.8 添加 Nginx 系统服务

创建系统服务脚本以便管理:

vim /etc/init.d/nginx

添加以下内容:

#!/bin/bash
#chkconfig: 35 99 20
#description:Nginx Service Control Script

COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"

case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0

4.9 设置服务权限并管理

给脚本添加执行权限并设置为系统服务:

# 添加执行权限
chmod +x /etc/init.d/nginx

# 添加为系统服务
chkconfig --add nginx

# 设置开机自启
chkconfig nginx on

# 使用systemctl管理服务
systemctl start nginx    # 启动
systemctl stop nginx     # 停止
systemctl restart nginx  # 重启
systemctl reload nginx   # 重载配置
systemctl status nginx   # 查看状态

# 或者使用service命令
service nginx start|stop|restart|reload

至此,Nginx 已经成功安装并配置为系统服务,可以通过多种方式管理 Nginx 服务。


网站公告

今日签到

点亮在社区的每一天
去签到