当前位置: 首页 > news >正文

web基础及nginx搭建

第四周
上午
静态资源 根据开发者保存在项目资源目录中的路径访问静态资源 html 图片 js css 音乐 视频
f12 ,开发者工具,网络
1 web 基本概念
web 服务器( web server ):也称 HTTP 服务器( HTTP server ),主要有 Nginx Apache
Tomcat 等。 2 、动态⻚⾯与静态⻚⾯的差别
1 URL 不同
静态⻚⾯链接⾥没有
动态⻚⾯链接⾥包含
2 )后缀不同 ( 开发语⾔不同 )
静态⻚⾯⼀般以 .html .htm .xml 为后缀
动态⻚⾯⼀般以 .php .jsp .py 等为后缀
3 )内容不同
静态⻚⾯的内容是固定的
动态⻚⾯的内容会因⽤户、浏览器、时间、地点等⽽发⽣变化。
3 HTTP 协议
HTTP 协议是超⽂本传输协议的缩写,英⽂是 Hyper Text Transfer Protocol 。它是从 WEB 服务器传
输超⽂本标记语⾔ (HTML) 到本地浏览器的传送协议。
1 HTTP 原理
HTTP 是⼀个基于 TCP/IP 通信协议来传递数据的协议,传输的数 据类型为 HTML ⽂件,图⽚⽂件,查
询结果等。
HTTP 协议⼀般⽤于 B/S 架构。浏览器作为 HTTP 客户端通过 URL HTTP 服务端即 web 服务器发送所
有请求, web 服务器收到客户端请求后进⾏响应。
2 HTTP 特点
1 http 协议⽀持客户端 / 服务端模式,也是⼀种请求 / 响应模式的协议。
2 、简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。请求⽅法常⽤的有 GET
HEAD POST
3 、灵活: HTTP 允许传输任意类型的数据对象。传输的类型由 Content-Type 加以标记。除开可以
响应字符串之外,还可以上传和下载⼆进制⽂件
4 、⽆连接:限制每次连接只处理⼀个请求。服务器处理完请求,并收到客户的应答后,即断开连
接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不⾜,产⽣了两项记录 http 状态的技
术,⼀个叫做 Cookie, ⼀个叫做 Session
5 、⽆状态:⽆状态是指协议对于事务处理没有记忆,后续处理需要前⾯的信息,则必须重传。
4 URI URL 的区别
1 HTTP 使⽤统⼀资源标识符( Uniform Resource Identifiers, URI )来传输数据和建⽴连接。
URI Uniform Resource Identifier 统⼀资源标识符
URL Uniform Resource Location 统⼀资源定位符
2 URI 是⽤来标识⼀个具体的资源的,我们可以通过 URI 知道⼀ 个资源是什么,使⽤它就能够唯
⼀地标记互联⽹上资源。 3 URL 则是⽤来定位具体的资源的,标识了⼀个具体的资源位置。互联⽹上的每个⽂件都有⼀个
唯⼀的。
4 URL ,也就是我们俗称的⽹址,它实际上是 URI 的⼀个⼦集。
5 URI 不仅包括 URL ,还包括 URN (统⼀资源名称),它们之间的关系如下:
5 HTTP 报⽂组成
1 )客户端发出请求:
GET /index.php HTTP/1.5/ Host:zgod.cn
2 )客户端浏览器发送出来的请求格式:
GET :这个部分只声明了请求⽅式,除了 get ⽅式可能还有 post 等⽅式。 GET 表示请求, POST
示邮寄。
/index.php :这⾥是⼀个 URL ,表示了我们要访问的资源是哪 个。
HTTP/1.5/ :这⾥表示的是客户端浏览器使⽤的协议版本是 1.5
Host:zgod.cn :这是请求是交给主机 zgod.cn 的。
6 HTTP 状态码
2xx :成功, 200 成功、 201 已经创建
3xx :重定向, 304 未修改
4xx :请求错误, 404 未找到⽂件、 408 请求超时
5xx :服务器错, 500 服务器内部错误、 502 ⽹关错误
7 HTTP 报⽂格式
⼀个完整的 http 访问包含请求( request )和响应( response
1 )请求报⽂
客户端发出的报⽂:包含了请求⾏,请求头部字段,通⽤头部字段,实体头部字段及报⽂主体。
请求⾏:客户端使⽤的请求⽅法,⽐如 GET POST 等等。同时也包含了 URL 信息和 HTTP 的版本号。
请求头部字段:它包含了请求的符加信息,⽐如客户端的信息, 响应的优先级等等。 通⽤头部字段:是请求报⽂和响应报⽂都会使⽤的报⽂内容。
实体头部字段:跟实体有关的资源信息,⽐如请求的实体更新时间等。
报⽂主体:⼀般来说,请求报⽂在使⽤ GET ⽅法时,没有报⽂主体,使⽤ POTS ⽅法时,就会有。
8 、常⻅请求⽅法(客户端向服务器)
1 GET : 去向服务器获取资源。即请求指定的⻚⾯信息,并返回实体主体。
2 POST :⽤来传输请求的实体主体。向指定资源提交数据进⾏处理请求。数据被包含在请求体
中。 POST 请求可能会导致新的资源建⽴或已有资源修改。
3 PUT :从客户端向服务器传送的数据取代指定的⽂档内容。
4 HEAD :从服务器端获取报⽂⾸部信息,确定客户端输⼊的 URL 有效性和资源的更新⽇期。类似
get 请求,只不过返回的响应没有具体内容,只⽤于获取头部。
5 OPTIONS :⽤来询问服务器⽀持哪些⽅法。即获取服务器⽀持的请求⽅法。
6 DELETE :⽤来删除⽂件的。请求服务器删除指定的⻚⾯。 9 HTTPS 协议
HTTP ⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于 此, HTTPS 应运⽽⽣。
HTTPS 的全称为 ( Hyper Text Transfer Protocolover Secure Socket Layer ), HTTPS HTTP
有很⼤的不同在于 HTTPS 是以安全为⽬标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保
证了传输过程的安全性。 HTTPS HTTP 的基础上增加了 SSL 层,也就是说 HTTPS=HTTP+SSL
HTTP 使⽤明⽂传播,有三⼤⻛险 :
1 )窃听⻛险( eavesdropping ):第三⽅可以获知通信内容。
2 )篡改⻛险( tampering ):第三⽅可以修改通信内容。
3 )冒充⻛险( pretending ):第三⽅可以冒充他⼈身份参与通信。
SSL/TLS 协议是为了解决这三⼤⻛险⽽设计的,希望达到:
1 )所有信息都是加密传播,第三⽅⽆法窃听。
2 )具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。
3 )配备身份证书,防⽌⽌身份被冒充。
10 HTTPS 安全通信的四⼤原则
1 )机密性
就是对数据的加密,在传输数据的过程当中,如果被⼈劫持了数据,那么这个加密的数据对⽅不能
轻易获得。
2 )完整性
是指数据在发送到接收的过程当中没有被篡改,从⽽接收到的数据 是⼀个完整的数据内容。
3 )身份认证
数据传输的过程当中对于身份的验证,确认对⽅是传送数据过来的⼈。可以解决冒充这样的⻛险。
4 )不可否认性
不能否认已经发⽣的⾏为。⽐如刚才举例双⽅借钱需要有借据并且 签名按⼿印,如此⼀来就不能抵
赖。
11 Apache 概念
最早的 web 服务程序,基于 http 协议提供⽹⻚浏览服务。
工作模式:
1 Prefork :使⽤进程处理请求,在该模式中⽐较消耗内存,但稳定性⾼,如某个进程出现问
题,不会影响其他请求。
2 Worker :属于多进程模式,每个进程⽣成多个进程 ; 在该模式下 消耗的资源⽐较⼩,适合⾼并
发请求,但稳定性没有 Prefork 模式稳定。
3 Event :该模式与 Worker 模式较为相似,不同之处在于在该模 式下可以解决 keepalive ⻓连
接时占⽤线程资源导致浪费的问题。 4 keep-alive ⻓连接: TCP 连接在发送后将仍然保持打开状态, 于是,浏览器可以继续通过相同
的连接发送请求。保持连接节省了为 每个请求建⽴新连接所需的时间,还节约了带宽。实现⻓连接要客
户 端和服务端都⽀持⻓连接。
12 、搭建 apache 服务器
1 、安装启动 httpd 服务
[root@web ~]# yum -y install httpd
[root@web ~]# systemctl start httpd
2 、查看安装情况以及安装的资源文件
[root@web ~]# rpm -qa | grep httpd
[root@web ~]# rpm -ql httpd
[root@web ~]# ls /etc/httpd/
[root@web ~]# vim /etc/httpd/conf/httpd.conf
[root@web ~]# ls /var/www/html/
3 、查看端口
[root@web ~]# netstat -lnput | grep http
4 、设置防火墙
[root@web ~]# systemctl status firewalld // 检查防火墙状态
[root@web ~]# systemctl start firewalld // 开启防火墙
不能直接禁用防火墙,可以单独打开端口 / 服务
[root@web ~]# firewall-cmd --list-ports // 查看防火墙打开的端口列表
[root@web ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent //
打开防火墙的 80 端口
[root@web ~]# firewall-cmd --zone=public --add-service=http --permanent //
设置防 墙放 apache
[root@web ~]# firewall-cmd --list-all // 查看当前区域下防 墙所有规则
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
打开服务不会马上生效,需要重启或者重载服务信息
[root@web ~]# firewall-cmd --reload // 重载防 墙规则
[root@web ~]# firewall-cmd --list-all // 查看当前区域下防 墙所有规则
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client http
ports: 80/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
5 、在资源目录中添加 index.html html 服务会自动找到 index 文件
[root@web ~]# vim /var/www/html/index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> 正方形 </title>
<style>
div{
background-color:red;
width:120px;
height:120px;
}
</style>
</head>
<body>
<div> 正方形 </div>
<img src="1.jpg"
</body>
</html>
下午
1 nginx 概念
1 Nginx 简介
Nginx engine X ):开源、轻量级、⾼性能的 HTTP 和反向代 理服务器,可以代理 HTTP
IMAP/POP3/SMTP TCP/UDP 协议。
基本特点:占⽤内存少、并发能⼒强,采⽤ C 语⾔编写,在性能⽅⾯有⼀定保证。
Nginx 可以⽤来做负载均衡及反向代理使⽤,⽬前使⽤最多的是负载均衡。
Nginx 同类的 Web 服务有 Apache Tomcat 等。
官⽅⽹站: http://nginx.org/
2 Nginx 服务器特点
1 、模块化设计
Nginx 将模块分为核⼼模块、 HTTP 模块、事件模块和邮件模块四类。每个模块都有特定的职责,从
⽽实现了整个 Web 服务器 的功能。
2 、低内存消耗,⾼并发
Nginx 使⽤ epoll and kqueue 作为开发⼯具,能够⽀持最⼤ 50000 个并发连接数的响应;不论是系
统资源开销还是 CPU 使⽤效率都很优秀。
3 、事件驱动
nginx 采⽤异步⽅式处理请求。
同步:指在发送⽅发出消息后,需要等待接收到接收⽅发回的响应,或者通过回调函数来接收到对
⽅响应信息。
异步:指在发送⽅发出请求后,接收⽅不需要返回消息或者不等 待返回消息,直接提供响应请求机制。
4 、⾼可靠性, master worker 架构 ⼀个主进程和多个⼯作进程。
⼯作进程是单线程的,且不需要特殊授权即可运⾏;
master 进程:主要⽤来监控 worker 进程⼯作状态进⾏相应重启、停⽌等操作。
worker 进程:进⾏具体提供服务,接受请求和处理请求。
5 、⽀持热更新配置、⽇志⽂件滚动、平滑升级
/usr/local/nginx/sbin/nginx -s reload
html ⽬录中的⽂件发上修改之后,不需要 nginx 服务
可向 master 发送 USR1 QUIT 等信号,⽆需强制停⽌服务即 可完成热更新。
master 发送的 USR1 ,可实现⽇志⽂件滚动。
master 发送的 USR2 ,可实现平滑升级。
6 、丰富的扩展模块
可在编译安装 nginx 时指定拓展模块,例如: nginx-sticky-module 模块(基于 cookie 来进⾏负载
转发)。
2 Nginx Apache 区别
1 )架构
Apache 采⽤多进程架构,每个请求都由⼀个独⽴的进程处理; ⽽ Nginx 采⽤异步事件驱动的架构,
可以处理更多的并发连接。
2 )性能
由于 Nginx 的架构设计,它可以处理更多的并发连接,⽽且在⾼负载情况下表现更加稳定和可靠。
因此, Nginx 通常被认为是⽐ Apache 更⾼效的 Web 服务器。
3 )配置
Apache 的配置⽂件⽐较复杂,需要⼀定的学习和经验才能正确配置;⽽ Nginx 的配置⽂件⽐较简
洁和可读性强,更容易理解和配置。
4 )功能
apache 有许多模块可以扩展其功能,例如 mod_rewrite ⽤于 URL 重写, mod_ssl ⽤于 SSL 加密
等;⽽ nginx 的功能⽐较简单,但是可以通过第三⽅模块扩展其功能。
3 Nginx 基本功能
1 )静态资源 Web 服务器
nginx 可实现动静资源分离
动态资源:需要程序处理或者从数据库中读数据,能根据不同的 条件在⻚⾯显示不同的数据。
静态资源:前端的固定⻚⾯,这⾥⾯包含 HTML CSS JS 、图 ⽚、⾳乐等等,不需要查数据库也不
需要程序处理,直接就能够显示的⻚⾯。 动静分离:当使⽤ nginx 处理静态⻚⾯时,可将⽤户的动态请求 转发给后端的 tomcat PHP 处理
动态⻚⾯。
前后端,前端就是完全的静态资源。
2 )基于域名 /IP/ 端⼝的虚拟主机
虚拟主机:在 Web 服务⾥就是⼀个独⽴的⽹站站点,这个站点对 应独⽴的域名 ( 也可能是 IP 或端⼝ )
具有独⽴的程序及资源⽬录,可以独⽴地对外提供服务供⽤户访问。
⼀个 nginx 主进程,指定⼀个配置⽂件,配置⽂件内有多个虚拟主机。如果不⽤虚拟机,⼀个域名
就要对应⼀个服务器,浪费资源。
3 )⻚⾯缓存
Nginx 不仅仅是⼀个 Web 服务器,它还可以作为⼀个缓存服务 器使⽤。
通过 Nginx 缓存,可以对⼀些静态资源或者数据更新频率较低 的后端服务做缓存,降低静态资源或
后端服务的响应时间,同时也会降低后端的负载。 ⽐如对⼀些图⽚, css js 做⼀些缓存,那么在每次刷
新浏览器的时候,就不会重新请求了,⽽是从缓存⾥⾯读取。这样就可以减轻服务器的压⼒。
7 )⽀持 gzip expires
当运维⼈员将压缩包放到 html 中,会⾃动部署
nginx ⽀持资源压缩和缓存控制。
4 、衡量⽹站⼤⼩和处理能⼒的指标
常⽤的⽹站性能测试指标有:吞吐量、并发数、响应时间、性能计算等。
⼀个⽹站优化的⽬的即是,最⼤限度的利⽤好服务器硬件资源提升资源利⽤率,减少⽤户请求的响
应时间,提⾼系统吞吐量,提⾼系统并发数。
Thread.sleep(1500)
1 、并发数
12306 并发数是指系统同时能处理的请求数量,这个也是反映了系统的负载能⼒。
2 、响应时间
响应时间是指发出⼀个请求时,从开始到最后收到该请求的响应数据时,所花费的总体时间。响应
时间是⼀个系统最重要的指标之⼀,该数值的⼤⼩直接反映了系统的快慢。作为运维⼈员,要确保⽹站
响应时间在客户可接受的范围内,⼀般在 3~10 秒。
3 、吞吐量
吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请 求的能⼒,这是⽬前最常⽤的性能
测试指标。
QPS (每秒查询数)、 TPS (每秒事务数)是吞吐量的常⽤量化 指标。 还有 HPS (每秒 HTTP 请求
数)。
QPS TPS )、并发数、响应时间三者的关系为: QPS TPS = 并发数 ÷ 响应时间。
4 、性能计数器
性能计数器是描述服务器或操作系统性能的⼀些数据指标,如使⽤内存数、进程时间,在性能测试
中发挥着 监控和分析 的作⽤,尤其是在分析系统可扩展性、进⾏新能瓶颈定位时有着⾮常关键的作⽤。
Linux 中可以使⽤ top 或者 uptime 命令看到当前系统的负载及 资源利⽤率情况。 资源利⽤率 : 指系统各种资源的使⽤情况,如 cpu 占⽤率为 68% ,内存占⽤率为 55% ,⼀般使⽤ 资源
实际使⽤ / 总的资源可 ⽤量 形成资源利⽤率。
5 nginx 安装
1 )安装 pcre ⾸先安装 pcre 。此软件是为了⽀持 rewrite (重写、复写)功能 ⽽存在的。 rewrite
是实现 url 重定向的重要命令,它会根据正则 表达式来匹配内容,从⽽跳转到⽬标上⾯去。
2 )安装 OpenSSL 当没有使⽤ ssl 证书对服务器数据进⾏加密认证时,⽤户的数据 将会以明⽂的形式进⾏传输,⽽此时,⽤户的数据可以被⼀些抓 包⼯具获取,就容易造成⽤户的信息泄露。 所以为了改善这种情况,作为运维⼈员需要去为⽹站配置 ssl 证 书,实现 https 协议的访问。
[root@sla ~]# wget https://nginx.org/download/nginx-1.27.0.tar.gz // 下载最新
版本的 nginx
[root@sla ~]# yum -y install gcc gcc-c++ //gcc 用于编译多种编程语言的编译器 gcc
c++ 专门用于编译 C++ 程序的 gcc 组件
[root@sla ~]# yum -y install make //make 用于自动化软件构建过程
[root@sla ~]# yum -y install openssl-devel // 安装 “openssl-devel” 包可以获得
OpenSSL 库的头文件和静态库文件
[root@sla ~]# yum -y install pcre-devel // 安装 pcre-devel 包可以让开发者在编写 C
C++ 程序时能够使用 PCRE 库来处理正则表达式
[root@sla ~]# tar -zxvf nginx-1.27.0.tar.gz
[root@sla ~]# cd nginx-1.27.0
[root@sla nginx-1.27.0]# ./configure --prefix=/usr/local/nginx --user=nginx --
group=nginx --with-http_ssl_module --with-http_stub_status_module --with
http_realip_module --with-stream
configure ,编译安装前的预配置。
--prefix=/usr/local/nginx :指定软件的安装路径,注意不是安装包⽬录,⽽是软件要安装在哪。
--user=nginx :程序⽤户为 nginx
--group=nginx :组为 nginx
--with-http_ssl_module :提供 HTTPS ⽀持, ssl 证书模块。
--with-http_stub_status_module :获取 nginx ⼯作状态模块。
--with-http_realip_module :获取真实客户端 IP
--with-stream :启⽤ TCP/UDP 代理模块。
[root@sla nginx-1.27.0]# make && make install
[root@sla nginx-1.27.0]# useradd -s /bin/nologin -M nginx //-M :表示不创建用
户的家目录。
[root@sla nginx-1.27.0]# cd /usr/local/nginx/
[root@sla nginx]# cp -r conf/ conf.bak // 备份配置文件的目录
[root@sla nginx]# ./sbin/nginx // 启动 nginx 服务
[root@sla nginx]# netstat -lntup | grep nginx // 查看 nginx 端口
[root@sla nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent
// 配置防火墙打开 80 端口
[root@sla nginx]# firewall-cmd --reload // 重启服务
[root@sla nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/bin/ // 将软件
下的 nginx 可执 程序软链接到 /usr/sbin
[root@sla nginx]# nginx -s reload // 热重启,仅重载 nginx 配置
之所以指令能在命令行使用,是因为在 $PATH 目录中能找到这个可执行文件或者是这个可执行文件的链接文件
6 nginx 目录结构介绍
[root@YH2 nginx-1.22.1]# cd /usr/local/nginx/ // 切换到 nginx 软件 录下
[root@YH2 nginx]# ls
conf html logs sbin #nginx 软件构成的
#conf :存放 nginx 配置 件的
#html :存放资源 件也就是 ⾸⻚ (站点根 录)的
#logs :存放 nginx 志的
#sbin :存放 nginx 可执 程序的
[root@YH2 nginx]# ls ./conf //nginx 所有配置
fastcgi.conf nginx.conf
fastcgi.conf.default nginx.conf.default
fastcgi_params scgi_params
fastcgi_params.default scgi_params.default
koi-utf uwsgi_params
koi-win uwsgi_params.default
mime.types win-utf
mime.types.default
#fastcgi.conf fastcgi 相关参数配置 件。
#fastcgi.conf.default fastcgi.conf 的原始备份 件。
#fastcgi_params fastcgi 的参数 件。
#nginx.conf nginx 默认主配置 件。
[root@YH2 nginx]# ls ./html/ // 站根
50x.html index.html // ⾸⻚ 索引 件。
#50x.html :错误 ⾸⻚
#index.html ⾸⻚
[root@YH2 nginx]# ls ./sbin
nginx //nginx 可执 程序
7 nginx 配置文件介绍
1 nginx 主配置⽂件
nginx.conf nginx 的主配置⽂件,编译安装的配置⽂件在之前预配置时指定的软件⽬录下,⼀般
/usr/local/nginx/conf/nginx.conf
yum 安装的 nginx ,主配置 ⽂件位于 /etc/nginx/nginx.conf nginx.conf 配置⽂件由指令控制的模
块组成。
指令分为简单指令和块指令,⼀个简单指令由名称和参数组成,空格分隔,分号结尾,如: listen
80 ;。
块指令与简单指令相同的结构,但不是以分号结尾,⽽是以⼤括 号包围的组附加指令结束,如:
server { }
2 nginx 块指令
全局块:配置 nginx 全局的指令
events 块:配置 nginx 与⽤户连接的相关指令,如: events { }
http 块:提供 HTTP 服务,如: http { }
server 块:配置虚拟主机,⼀个 http 可以有多个 server ,如: server { }
location 块:匹配 URL 后做什么动作或者跳转到⽹⻚的哪⾥, 如: location { }
[root@YH2 nginx]# vim /usr/local/nginx/conf/nginx.conf //nginx 主配置
1
2 #user nobody; // 配置运 nginx 户和组,(全局块)
3 worker_processes 1; // 设置 worker 的进程数量
4
5 #error_log logs/error.log; // 错误 志的路径信息
6 #error_log logs/error.log notice; //notice 等级的错误 志路径信息(等级可修改
或添加)
7 #error_log logs/error.log info; //info 等级的错误 志路径信息(等级可添加或修
改)
8
9 #pid logs/nginx.pid; //pid 件路径
10
11
12 events { //events
13 worker_connections 1024; // 每个进程最多能处理多少个连接
14 }
15
16
17 http { //http 块,设定 http 服务器,利 它的反向代理功能提供负载均衡
18 include mime.types; // 指定 件拓展名和 件类型映射表
19 default_type application/octet-stream; // 指定 件类型
20
21 #log_format main '$remote_addr - $remote_user [$time_local] "$request"
'
22 # '$status $body_bytes_sent "$http_referer" '
23 # '"$http_user_agent" "$http_x_forwarded_for"';
24
// 注释的三 nginx 程序内部变量
25 #access_log logs/access.log main; // 设定访问 志的路径及格式
26
27 sendfile on; // 指定 nginx 是否调 sendfile 函数来输出 件,对于普通应
必须设定为 no
28 #tcp_nopush on; // 放置 络阻塞
29
30 #keepalive_timeout 0; // 连接超过的时间设置
31 keepalive_timeout 65;
32
33 #gzip on; // 开启 gzip 压缩
34
35 server { // server 块,配置各种虚拟主机
36 listen 80; // 设置监听端
37 server_name localhost; // 配置的域名信息, server 可以对应 个域名信
38
39 #charset koi8-r; // 字符集, utf-8 为中 字符集
40
41 #access_log logs/host.access.log main; // 设定本虚拟主机的访问 志和
志类型
42
43 location / { // location 块,代表 url 的跳转, “/” 的内容代表我们
在浏览器地址栏输 的域名或 IP 地址的后续访问路径
44 root html; // 服务器的默认 站根 录位置
45 index index.html index.htm; // ⾸⻚ 索引 件名称
46 }
48 #error_page 404 /404.html; // 错误提示 ⻚⾯
49
50 # redirect server error pages to the static p age /50x.html
51 #
52 error_page 500 502 503 504 /50x.html; // 错误提示 ⻚⾯
53 location = /50x.html {
54 root html;
55 } // 每个花括号都会与前 的对应
...... 省略部分注释内容 .......
79 } // 这个花括号对应的是 server
...........................................................
117 } // 这个花括号对应的是 http “{”
8 、以 systemctl 控制 nginx
脚本启动 nginx
[root@sla ~]# vim nginx.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx &> /dev/null
if [ $? -ne 0 ];then
echo "nginx 正在执行,或者 80 端口被占用 "
fi
[root@sla ~]# sh nginx.sh
配置 systemctl 控制 nginx
[root@sla ~]# ls /usr/lib/systemd/system
[root@sla ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=Flase
[Install]
WantedBy=multi-user.target
[root@sla ~]# systemctl daemon-reload // 重载 systemctl 的配置 件,以便
nginx.service
[root@sla ~]# reboot
[root@sla ~]# systemctl stop nginx // 停用成功
注意:如果直接使⽤ nginx 命令对程序进⾏控制,那么不可以再⽤ systemctl 服务控制命令对 nginx
进⾏后续操作。
⽐如:我现在使⽤了 nginx 命令直接启动了 nginx 程序,如果此时我对 nginx 的主配置⽂件做出了
修改想要重新载⼊主配置⽂件,那么不能使⽤ systemctl reload nginx.service 重载 nginx 配置,或
systemctl stop nginx.service 停⽌ nginx 程序,只能使⽤ nginx -s reload 重载配置,或 nginx -s stop
停⽌服务。
9 、监控模块的应用
添加监控模块(修改配置文件)
[root@sla nginx]# vim /usr/local/nginx/conf/nginx.conf // location 模块下面添
加新模块 status
location / {
root html;
index index.html index.htm;
}
location /status {
stub_status on;
access_log off;
}
[root@sla nginx]# systemctl restart nginx

相关文章:

web基础及nginx搭建

第四周 上午 静态资源 根据开发者保存在项目资源目录中的路径访问静态资源 html 图片 js css 音乐 视频 f12 &#xff0c;开发者工具&#xff0c;网络 1 、 web 基本概念 web 服务器&#xff08; web server &#xff09;&#xff1a;也称 HTTP 服务器&#xff08; HTTP …...

C++ 布隆过滤器

1. 布隆过滤器提出 我们在使用新闻客户端看新闻时&#xff0c;它会给我们不停地推荐新的内容&#xff0c;它每次推荐时要去重&#xff0c;去掉 那些已经看过的内容。问题来了&#xff0c;新闻客户端推荐系统如何实现推送去重的&#xff1f; 用服务器记录了用 户看过的所有历史…...

使用HTML创建用户注册表单

在当今数字化时代&#xff0c;网页表单对于收集用户信息和促进网站交互至关重要。无论您设计简单的注册表单还是复杂的调查表&#xff0c;了解HTML的基础知识可以帮助您构建有效的用户界面。在本教程中&#xff0c;我们将详细介绍如何使用HTML创建基本的用户注册表单。 第一步…...

Python零基础入门教程

Python零基础详细入门教程可以从以下几个方面进行学习和掌握&#xff1a; 一、Python基础认知 1. Python简介 由来与发展&#xff1a;Python是一种广泛使用的高级编程语言&#xff0c;由Guido van Rossum&#xff08;吉多范罗苏姆&#xff09;于1991年首次发布。Python以其简…...

成为git砖家(10): 根据文件内容生成SHA-1

文章目录 1. .git/objects 目录2. git cat-file 命令3. 根据文件内容生成 sha-14. 结语5. References 1. .git/objects 目录 git 是一个根据文件内容进行检索的系统。 当创建 hello.py, 填入 print("hello, world")的内容&#xff0c; 并执行 git add hello.py gi…...

园区导航小程序:一站式解决园区导航问题,释放存储,优化访客体验

随着园区的规模不断扩大&#xff0c;功能区划分日益复杂&#xff0c;导致访客和新员工在没有有效导航的情况下容易迷路。传统APP导航虽能解决部分问题&#xff0c;但其下载安装繁琐、占用手机内存大、且非高频使用导致的闲置&#xff0c;让许多用户望而却步。园区导航小程序的出…...

对于n进制转十进制的解法及代码(干货!)

对于p进制转十进制&#xff0c;我们有&#xff1a;(x)pa[0]*p^0a[1]*p^1a[2]*p^2...a[n]*p^n 举个例子&#xff1a;&#xff08;11001&#xff09;21*10*20*41*81*1625 &#xff08;9FA&#xff09;1610*16^015*16^19*16^22554 据此&#xff0c;我们可以编出c代码来解决问题 …...

当代互联网打工人的生存现状,看完泪流满面!

欢迎私信小编&#xff0c;了解更多产品信息呦~...

花几千上万学习Java,真没必要!(三十八)

测试代码1&#xff1a; package iotest.com; import java.nio.charset.StandardCharsets; import java.io.UnsupportedEncodingException; public class StringByteConversion { public static void main(String[] args) throws UnsupportedEncodingException { // 原始字…...

Zilliz 2025届校园招聘正式启动,寻找向量数据库内核开发工程师

为了解决非结构化数据处理问题&#xff0c;我们构建了向量数据库-Milvus! Milvus 数据库不仅是顶级开源基金会 LF AI&Data 的毕业项目&#xff0c;还曾登上数据库顶会SIGMOD、VLDB&#xff0c;在全球首届向量检索比赛中夺冠。目前&#xff0c;Milvus 项目已获得超过 2.8w s…...

TwinCAT3 新建项目教程

文章目录 打开TwinCAT 新建项目&#xff08;通过TcXaeShell&#xff09; 新建项目&#xff08;通过VS 2019&#xff09;...

大模型算法面试题(十九)

本系列收纳各种大模型面试题及答案。 1、SFT&#xff08;有监督微调&#xff09;、RM&#xff08;奖励模型&#xff09;、PPO&#xff08;强化学习&#xff09;的数据集格式&#xff1f; SFT&#xff08;有监督微调&#xff09;、RM&#xff08;奖励模型&#xff09;、PPO&…...

应用地址信息获取新技巧:Xinstall来助力

在移动互联网时代&#xff0c;应用获取用户地址信息的需求越来越普遍。无论是为了提供个性化服务&#xff0c;还是进行精准营销&#xff0c;地址信息都扮演着至关重要的角色。然而&#xff0c;如何合规、准确地获取这一信息&#xff0c;却是许多开发者面临的挑战。今天&#xf…...

图的最短路径算法:Dijkstra、Floyd-Warshall、Bellman-Ford

本文意在探讨图中最短路径算法 Dijkstra、Floyd-Warshall、Bellman-Ford 的对比和细节 整体分为如下四部分 总结性的比较了 Dijkstra、Floyd-Warshall、Bellman-FordDijkstra 算法介绍Floyd-Warshall 算法介绍Bellman-Ford 算法介绍 其中1、2、3 算法介绍部分会比较简洁&…...

Camera的pipline(TODO)

&#xff08;TODO&#xff09;...

非关系数据库-非关系数据库入门指南

非关系数据库入门指南 1. 引言&#xff1a;非关系数据库的兴起​ 在互联网技术飞速发展的今天&#xff0c;传统的关系型数据库面对海量数据和高并发访问时逐渐显得力不从心。于是&#xff0c;非关系数据库&#xff08;NoSQL&#xff0c;Not Only SQL&#xff09;应运而生&…...

看门狗IWDG、WWDG(速记版)

内置的看门狗有 独立看门狗 IWDG 和 窗口看门狗 WWDG 都用来在程序卡死的时候复位程序。 独立看门狗只有一个最晚时间界限。窗口看门狗有一个最早界限和最晚界限。独立看门狗有独立的时钟,一般设置来源时钟LSI40KHz。窗口看门狗挂靠在APB1总线上36MHz。 IWDG IWDG处于VDD供…...

ETL工程师角度下的SQL优化

作为ETL&#xff08;Extract, Transform, Load&#xff09;工程师&#xff0c;SQL优化是提高数据处理和分析效率的关键一环。优化SQL查询可以显著降低数据处理时间&#xff0c;提高ETL过程的性能。本文将从 合理设计数据模型&#xff1a;在ETL过程中&#xff0c;正确的数据模型…...

阿里云实时计算Flink在多行业的应用和实践

摘要&#xff1a;本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践&#xff0c;对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术&#xff0c;并且提供一些在技术架构上的参考建议。内容分为以下四个部分&#xff1a; 业…...

开源项目与工具:C++中的高性能并发库 - Intel Threading Building Blocks (TBB)

在C++的世界里,随着多核处理器成为常态,如何有效利用这些多核资源以实现高性能的并发编程成为了开发者们关注的焦点。Intel Threading Building Blocks (TBB) 作为一个专为并行编程设计的C++库,凭借其易用性、高效性和可扩展性,在高性能计算、游戏开发、金融分析等多个领域…...

Chapter 22 数据可视化——折线图

欢迎大家订阅【Python从入门到精通】专栏&#xff0c;一起探索Python的无限可能&#xff01; 文章目录 前言一、Pyecharts介绍二、安装Pyecharts三、全局配置项四、绘制折线图 前言 在大数据时代&#xff0c;数据可视化成为了分析和展示数据的重要手段。Pyecharts 是一个基于 …...

管理流创建schema流程源码解析

一、简析 schema是pulsar重要的功能之一&#xff0c;现在就一起从源码的视角看下管理流创建schema时客户端和服务端的表现 客户端 客户端主要经历以下四个步骤 创建Schema实例 根据数据类型创建相对应的实例&#xff0c;例如Avro创建AvroSchema、JSON创建JSONSchema等 获取…...

【iOS】iOS内存五大分区

iOS内存五大分区 总揽 iOS中&#xff0c;内存主要分为五大区域&#xff1a;栈区&#xff0c;堆区&#xff0c;全局区/静态区&#xff0c;常量区和代码区。总览图如下。 这个图我觉得更好记&#xff0c;因为下面是低地址&#xff0c;上面是高地址&#xff0c;是比较符合日常…...

【项目实战】—— 高并发内存池

文章目录 什么是高并发内存池&#xff1f;项目介绍一、项目背景二、项目目标三、核心组件四、关键技术五、应用场景六、项目优势 什么是高并发内存池&#xff1f; 高并发内存池是一种专门设计用于高并发环境下的内存管理机制。它的原型是Google的一个开源项目tcmalloc&#xff…...

二叉搜索树的第 k 大的节点

题目描述 给定一棵二叉搜索树&#xff0c;请找出其中第 k 大的节点。 解题基本知识 二叉搜索树&#xff08;Binary Search Tree&#xff09;又名二叉查找树、二叉排序树。它是一棵空树&#xff0c;或者是具有下列性质的二叉树&#xff1a; 若它的左子树不空&#xff0c;则左子…...

利用langchain 做大模型 Few-shot Learning 提示,包括固定和向量相似的动态样本筛选

文章目录 few-shotFixed Examples 固定样本Dynamic few-shot prompting 动态样本提示辅助参考资料 few-shot 相比大模型微调&#xff0c;在有些情况下&#xff0c;我们更想使用 Few-shot Learning 通过给模型喂相关样本示例&#xff0c;让模型能够提升相应任务的能力。 固定样…...

基于python的百度迁徙迁入、迁出数据分析(五)

终于在第五篇文章我们进入了这个系列的正题&#xff1a;数据分析 这里我选择上海2024年5月1日——5月5日的迁入、迁出数据作为分析的基础&#xff0c;首先选择节假日的数据作为分析的原因呢&#xff0c;主要是节假日人们出行目的比较单一&#xff08;出游、探亲&#xff09;&a…...

SpringBoot 如何处理跨域请求

SpringBoot 处理跨域请求&#xff0c;通常是通过配置全局的 CORS&#xff08;跨源资源共享&#xff09;策略来实现的。CORS 是一种机制&#xff0c;它使用额外的 HTTP 头部来告诉浏览器&#xff0c;让运行在一个 origin (domain) 上的 web 应用被准许访问来自不同源服务器上的指…...

大数据技术基础编程、实验和案例----大数据课程综合实验案例

一、实验目的 (1&#xff09;熟悉Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用&#xff1b; (2&#xff09;了解大数据处理的基本流程&#xff1b; (3&#xff09;熟悉数据预处理方法&#xff1b; (4&#xff09;熟悉在不同类型数据库之…...

微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]

问题&#xff1a; 412 异常就是你的请求参数获取请求头与服务器的不符&#xff0c;缺少请求体&#xff01; 我的问题&#xff1a; 我这里获取微信手机号的时候突然给我报错142&#xff0c;但是代码用的是原来的代码&#xff0c;换了一个框架就噶了&#xff01; 排查问题&am…...

网站制作中英文天津/seo综合查询国产

目录 1.开启Hadoop集群和Hive元数据、Hive远程连接 2.配置 3.读取日志文件并清洗 4.单独处理第四列的数据——方法一&#xff1a; 5.单独处理第四列的数据——方法二&#xff1a; 6.单独处理第四列的数据——方法三&#xff1a; 7.数据清洗结果展示 8.存入Hive中 9.…...

合肥网站优化/seo建站技术

1. 任务调度线程池 1.1 ScheduledThreadPoolExecutor 延时执行 示例代码&#xff08;任务都延时1s执行&#xff09;: package com.tian;import java.util.Date; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.con…...

好的wordpress主题/网店代运营公司靠谱吗

当我们使用类型number的input输入框的时候&#xff0c;我们可能需要限制输入的位数&#xff0c;这个时候通常会想到maxlength&#xff0c;但是maxlength是在number类型的时候是不支持的&#xff0c;下面是一些解决这种问题的方法。1&#xff09;max和min max和min是number输入框…...

做网站用什么电脑配置/公司域名注册步骤

1) 创建接口项目和实现类项目&#xff1b; 编写接口&#xff0c;编写实现类。 接口类库 namespace MyIBLL {public interface IUserBll{bool Check(string username, string pwd);void AddNew(string username, string pwd);} } 实现接口类库 namespace MyBLLImpl {public cla…...

高端网站建设域名注册/汕头网站设计公司

p2p思路适应安卓&#xff0c;iOS&#xff0c;web一.SDP配置顺序1.本地PC设置生成offer sdp [localPC offerForConstraints:constraints completionHandler:^(RTCSessionDescription * _Nullable sdp, NSError * _Nullable error) { }];复制代码将生成sdp通过信令发送给远端并设…...

做优惠卷网站/冯耀宗seo教程

npm 初始化by Zell Liew由Zell Liew 初始化npm的最佳时间 (The best time to npm init) When should you npm init?您应该何时启动npm init &#xff1f; Most developers run npm init right after creating and navigating into a new project.大多数开发人员在创建并导航…...