一、HTTP设置
1.设置虚拟主机
1.1Nginx 基于域名---虚拟主机
include /apps/nginx/conf.d/*.conf;
1.2Nginx 基于端口---虚拟主机
在做了域名的基础上,按照以下步骤继续
1.3Nginx 基于IP---虚拟主机
2.server下的root
root路径格式 指定文件的路径 url
Syntax: root path;
Default:
root html;
Context: http, server, location,指明 你软件的根目录
3.location基本匹配
www.kgc.com/ url
文件路径描述符
在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的URI来检查定义的所有location,按一定的优化级找出一个最佳匹配,而后应用其配置在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最高的一个uri,uri是用户请求的字符串,即域名后面的web文件路径,然后使用该location模块中的正则url和字符串,如果匹配成功就结束搜索,并使用此location处理此请求。
location 官方帮助:
Module ngx_http_core_module
小实验:
3.1
3.2
3.3
root与location
root:指明根目录位置
location:根据用户访问地址的不同,指定访问的目录
如果定义了 location,但在她的下面没有些内容,相当于没写
4.alias别名
4.1
4.2
server {
listen 80;
server_name www.kgc.com;
location /nwes {
root /data/nginx/html/pc/;
#相当于追加 将 文件夹news追加到/data/nginx/html/pc/news
}
location /study{
alias /mnt/nginx/sports/;
#相当于替换 你访问 study 就是访问/mnt/nginx/sports
}
}
5.location对应语法规则匹配
5.1语法规则:
#语法规则:
location [ = | ~ | ~* | ^~ ] uri { ... }= #用于标准url前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求
^~ #用于标准url前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写
~ #用于标准url前,表示包含正则表达式,并且区分大小写
~* #用于标准url前,表示包含正则表达式,并且不区分大写
不带符号 #匹配起始于此url的所有的url#\ #用于标准url前,表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号
#匹配优先级从高到低:
=, ^~, ~/~*(谁在前面,谁高), 不带符号
=
= 代表精确匹配,大小写敏感
不带符号
起始于根 /
^~
表示包含正则表达式,匹配以指定的正则表达式开头
不分大小写
~
正则表达式,匹配里面包含的内容
区分大小写
~*
正则表达式,匹配包含的内容
不区分大小写
5.2不区分大小写
~* 用来对用户请求的uri做模糊匹配,uri中无论都是大写、都是小写或者大小写混合,此模式也都会匹配,通常使用此模式匹配用户request中的静态资源并继续做下一步操作,此方式使用较多注意: 此方式中,对于Linux文件系统上的文件仍然是区分大小写的,如果磁盘文件不存在,仍会提示404 ~*
虽然 不区分大小写 但是系统的文件系统区分大小写
5.2.1
5.2.2
5.2.3
查看结果,是static1
= 优先级最高
5.2.4
删除static1后,查看结果,看到的是static3
~* 比 / 优先级高
5.2.5
我们可以看到,是static1的图片
~* 和 ~不分优先级,谁在前面就谁高
总结:
6.access模块 四层控制
如何查看模块是否默认安装
http://nginx.org/en/docs/http/ngx_http_access_module.html
[root@localhost nginx-1.18.0]#./configure --help |grep access
# 可以去源码包中 过滤 access模块 自带 不想要可以 without 去掉
--without-http_access_module disable ngx_http_access_module
--http-log-path=PATH set http access log pathname
--without-stream_access_module disable ngx_stream_access_module
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}配置文件修改
server {
listen 80;
server_name www.kgc.com;
allow 192.168.91.0/24;
deny 192.168.91.101;
location / {
root /data/nginx/html/pc;
}
}匹配了之后就不往下匹配了
所以范围小的往上#############
当访问 有问题时 默认站点 是按 文件的名字首字母开头排序
7.禁止