Web与Nginx网站服务

目录

前言:

[一.Web 概念](#一.Web 概念)

[1.Web 的基本概念](#1.Web 的基本概念)

[2.B/S 架构模型](#2.B/S 架构模型)

[3.Web 请求与响应过程](#3.Web 请求与响应过程)

4.静态资源与动态资源

[5.Web 的发展阶段](#5.Web 的发展阶段)

[二.HTTP 与 HTTPS 协议](#二.HTTP 与 HTTPS 协议)

1.http与https区别

[2.HTTPS 握手流程](#2.HTTPS 握手流程)

3.HTTP状态码

[3.1.HTTP 状态码概览](#3.1.HTTP 状态码概览)

3.2.常用状态码详解

[三.Nginx 概念](#三.Nginx 概念)

[1.Nginx 介绍](#1.Nginx 介绍)

2.简述Nginx和Apache的差异

[3.Nginx 进程结构](#3.Nginx 进程结构)

四.Nginx安装

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

2.安装依赖包

[3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)](#3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限))

4.编译安装Nginx

5.定制核心配置

6.将配置好的源码编译成可执行程序并安装到指定位置

7.让系统识别nginx的操作命令

[8.检查、启动、重启、停止 nginx服务](#8.检查、启动、重启、停止 nginx服务)

[9.添加 Nginx 系统服务](#9.添加 Nginx 系统服务)

10.添加为系统服务并检查状态

总结

前言:

上次把awk命令做了分享,至此文本三剑客的内容就告一段落。今天我们来看一下web与nginx网站服务的工作原理和配置方法。

一.Web****概念

1.Web****的基本概念

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

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

2.B/S****架构模型

Web 采用 B/S 架构( Browser/Server
Browser (浏览器) :用户的入口,发送请求、渲染页面。
Server (服务器) :接收请求,返回所需资源或动态内容。

3.Web****请求与响应过程

一次完整的 Web 访问过程包括以下步骤:
输入 URL :用户在浏览器输入 http://www.example.com
DNS 解析 :浏览器将域名解析为 IP 地址。
建立连接 :浏览器与 Web 服务器建立 TCP 连接( 3 次握手)。
发送请求 :浏览器发起 HTTP 请求( GET/POST )。
服务器处理
Web 服务器处理静态资源请求
动态请求转发到应用服务器(如 Tomcat 、 Django )
应用服务器可能再查询数据库
返回响应 : Web 服务器将结果打包成 HTTP 响应报文返回浏览器。
渲染页面 :浏览器解析 HTML 、加载 CSS/JS 、渲染最终页面。

4.静态资源与动态资源

静态资源 :不需要服务器额外处理,直接返回即可
HTML、 CSS 、图片、视频、 JS 文件
优点:速度快,压力小
动态资源 :需要服务器端代码计算生成,再返回客户端。
PHP 脚本、 Python Flask/Django 、 Java Servlet 、 Ruby
优点:个性化内容,支持交互

5.Web****的发展阶段

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

二.HTTPHTTPS****协议

1.httphttps****区别

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

2.HTTPS****握手流程

TLS 握手过程 :客户端发起请求 → 服务端返回证书 → 双方协商加密算法 → 建立安全通道。
客户端 Hello → 服务端 Hello + 证书 → 客户端验证 → 加密通信

3.HTTP****状态码

3.1.HTTP****状态码概览

3.2.常用状态码详解

成功:2xx

重定向:3xx

客户端错误:4xx

服务器错误:5xx


生活中的 HTTP 状态码类比

三.Nginx****概念

1.Nginx****介绍

Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件( IMAP/POP3 )代理服务器,
单台物理服务器 可支持 30 000 50 000 个并发请求 。并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler (俄文: Рамблер )使用。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度 BWS 、新浪、网易、腾讯等。
静态资源服务 :可以直接把网页、图片、视频这些文件发给用户。
反向代理 :用户访问你的服务器, Nginx 可以帮你把请求转发到后端真正处理请求的服务器。
负载均衡 :当有很多后端服务器时, Nginx 可以智能分配流量,让每台服务器都不忙不过来。
高并发处理 :用事件驱动的方式处理请求,能同时处理成千上万的用户请求,而不会占用太多资
源。
nginx 官网
RamBler : http://www.rambler.ru/
nginx: http://nginx.org/
Mainline version 主线版本
Stable version 稳定版本
Legacy versions 老版本,遗产版本
旧版本下载: http://mirrors.sohu.com/nginx/
Nginx 中文参考地址 : http://www.nginx.cn/doc/

2.简述NginxApache的差异

Nginx 是一个甚于事件的 Web 服务器, Apache 是一个基于流程的服务器 ;
Nginx 避免子进程的概念, Apache 是基于子进程的 ;
Nginx 在内存消耗和连接方面更好, Apache 在内存消耗和连接方面一般 ;
Nginx 的性能和可伸缩性不依赖于硬件, Apache 依赖于 CPU 和内存等硬件 ;
Nginx 支持热部署, Apache 不支持热部署 ;
Nginx 对于静态文件处理具有更高效率, Apache 相对一般 ;
Nginx 在反向代理场景具有明显优势, Apache 相对一般。

3.Nginx****进程结构

多进程方式:服务器每接收到一个客户端请求就有服务器的主进程生成一个子进程响应客户端,直
到用户关闭连接,这样的优势是处理速度快,子进程之间相互独立,但是如果访问过大会导致服务
器资源耗尽而无法提供请求。
多线程方式:与多进程方式类似,但是每收到一个客户端请求会有服务进程派生出一个线程来个客
户方进行交互,一个线程的开销远远小于一个进程,因此多线程方式在很大程度减轻了 web 服务器
对系统资源的要求,但是多线程也有自己的缺点,即当多个线程位于同一个进程内工作的时候,可
以相互访问同样的内存地址空间,所以他们相互影响,一旦主进程挂掉则所有子线程都不能工作
了, IIS 服务器使用了多线程的方式,需要间隔一段时间就重启一次才能稳定。

四.Nginx安装

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0(关闭增强服务)
nginx-1.20.2.tar.gz (切换到opt,把这个软件包放到Linux中进行传输)

2.安装依赖包

#nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx

4.编译安装Nginx

tar zxvf nginx-1.20.2.tar.gz -C /opt/

5.定制核心配置

cd nginx-1.20.2/
./configure \
--prefix=/usr/local/nginx \ #指定nginx的安装路径
--user=nginx \ #指定用户名
--group=nginx \ #指定组名
--with-http_stub_status_module
--with-http_ssl_module #启用 http_stub_status_module 模块以支持状态统计

6.将配置好的源码编译成可执行程序并安装到指定位置

make && make install

7.让系统识别nginx的操作命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

8.检查、启动、重启、停止 nginx服务

nginx -t #检查配置文件是否配置正确
nginx #启动

9.添加 Nginx 系统服务

vim /etc/init.d/nginx

#!/bin/bash

#chkconfig: 35 99 20 // 这是固定格式,2345表示运行级别,之后为开机执行顺序和关机执行顺序

#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

10.添加为系统服务并检查状态

chmod +x /etc/init.d/nginx

chkconfig --add nginx

service nginx start|stop|restart|reload

总结:

今天对web与nginx网站服务的工作原理和配置方法做了一个详细的讲解,希望对读者们有所帮助!

相关推荐
木童6623 小时前
nginx安装步骤详解
linux·运维·服务器·网络·nginx
yifengyiyufjq4 小时前
基于 CentOS 7 的 Nginx 七层负载均衡架构搭建指南
nginx·centos·负载均衡
云和数据.ChenGuang6 小时前
运维工程师技术教程之nginx ip访问机制
运维·tcp/ip·nginx
岚天start7 小时前
Nginx内置变量详解
运维·nginx
@菜菜_达8 小时前
Nginx错误拦截转发 error_page
运维·nginx
终端行者10 小时前
Nginx 配置Websocket代理 Nginx 代理 Websocket
运维·websocket·nginx
Caster_Z14 小时前
WinServer安装NPM(Nginx Proxy Manager),并设置反向代理和开启https
前端·nginx·npm
q***133419 小时前
Linux(CentOS)安装 Nginx
linux·nginx·centos
大喵桑丶1 天前
中间件快速部署(Nginx,Keepalived)
运维·nginx·中间件