千家信息网

nginx 基础模块 2 虚拟机location等

发表于:2024-10-26 作者:千家信息网编辑
千家信息网最后更新 2024年10月26日,一 虚拟主机server { listen 80; server_name www.yang.com; #虚拟机主机重点,一样的ip端口,虚拟机
千家信息网最后更新 2024年10月26日nginx 基础模块 2 虚拟机location等

一 虚拟主机

server {        listen       80;        server_name  www.yang.com;        #虚拟机主机重点,一样的ip端口,虚拟机主机就是靠这边的域名来路由内容的        root         /yang/;        #根目录         index index.html index.php;        access_log  /yang/yang_com_access.log  main;        location / {        }}   

#虚拟机主机只需要在conf.d目录里 另起一个.conf 文件,里面把server段配好就行了,如果是相同ip端口 用域名来区分,就像上面代码一样

二 日志


#这些字段是控制日志输出内容的

$remote_addr变量:记录了客户端的IP地址(普通情况下)。$remote_user变量:当nginx开启了用户认证功能后,此变量记录了客户端使用了哪个用户进行了认证。$time_local变量:记录了当前日志条目的时间。$request变量:记录了当前http请求的方法、url和http协议版本。$status变量:记录了当前http请求的响应状态,即响应的状态码,比如200、404等响应码,都记录在此变量中。$body_bytes_sent变量:记录了nginx响应客户端请求时,发送到客户端的字节数,不包含响应头的大小。$http_referer变量:记录了当前请求是从哪个页面过来的,比如你点了A页面中的超链接才产生了这个请求,那么此变量中就记录了A页面的url。$http_user_agent变量:记录了客户端的软件信息,比如,浏览器的名称和版本号。


#设置访问日志的存储路径,error_log 是设置错误日志的

三.location

优先级

=    精确匹配:用于标准uri前,要求请求字符串和uri严格匹配。如果匹配成功就停止匹配,立即执行该location里面的请求。~    正则匹配:用于正则uri前,表示uri里面包含正则,并且区分大小写。~*  正则匹配:用于正则uri前,表示uri里面包含正则,不区分大小写。^~  非正则匹配;用于标准uri前,nginx服务器匹配到前缀最多的uri后就结束,该模式匹配成功后,不会使用正则匹配。无    普通匹配(\);与location顺序无关,是按照匹配的长短来取匹配结果。若完全匹配,就停止匹配。PS: 优先级从高到低

1 "="精准匹配

location = /news/ {            echo "test1";        }[root@www quail]# curl 192.168.249.132/news/test1

2 "~"区分大小写正则匹配

location ~ \.(html) {    echo 'test2';}location ~ \.(htmL) {    echo 'test3';}[root@www quail]# curl 192.168.249.132/index.htmltest2[root@www quail]# curl 192.168.249.132/index.htmLtest3

3 "~*"不区分大小写的正则匹配

location ~* \.(html){            echo 'test4';}[root@www quail]# curl 192.168.249.132/index.htmLtest4[root@www quail]# curl 192.168.249.132/index.htmltest4

4 "^~"不进行正则匹配的标准匹配,只匹配前缀

location ^~ /index/ {            echo 'test5';}[root@www quail]# curl 192.168.249.132/index/test5[root@www quail]# curl 192.168.249.132/index/heiheitest5[root@www quail]# curl 192.168.249.132/index/asdnmkalsjdtest5

5 普通匹配

location / {            echo 'test6';}[root@www quail]# curl 192.168.249.132test6
0