Ngx核心功能与必会模块

Ngx核心功能与必会模块

1.WEB集群-Ngx核心功能详解

1.1.Ngx处理用户请求流程

1案例与思考

  • 案例01: 思考之前搭建的cxk.oldboylinux.cn网站,使用域名访问或ip访问都是没有问题的.如果把配置文件名

    game.cxk.oldboylinux.cn.conf使用域名或ip访问或怎么样?

  • 结果:

    • 域名访问网站没有任何问题.
    • 使用ip访问则显示静态页面,另外一个网站了.

2详细原理

image

image

1.2.虚拟主机

  • 虚拟主机:相当于是1个网站,在ngx中通过server{}区域实现.
  • ngx中虚拟主机有不同的类型(配置不同)

2.1.概述与分类

image

2.2.基于域名的虚拟主机 ⭐⭐⭐⭐⭐

  • 不同域名访问不同的主机

案例02: 创建bird.oldboylinux.cn网站

站点目录/app/code/bird/

书写配置文件.

1.完成后不创建站点目录进行访问看看报什么错误.

2.创建站点目录后再访问看看报什么错误.

3.创建首页文件和内容,访问看看显示什么.

server {
    listen 80;
    server_name bird.oldboylinux.cn;
    root /app/code/bird;  
    location / {
        index index.html;
    }
}
  • 测试

image

本地测试域名的小技巧(linux)

curl -v -H "Host: cxk.oldboylinux.cn" http:10.0.0.7/index.html

-H修改请求头里面的内容.

2.3.基于端口的虚拟主机

  • 不同的端口访问不的网站.
修改live.oldboylinux.cn端口为81.
erver {
 listen 81;
 server_name live.oldboylinux.cn;
 root /app/code/live;
 location / {
   index index.html;
 }
}
访问
curl  -H Host:live.oldboylinux.cn  http:10.0.0.7:81/index.html
浏览器
http:10.0.0.7:81/index.html

2.4.基于ip的虚拟主机

搭建mimi网站,端口是8888,只能通过172.16.1.7内网访问.

[root@web01 /etc/nginx/conf.d]# mkdir -p /app/code/mi/
[root@web01 /etc/nginx/conf.d]# echo mi.oldboylinux.cn >/app/code/mi/index.html
[root@web01 /etc/nginx/conf.d]#
[root@web01 /etc/nginx/conf.d]# curl -H Host:mi.oldboylinux.cn http:10.0.0.7:8888/
curl: (7) Failed connect to 10.0.0.7:8888; Connection refused
[root@web01 /etc/nginx/conf.d]# 
[root@web01 /etc/nginx/conf.d]# curl -H
Host:mi.oldboylinux.cn http:172.16.1.7:8888/ mi.oldboylinux.cn
[root@web01 /etc/nginx/conf.d]# cat mi.oldboylinux.cn.conf
server {
 listen 172.16.1.7:8888;
 server_name mi.oldboylinux.cn;
 root /app/code/mi;
 location / {
   index index.html;
 }
}

image

1.3.Ngx日志

3.1.概述

image

3.2.错误日志

  • 指定错误日志的位置和错误级别(日志级别).

image

image

  • 生产建议
  • 案例03:给每个虚拟主机指定自己独立的错误日志
[root@myvps /etc/nginx/conf.d]# cat cxk.oldboy.cn.conf 
server{
  listen 80;
  server_name cxk.oldboy.cn;
  error_log /var/log/nginx/cxk.oldboylinux.cn-error.log notice;
  root /app/code/cxk;		
  location / {
    index index.html;
  }
}
[root@myvps /etc/nginx/conf.d]# 
需要把nginx.conf里面的error_log注释

3.3.访问日志

  • 辅助我们进行分析,网站访问量,ip,pv

image

image

更多ngx内置变量:http:nginx.org/en/docs/varindex.html

access_log指定日志,使用对应格式

image

  • 生产建议 案例04:给每个虚拟主机指定自己独立的访问日志

image

[root@myvps /etc/nginx/conf.d]# cat cxk.oldboy.cn.conf 
server{
  listen 80;
  server_name cxk.oldboy.cn;
  error_log /var/log/nginx/cxk.oldboylinux.cn-error.log notice;
  access_log /var/log/nginx/cxk.oldboylinux.cn-access.log main;
  root /app/code/cxk;
  location / {
    index index.html;
  }
}
[root@myvps /etc/nginx/conf.d]# 

image

[root@web01 /etc/nginx/conf.d]# cat cxk.oldboylinux.cn.conf
server {
 listen 80;
 server_name cxk.oldboylinux.cn;
 error_log /var/log/nginx/cxk.oldboyliinux.cnerror.log notice;
 access_log /var/log/nginx/cxk.oldboylinux.cnaccess.log main gzip buffer=32k  flush=10s ;
 root /app/code/cxk;
 location / {
   index index.html;
 }
}

1.4.Location规则

4.1.location概述

  • ngx的location规则:
    • 在ngx用于匹配用户请求中的uri.ngx对用户请求中的uri进行判断.
    • 如果用户请求的uri是xxxx,则做xxxx.

image

4.2.location案例05: 搭建大型直播购物网站

域名:buy.oldboylinux.cn
站点目录:/app/code/buy/ 首页文件index.html  
后台管理页面:/app/code/buy/admin/index.html
要求后台只能内网访问:172.16.1.0/24网段.
  • 进行配置
[root@myvps /etc/nginx/conf.d]# cat buy.oldboylinux.cn.conf 
server {
  listen 80;
  server_name buy.oldboylinux.cn;
  root /app/code/buy;
  location / {
    index index.html;

  #buy.oldboylinux.cn/admin/
  #uri: /admin/
 location /admin/ {
   #准许172.16.1.0/24网段访问
   allow  172.16.1.0/24;
   #拒绝所有
   deny all;
  }
 }
}
[root@myvps /etc/nginx/conf.d]# 

  • 进行测试
#环境准备
mkdir -p /app/code/buy/admin/
echo "buy.oldboylinux.cn site" >/app/code/buy/index.html
echo "admin dangerous buy.oldboylinux.cn" >/app/code/buy/admin/index.html
#测试结果
curl -H Host:buy.oldboylinux.cn http:10.0.0.200/admin/
curl -H Host:buy.oldboylinux.cn http:172.16.1.7/admin/

image

  • 加了之后

image

  • 小结
    • location 匹配uri.
    • location /admin/ {}
    • allow和deny
    • allow 准许指定的ip,网段进行访问.
    • deny 拒绝ip,网段,all;
    • 先allow 再deny

4.3.location案例06

  • 案例06:搭建bird小鸟飞飞网站,给网站加速,设置缓存,网站中html,js,css结尾的文件缓存1天,图片缓存1小时.

  • 浏览器缓存.

  • 基本配置浏览器访问并没有缓存

  • 设置浏览器缓存功能

[root@myvps /etc/nginx/conf.d]# cat cxk.oldboy.cn.conf 
server{
  listen 80;
  server_name cxk.oldboy.cn;
  error_log /var/log/nginx/cxk.oldboylinux.cn-error.log notice;
  access_log /var/log/nginx/cxk.oldboylinux.cn-access.log main gzip buffer=32k  flush=10s;   root /app/code/cxk;
  location / {
    index index.html;
  }
  #uri包含 .html或.js或.css 缓存1天
  location ~* \.(html|js|css)$ {
    expires max;
    #expires 1d;
 }
  #uri包含 .jpg 或 .jpeg 或 .png 或 .gif 或 .bmp
  location ~* \.(jpg|jpeg|png|gif|bmp)$ {
    expires 1h;
 }
}
[root@myvps /etc/nginx/conf.d]# 

posted @ 2026-09-22 10:03  殇ベ墨~  阅读(5)  评论(0)    收藏  举报