Ngx核心功能与必会模块
Ngx核心功能与必会模块
1.WEB集群-Ngx核心功能详解
1.1.Ngx处理用户请求流程
1案例与思考
-
案例01: 思考之前搭建的cxk.oldboylinux.cn网站,使用域名访问或ip访问都是没有问题的.如果把配置文件名
game.cxk.oldboylinux.cn.conf使用域名或ip访问或怎么样?
-
结果:
- 域名访问网站没有任何问题.
- 使用ip访问则显示静态页面,另外一个网站了.
2详细原理


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

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;
}
}
- 测试

本地测试域名的小技巧(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;
}
}

1.3.Ngx日志
3.1.概述

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


- 生产建议
- 案例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


更多ngx内置变量:http:nginx.org/en/docs/varindex.html
access_log指定日志,使用对应格式

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

[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]#

[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.

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/

- 加了之后

- 小结
- 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]#

浙公网安备 33010602011771号