nginx 企业应用配置-2 | 学习笔记

简介: 快速学习 nginx 企业应用配置-2。

开发者学堂课程【Linux Web 服务器 Nginx 搭建与配置nginx 企业应用配置-2学习笔记,与课程紧密联系,让用户快速学习知识.

课程地址:https://developer.aliyun.com/learning/course/579/detail/7990


nginx 企业应用配置-2

目录内容介绍:

一、ngx_hrrp_core_module

二、HTTP 请求报文


一、ngx_hrrp_core_module

1.root /vhosts/www/htdocs

root /vhosts/www/htdocs

http://www.magedu.com/index.html--> --->/vhosts/www/htdocs/index.htmlserver {

sever{

root /vhosts/www/htdocs/

location /admin/{

root/webapps/app1/data/

}

}

http://www.magedu.com/admin/index.html

--> /webapps/app1/data/admin/index.html

默认情况下如若不自行定义location,则意味着访问时将会以定义的root根目录中去寻找。也可以针对特定的ul实施特定的磁盘路径。

2.alias path

路径别名,与root截然不同。文档映射的另一种机制,仅能用于location上下文。

示例:

http://www.magedu.com/bbs/index.php

location /bbs/ {

alias /web/forum/;

当访问此网站的上述bbs文件夹时,得到的数据应该是web/forum文件夹下的内容。

}  --> /web/forum/index.html

location /bbs/ {

root/web/forum/;

}  --> /web/forum/bbs/index.html

将同样的代码改为root,同样访问此网站的上述bbs文件夹时,得到的数据应该是web/forum文件夹下的bbs

实际操作:

root

root/data/sitea;

location/news {

root /app/sitea/ ;

}

location = /index.html {

root/www/sitea/;

}

location /bbs{

alias/date/forum;

}

}“a.com.conf” 14L, 197c written

[proot@centos7 vhosts]#

[root@centos7 vhosts]#mkdir /data/forum

[root@centos7 vhosts]#echo/data/forum index.html data/forum/index.htm1

[root@centos7 vhosts]#mkdir /data/forum

/www/sitea/index.htm1

[root@centos7 ~ ]#cur1 http://www.a.com/

[www/sitea/index .htm]

[root@centos7 ~] #cur1 http://www.a.com

www/sitea/index.html

[root@centos7 ~] #cur 1

http://www.a.com/test.html

<html>

<head> <title>404 Not Found</tit1e> </head>

<body bgco lor= "white">

<center><h1>404 Not Found</h1> </center>

<hr> <center>nginx</center>

</body>

/htm1>

[root@centos7 ~ ]#cur1 http://www.a.com/

www/sitea index.htm

[ root@centos7 ~ ] #cur1m http://www.a.com test.htm1

<html> .

<head><tit1e>404 Not Found</tit1e> </head> .

body bgcolor="white">

<center><h1>404 Not Found</h1></center>

<hr> <center>nginx</ center>

</body>

</htm1>

[root@centos7 ~] #cur1 http://www.a.com/test.htm1

<htm 1>

<head><tit1e>404 Not Found</tit 1e> </head>

body bgcolor="white">

<center><h1>404 Not Found</h1> </center>

<hr> <center>ngi nx</center>

</body>

/htm1>

[root@centos7 ~] #cur1 http://www.a.com/test.htm1

/ data/sitea test . htm

[root@centos7 ~ ] #cur1 http:1//www.a.com

www sitea/index.htm1

[root@centos7 ~]#cur1 http://www.a.com/bbs/

/data/forum/index.html

[root@centos7 ~]#

alias

root/data/sitea;

location/news {

root /app/sitea/ ;

}

location = /index.html {

root/www/sitea/;

}

location /bbs{

#alias/date/forum;

root /data/forum

}

}

a.com.conf” 15L, 225c written

[proot@centos7 vhosts]#

[root@centos7 vhosts]#mkdir /data/forum

[root@centos7 vhosts]#echo/data/forum/bbs/index.hrml >/data/froum/bbs/index.html

[proot@centos7 vhosts]#nginx

/www/sitea/index.htm1

[root@centos7 ~ ]#cur1 http://www.a.com/

[www/sitea/index.htm]

[root@centos7 ~] #cur1 http://www.a.com

www/sitea/index.html

[root@centos7 ~] #cur 1

http://www.a.com/test.html

<html>

<head> <title>404 Not Found</tit1e> </head>

<body bgco lor= "white">

<center><h1>404 Not Found</h1> </center>

<hr> <center>nginx</center>

</body>

</htm1>

[root@centos7 ~ ]#cur1 http://www.a.com/

www/sitea/index.htm

[ root@centos7 ~ ] #cur1m http://www.a.com test.htm1

<html> .

<head><tit1e>404 Not Found</tit1e> </head> .

body bgcolor="white">

<center><h1>404 Not Found</h1></center>

<hr> <center>nginx</ center>

</body>

/htm1>

[root@centos7 ~] #cur1 http://www.a.com/test. htm1

<htm 1 >

head><tit1e>404 Not Found</tit 1e> </head>

body bgcolor="white">

<center><h1>404 Not Found</h1> </center>

<hr> <center>ngi nx</center>

</body>

/htm1>

[root@centos7 ~] #cur1 http://www.a.com/test.htm1

/ data/sitea test . htm

[root@centos7 ~ ] #cur1 http:1//www.a.com

www sitea/index.htm1

[root@centos7 ~]#cur1 http://www.a.com/bbs/

/data/forum/index.html

[root@centos7 ~]#cur1 http://www.a.com/bbs/

curl:(7)Failed connect www.a.com:80;Connection refused

[root@centos7 ~]#curl http://www.a.com/bbs/

/data/forum/bbs/index.html

注意: location中使用root指令和alias指令的意义不同

(a) root ,给定的路径对应于location中的/uri/左侧的/

(b) alias ,給定的路径対座于location中的/uri/右例的/

3.index file...;

当访问站点目录时,若不指定文件名,则无法进行文件的寻找。

指定默认网页文件,注意:ngx_hrrp_core_module模板

4.error__page code ... [= [response]] uri;

当访问错误页面后,系统将显示404错误。如果使用的是360浏览器,其会劫持本身的错误页面,即替换掉系统自带的错误页面。若想达到相同目的,可使用此类模块。

模块: ngx_http_core_module

定义错误页,以指定的响应状态码进行

可用位置: http, server, location, if inI ocation

error_ page 404 /404.html

error_ page 404 =200/404.html

例:

访问一个根本不存在的页面

[root@centos7 ~]#curl http://www.a.com/noexist.html

<html>

<head> <title>404 Not Found</tit1e> </head>

<body bgco lor= "white">

<center><h1>404 Not Found</h1> </center>   //404错误

<hr> <center>nginx</center>

</body>

</htm1>

[root@centos7 ~ ]#

为避免被劫持,除定向到200响应号

error_ page 404 = 200 /404.html

当访问页面不存在时,正常返回客户端应当是404界面,返回200响应码。

自身定制错误页面

server_name www.a.com ;

root/data/sitea;

error_page 404/404.htm1 ;

location/404.html {

root/data/sitea/error/;

}

location/news {

root/app/sitea/;

}

location = /index.htm1 {

root /www sitea;

}

location /bbs {

#alias/data forum;root/data/ forum ;

}

}

a.com.conf" 19L, 305c written

[root@centos7 vhosts]#mkdir data/sitea/error/

[root@centos7 vhosts]#vim 404.htm1

<h1>NO FOUND PAGE<h1>

a.com.conf" [New]1L, 23c written

[root@centos7 vhosts]#

[root@centos7 vhosts]#nginx

[root@centos7 vhosts]#mv 404.html /data/sitea/error/

访问a.com

[root@centos7 ~]#curl http://www.a.com/noexist.html

curl:(7)Failed connect www.a.com:80;Connection refused

[root@centos7 ~]#

5.try_ files file ... uri;

try__files file ... =code;

当访问具体路径时,如若找不到内容

按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹) ,如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误

location /images/ {

try_ files $uri /images/default.gif;

}

location / {

try_ files $uri $uri/index.html $uri.html =404;

}

定义客户端请求的相关配置

[root@centos7 sitea] #mkdir images

[root@centos7 sitea] #cd images

[root@centos7 images]#ls

[root@centos7 images#locate*.jpg

[root@centos7 images] #cp usr/ share/pi xmaps/faces/sky.jpg .

[root@centos7 images]#cp/usr/share/pixmaps/faces/ sunflower.jpg

[root@centos7 images]#cp/usr/share/pixmaps/faces/yellow-rose.jpg default. jpg[root@centos7 images]#11

total 16

rw-r--r--. 1 root root 2727 Jul 4 16:37 default.jpg

rw-r--r--. 1 root root 2964Ju 1 4 16:37 sky.jpq

当访问页面时,访问内容即返回内容,但如若无访问内容,则使用/images.defaut.jpg进行响应。即当访问网址时,即使路径写错也可以凭借默认文件页面达到访问的目的。

6. keepalive__timeout timeout [header._timeout];

默认情况下系统已经支持长链接。

长链接的测试命令:[root@centos7]#www.a.com 80

Trying 192.168.30.7...

connected to www.a.com

Escape character is '^]'

GET / HTTP/1.1

host:www.a.com

HTTP/1.1 200 OK

erver: nginx

Date: Wed,04Jul 2018 08:44:09 GMT

ontent-Type:text/htm1

Content-Length:22

Last-Modified: Wed04 Ju1 2018 07 :15:00 GMTonnection: keep-al ive

Tag:" 5b3c7 3f4-16

ccept -Ranges: bytes

还可以继续发起请求

设定保持连接超时时长, 0表示禁止长连接,默认为75s

7.keepalive_requests number;

在一次长连接上所允许请求的资源的最大数量

默认为100

8. keepalive_disable none | browser ...

对哪种浏览器禁用长连接

9.send__timeout time;

向客户端发送响应报文的超时时长,此处是指两次写操作之间的间隔时长,而非整个响应过程的传输时长

10. client_body_buffer_size size;

用于接收每个客户端请求报文的body部分的缓冲区大小;默认为16k ;超出此大小时, 其将被暂存到磁盘上的由下面client_body_ temp_path指令所定义的位置。其与自身传递结构相关。

假设网站中有一个路径ttp://www. a. com/upload/a. mp3

存放路径:/data/sitea/upload/.mp3

当用户访问时,将按照路径寻找文件。数据存放在文件系统中,访问时通过节点一层层找寻。为提高效率,便将数据进行哈希运算。哈希运算得到的内容是一个哈希值。得到后通过122的字符储存方式。即今后通过哈希值来进行文件的排列。

11.client_body_temp__path path [level1[level2[level3]]];

设定存储客户端请求报文的body部分的临时存储路径及子目录结构和数量目录名为16进制的数字;

client_ body_ temp_ path /var/tmp/client_ body 1 2 2

1 1级目录占1位16进制,即2^4=16个目录0-f

2 2级目录占2位16进制,即2^8=256个目录00-ff

2 3级目录占2位16进制,即2^8=256个目录00-ff


二、HTTP 请求报文

image.png

报文由三个部分组成,即开始行、首部行和实体主体。在求情报文中,开始行即请求行。

相关文章
|
23天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
56 7
|
19天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
11天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
31 3
|
19天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
37 4
|
19天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
42 3
|
19天前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
72 3
|
21天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
136 1
|
存储 缓存 前端开发
Nginx 基础配置(二)|学习笔记
快速学习 Nginx 基础配置
257 0
Nginx 基础配置(二)|学习笔记
|
自然语言处理 应用服务中间件 开发工具
Nginx 基础配置(一)|学习笔记
快速学习 Nginx 基础配置
150 0
Nginx 基础配置(一)|学习笔记
|
缓存 算法 Unix
nginx企业应用配置-3 | 学习笔记(一)
快速学习nginx企业应用配置-3。