培训第十六天(web服务apache与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 httpd2、查看安装情况以及安装的资源文件[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 http4、设置防火墙[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: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 打开服务不会马上生效,需要重启或者重载服务信息[root@web ~]# firewall-cmd --reload    //重载防⽕墙规则[root@web ~]# firewall-cmd --list-all  //查看当前区域下防⽕墙所有规则public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-client httpports: 80/tcpprotocols: masquerade: noforward-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 等。

官⽅⽹站:nginx news

(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.conffastcgi.conf.default   nginx.conf.defaultfastcgi_params         scgi_paramsfastcgi_params.default scgi_params.defaultkoi-utf                 uwsgi_paramskoi-win                 uwsgi_params.defaultmime.types             win-utfmime.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 ./sbinnginx   //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等级的错误⽇志路径信息(等级可添加或修改)89 #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;     //指定⽂件类型 2021     #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函数来输出⽂件,对于普通应⽤必须设定为no28     #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.html51         #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/nullif [ $? -ne 0 ];thenecho "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=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s stopPrivateTmp=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模块下面添加新模块statuslocation / {root   html;index  index.html index.htm;}location /status {stub_status on;access_log off;}[root@sla nginx]# systemctl restart nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386385.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备忘录系统

目录 一、 系统简介 1.简介 2需求分析 3 编程环境与工具 二、 系统总体设计 1 系统的功能模块图。 2 各功能模块简介 3项目结构 4 三、 主要业务流程 &#xff08;1&#xff09;用户及管理员登录流程图 &#xff08;2&#xff09;信息添加流程 &#xff0…

信息安全技术解析

在信息爆炸的今天&#xff0c;信息技术安全已成为社会发展的重要基石。随着网络攻击的日益复杂和隐蔽&#xff0c;保障数据安全、提升防御能力成为信息技术安全领域的核心任务。本文将从加密解密技术、安全行为分析技术和网络安全态势感知技术三个方面进行深入探讨&#xff0c;…

基于Java的微博传播分析系统的设计与实现

1 项目介绍 1.1 摘要 本文致力于展示一项创新的微博传播分析系统设计与应用研究&#xff0c;该系统基于Java技术&#xff0c;巧妙利用大数据环境下的社交媒体——微博的庞大用户群及高度活跃特性&#xff0c;旨在深度探索信息传播的内在逻辑与社会影响机制。研究开篇明确定了…

2024非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输!

一、前言 接口测试最近几年被炒的火热了&#xff0c;越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢&#xff1f; 主要是平常的功能点点点&#xff0c;大家水平都一样&#xff0c;是个人都能点&#xff0c;面试时候如果问你平常在公司怎么测试的&#…

设计模式 之 —— 单例模式

目录 什么是单例模式&#xff1f; 定义 单例模式的主要特点 单例模式的几种设计模式 1.懒汉式&#xff1a;线程不安全 2.懒汉式&#xff1a;线程安全 3.饿汉式 4.双重校验锁 单例模式的优缺点 优点&#xff1a; 缺点&#xff1a; 适用场景&#xff1a; 什么是单例模…

微前端概念

微前端作用 大型应用程序的拆分独立的前端子应用降低程序复杂性&#xff0c;提高开发效率 微前端能力 js隔离css隔离元素隔离生命周期预加载数据通信应用跳转多层嵌套… 微前端实现方案 IframeSingle-spaQiankunMicro-app Iframe <iframe src"https://www.examp…

684.美的集团六三二项目流程变革框架整体规划方案132页PPT

读者朋友大家好&#xff0c;最近有会员朋友咨询晓雯&#xff0c;关于集团公司流程变革框架整体规划的问题&#xff0c;晓雯查找到一份《美的集团632项目流程变革框架整体规划方案》&#xff0c;下面是部分内容分享&#xff0c;欢迎大家下载学习。 知识星球APP搜索【战略咨询文…

基于CentOS Stream 9平台安装JDK17.0.12

官方&#xff1a; https://www.oracle.com/java/technologies/downloads/#java17 1. 下载&#xff1a; https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 2. 存放目录 mkdir /usr/local/javacd /usr/local/java3. 解压 tar -zxvf jdk-17_linux-x64_…

JQuery异步请求与Flask后端通信、this和event指针汇总

目录 一.JQuery与Flask通信的三种方法 1.1$.ajax() 1.2$.get() 1.3$.post() 二.forEach()方法 三.this指针 3.1为什么要用this指针 3.2this的指向 3.3this指针的四种绑定方式 3.3.1默认绑定 3.3.2隐式绑定 3.3.3显式绑定 3.3.4new绑定 3.3.5通过标签调用this指针…

【云原生】Kubernetes中crictl的详细用法教程与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Glyph-ByT5-v2多语言高精度文字海报

微软亚洲研究院、清华大学、北京大学、利物浦大学联合推出渲染高视觉美感文本惊艳海报&#xff0c;效果媲美DALL-E3支持10种不同语言的准确视觉文本渲染项目仓库&#xff1a;https://github.com/AIGText/Glyph-ByT5i68爱六八,链接你我他&#xff1a;https://i68.ltd

基于物联网的区块链算力网络,IGP/BGP协议

目录 基于物联网的区块链算力网络 IGP/BGP协议 IGP(内部网关协议) BGP(边界网关协议) 内部使用ISP的外部使用BGP的原因 一、网络规模和复杂性 二、路由协议的特性 三、满足业务需求 四、结论 基于物联网的区块链算力网络 通 过 多个物联网传感器将本地计算…

鸿蒙HarmonyOS开发:@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

文章目录 一、装饰器二、概述三、限制条件四、装饰器说明五、Toggle组件1、子组件2、接口3、ToggleType枚举4、事件 六、示例演示1、代码2、效果 一、装饰器 State装饰器&#xff1a;组件内状态Prop装饰器&#xff1a;父子单向同步Link装饰器&#xff1a;父子双向同步Provide装…

Windows10安装CMake图文教程

CMake是一个跨平台的开源构建工具&#xff0c;用于管理软件构建过程。CMake允许开发人员使用简单的语法来描述项目的构建过程&#xff0c;而无需直接处理特定于操作系统或编译器的细节。开发人员可以编写CMakeLists.txt文件来指定项目的源文件、依赖项和构建规则&#xff0c;然…

2024杭电多校第三场

目录 1001-深度自同构 1003-游走 1007-单峰数列 1008-比特跳跃 1011-抓拍 1012-死亡之组 1001-深度自同构 每个数的答案其实与它的各个因数有关&#xff0c;正向递推一下 #include <bits/stdc.h> using namespace std; #define int long long const int N1e65; co…

计算机毕业设计选题推荐-服装生产管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

超市客流统计,AI智能分析算法,生成精准客户画像

随着科技的进步&#xff0c;零售行业正经历着前所未有的变革。其中&#xff0c;超市作为零售业态的重要组成部分&#xff0c;面临着如何更有效地吸引顾客、提升购物体验、增加销售额等挑战。借助先进的客流统计系统和AI智能分析算法&#xff0c;超市不仅能够准确地统计客流量&a…

共建数智江城:生态沃土如何孕育技术普惠的硕果

当人们热议一线、新一线等城市综合竞争力时&#xff0c;数字经济早已成为城市之间竞争的新赛道。 作为国家首批智慧城市建设试点城市&#xff0c;武汉一直是数字经济发展的先锋。2023年&#xff0c;武汉建成数字经济产业园区30家&#xff0c;数字经济规模占地区生产总值比重达4…

一篇文章教你学会二叉树的链表实现及其oj题(附源码)

前言 前面我们通过堆实现了二叉树&#xff0c;接下来我们用链表实现二叉树。 1. 实现链式结构二叉树 1.1 结构体定义 二叉树的每个结点需要两个指针&#xff0c;分别指向其左孩子和右孩子。还有一个结点域&#xff0c;存储数据。 还是将数据类型重命名&#xff0c;便于后面…

【JavaEE】通过Linux部署Web项目到云服务器上

一.配置部署所需的环境. 1.1 什么是部署? 要想知道什么是部署, 就要先了解我们在日常开发的过程中所设计到的几种环境: 开发环境: 软件开发环境指的是开发人员在创建、测试和部署软件应用程序时所需的一系列硬件、软件、工具和流程的集合。它是为了支持软件开发过程而构建的…