文章目录
前言
本文开始讲述nginx,包括nginx的原理与安装、Web与Nginx网站服务
一、Web与Nginx网站服务
1.1 Web 概念
Web(World Wide Web,万维网)是运行在互联网之上的一个 超文本信息系统,它依赖于HTTP/HTTPS 协议 实现浏览器与服务器之间的交互。
特点
分布式:资源分布在世界各地的服务器上。
跨平台:只要有浏览器,就能访问资源。
无状态:每次 HTTP 请求都是独立的,服务器不会记住客户端状态(除非使用 Cookie/Session)。
1.2 B/S 架构模型
Web 采用 B/S 架构(Browser/Server):
Browser(浏览器):用户的入口,发送请求、渲染页面。
Server(服务器):接收请求,返回所需资源或动态内容。

1.3 Web 请求与响应过程
一次完整的 Web 访问过程包括以下步骤:
1.输入 URL:用户在浏览器输入 http://www.example.com 。
2.DNS 解析:浏览器将域名解析为 IP 地址。
3.建立连接:浏览器与 Web 服务器建立 TCP 连接(3 次握手)。
4.发送请求:浏览器发起 HTTP 请求(GET/POST)。
5.服务器处理:Web 服务器处理静态资源请求、动态请求转发到应用服务器(如 Tomcat、Django)、应用服务器可能再查询数据库
6.返回响应:Web 服务器将结果打包成 HTTP 响应报文返回浏览器。
7.渲染页面:浏览器解析 HTML、加载 CSS/JS、渲染最终页面。
1.4 静态资源与动态资源
静态资源:不需要服务器额外处理,直接返回即可。
HTML、CSS、图片、视频、JS 文件
优点:速度快,压力小
动态资源:需要服务器端代码计算生成,再返回客户端。
PHP 脚本、Python Flask/Django、Java Servlet、Ruby
优点:个性化内容,支持交互
2、HTTP 与 HTTPS 协议
2.1 HTTPS 握手流程
TLS 握手过程:客户端发起请求 → 服务端返回证书 → 双方协商加密算法 → 建立安全通道。
客户端 Hello → 服务端 Hello + 证书 → 客户端验证 → 加密通信
TLS 握手过程(建立安全通道)
流程:
1.客户端 Hello
浏览器发起请求,告诉服务器自己支持哪些加密算法。
2.服务端 Hello + 证书
网站返回 SSL 证书(证明身份),选择一种加密算法。
3.客户端验证证书
浏览器检查证书是否可信(CA 颁发、没过期、域名匹配)。
4.协商密钥
双方生成一个临时密钥,用于对称加密后续通信。
5.加密通信开始
后续 HTTP 数据都通过加密通道传输。
2.3 HTTP状态码
1xx——————————我收到了请求,还在处理中
2xx 成功
200 OK———————— 请求成功(东西拿到了)
201 FOUND—————————创建成功(你提交的表单/资源已创建)
204 no content—————————成功没内容(操作成功,但没有额外东西返回)
3xx 重定向
301 moved permanently——————————永久搬家(这个页面永久换地址了)
302 found——————————临时搬家(暂时换地址,下一次还用旧地址)
304 NOTMODIFIED——————————内容为改(东西没变,你可以用缓存)
4xx 客户端错误
400 bad request——————————请求格式错误(你写的请求我看不懂)
401 unauthorized——————————未认证(先登录,再访问)
403 forbidden——————————禁止访问(你没权限)
404 NOT found——————————找不到页面(东西搬走或根本没这东西)
5xx 服务器错误
500 internal server error——————————服务器内部出错(服务器崩了)
502 bad gateway —————————网关错误(去找别的服务器,结果那边挂了)
503 service unavailable————————服务不可用(服务器忙不过来,稍后再试)
504 gateway timeout——————————网关超时(找别的服务器太慢,超时了)

3、Nginx 概念
3.1 Nginx 介绍
Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器。Nginx 是由 Igor Sysoev 为俄罗斯访问点开量第二的 Rambler.ru 站发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011 年 6 月 1 日,Nginx 1.0.4 发布。
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,单台物理服务器可支持30 000~50 000个并发请求。并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度 BWS、新浪、网易、腾讯、等。
Nginx 是一个 高性能 Web 服务器,它可以做很多事情:
1、静态资源服务:可以直接把网页、图片、视频这些文件发给用户。
2、反向代理:用户访问你的服务器,Nginx 可以帮你把请求转发到后端真正处理请求的服务器。
3、负载均衡:当有很多后端服务器时,Nginx 可以智能分配流量,让每台服务器都不忙不过来。
4、高并发处理:用事件驱动的方式处理请求,能同时处理成千上万的用户请求,而不会占用太多资源。
优势:
1、轻量级,占用内存小
2、支持百万级并发访问
3、稳定可靠,开源且社区活跃
3.2 简述Nginx和Apache的差异
1、Nginx是一个甚于事件的Web服务器,Apache是一个基于流程的服务器;
2、Nginx避免子进程的概念,Apache是基于子进程的;
3、Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;
4、Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;
5、Nginx支持热部署,Apache不支持热部署;
6、Nginx对于静态文件处理具有更高效率,Apache相对一般;
7、Nginx在反向代理场景具有明显优势,Apache相对一般。
3.3 Nginx 进程结构
web请求处理机制
1、多进程方式:服务器每接收到一个客户端请求就有服务器的主进程生成一个子进程响应客户端,直到用户关闭连接,这样的优势是处理速度快,子进程之间相互独立,但是如果访问过大会导致服务器资源耗尽而无法提供请求。
2、多线程方式:与多进程方式类似,但是每收到一个客户端请求会有服务进程派生出一个线程来个客户方进行交互,一个线程的开销远远小于一个进程,因此多线程方式在很大程度减轻了web服务器对系统资源的要求,但是多线程也有自己的缺点,即当多个线程位于同一个进程内工作的时候,可以相互访问同样的内存地址空间,所以他们相互影响,一旦主进程挂掉则所有子线程都不能工作了,IIS服务器使用了多线程的方式,需要间隔一段时间就重启一次才能稳定。

4、Nginx安装
4.1 关闭增强服务与防火墙
1、关闭增强服务:
临时关闭:setenforce 0
永久关闭:vi /etc/selinux/config 找到selinux将等号后面改为disabled

sed关闭:sed -i.bak ‘s/SELINUX=disbaled/SELINUX=enforcing/’ /etc/selinux/config
(新手一定记得要备份)

以上三种都可以关闭网络增强服务其中2、3为永久性关闭
2、关闭防火墙
systemctl stop firewalld ————————临时关闭
systemctl disable firewalld ————————永久关闭(要重启)
如果想完成永久性关闭且不用重启可以用 systemctl disable firewalld–now

4.2 解压nginx压缩包
第一步 将下载好的压缩包传输到虚拟机中
方法一、直接拖入虚拟机
方法二、

第二步 解压压缩包至/opt————tar -zxvf nginx-1.20.2.tar.gz -C /opt

4.3 下载与nginx有关的依赖包
第一步 配置好yum源(前面的博客中有写到)
第二步 下载依赖包
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

4.4 创建超级用户
Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限(这里超级用户属于系统用户,不可以登录)
useradd -M -s /sbin/nologin nginx
tail -1 /etc/passwd ——————查看是否创建成功

4.5 编译安装nginx
第一步 进入解压包解压之后的目录(这里为nginx-1.20.2)
cd /opt/nginx-1.20.2
第二步 输入
./configure
–prefix=/usr/local/nginx \ ————————————指定nginx的安装路径
–user=nginx \ ————————————指定用户名
–group=nginx \ ————————————指定组名
–with-http_stub_status_module
–with-http_ssl_module

第三步 编译安装 make && make install

4.6 创建软链接并确认nginx是否安装成功
第一步 创建软链接————————ln -s/usr/local/nginx/sbin/nginx /usr/local/sbin/
第二步 查看nginx是否安装成功 ————————nginx -V
第三步输入nginx进行启动

4.7 创建静态服务
第一步切换目录至/usr/local/nginx/html
第二步修改文件index.html文件

第三步 进行查找

总结
本文开始讲述nginx,包括nginx的原理与安装、Web与Nginx网站服务,希望本文能对您有所帮助,谢谢观看😜

被折叠的 条评论
为什么被折叠?



