运维SRE-20 网站Web集群-Ngx基础功能

2.6 Ngx目录结构

[root@web01 ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.24.0
/usr/share/doc/nginx-1.24.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
Nginx核心目录和文件
/etc/nginx/Nginx各种配置的目录
/etc/nginx/nginx.confNginx主配置文件
/etc/nginx/conf.d/*.confNginx子配置文件
/usr/sbin/nginxNginx管理命令.目前Yum安装的时候一般用nginx命令作配置文件语法检查
/usr/share/nginx/html/Nginx默认的站目录(网站的根目录),存放代码的地方
/var/log/nginx/这个目录,存放nginx的日志:访问日志和错误日志
Nginx其他的目录和文件-了解
/etc/logrotate.d/nginx对nginx的日志进行切割.防止日志过大。
/etc/nginx/fastcgi_paramsnginx与其他服务连接使用的变量文件(配置文件):fastcgi:nginx+php
/etc/nginx/scgi_params很少用
/etc/nginx/uwsgi_paramsnginx+python
/etc/nginx/mime.types媒体类型: http协议中的文件类型.
/usr/lib/systemd/system/nginx.service使用systemctl命令调用的nginx的配置文件.

2.7 Ngx主配置文件:nginx.conf

高清无码图

  • 一般内容
  • 每个指令都要以;分号结尾
    1))nginx.conf详解
    在这里插入图片描述

2)子配置文件
在这里插入图片描述

3)修改网站配置文件并访问

cat default.conf 
server {
  listen 80;
  server_name www.hbinzsre.cn;
  location / {
    root /usr/share/nginx/html;
    index index.html;
 }
}

nginx -t
systemctl reload nginx

配置本地hosts解析之后浏览器输入:http://www.hbinzsre.cn/
在这里插入图片描述

2.8 搭建人生第一个网站

1)概述与准备

规划详细说明
域名www.hbinzsre.cn
端口80
站点目录/app/code/www
首页文件/app/code/www/index.html
2)搭建与测试
  • ngx子配置文件
# 1.准备配置文件
cat www.hbinzsre.cn.conf 
server {
  listen 80;
  server_name www.hbinzsre.cn;
  location / {
    root /app/code/www;
    index index.html;
}
}

# 2.检查语法与重启
nginx -t
systemctl reload nginx

# 3.创建目录和首页文件
mkdir -p /app/code/www
echo hello hbinzsre hurry up! > /app/code/www/index.html

# 4.linux命令行访问网站
curl -v -H Host:www.hbinzsre.cn 10.0.0.7

在这里插入图片描述

3)部署代码(代码上线)

nginx默认只能处理静态内容(图片,视频,html,css,js)
ll
drwxr-xr-x 3 root root  98 11月 16 2021 bird
-rw-r--r-- 1 root root  25 11月 14 00:24 index.html
drwxr-xr-x 4 root root 235 11月 16 2021 mine
drwxr-xr-x 6 root root 107 11月 14 01:11 xbw

www.hbinzsre.cn/           -->读的是站点目录下的index.html
www.hbinzsre.cn/bird         -->读的是站点目录bird/index.html下的index.html

uri:/bird/		站点目录下面的bird目录,访问首页文件
其他说明
html,css,js  

html 文字内容,带表格被各种web中间件识别. 用于被客户端浏览器解析与运行.服务端只负责发送.
css  样式(控制网站排版).衣服/皮肤.
js   (javascript) 动态效果.实现特效.

html了解

2.9 Nginx初使用-核心配置与功能

  • 多个虚拟主机(网站)
  • Ngx处理用户请求流程
  • Nginx日志
    1)Nginx虚拟主机功能
虚拟主机,nginx就是一个server{}区域(端口,域名,站点目录),一个网站
在一个nginx中一般都会有多个虚拟主机(端口,不同的域名,不同的站点目录)
配置多个虚拟主机的方式含义应用场景
基于域名的虚拟主机不同的域名访问不同的虚拟主机(网站)最广泛使用的
基于端口的虚拟主机不同的端口访问不同的虚拟主机(网站)一般因为安全修改下端口,不想让普通用户访问
基于ip的虚拟主机不同的ip访问不同的虚拟主机(网站)用户必须通过指定的ip访问网站(控制只能通过内网访问)
a)基于域名的虚拟主机
域名站点目录端口
---
www.hbinzsre.cn/app/code/www/80
www.hbinzsre1.cn/app/code/game/80
www.hbinzsre2.cn/app/code/video/80
1.准备配置文件
/etc/nginx/conf.d/www.hbinzsre.cn|www.hbinzsre1.cn|www.hbinzsre.cn .conf  
www.hbinzsre1.cn.conf
server {
  listen 80;
  server_name www.hbinzsre1.cn;
  location / {
    root /app/code/game;
	index index.html;
  }
}

2.检查语法与重加载
nginx -t
systemctl reload nginx

3.准备目录
mkdir -p /app/code/{game,video}

4.创建首页文件
for name in game video
do
  echo $name.hbinzsre.cn >/app/code/$name/index.html
done

5.测试
[root@web01 /etc/nginx/conf.d]# pwd
/etc/nginx/conf.d
[root@web01 /etc/nginx/conf.d]# curl -H Host:www.hbinzsre.cn 10.0.0.7
hello hbinzsre hurry up!
[root@web01 /etc/nginx/conf.d]# curl -H Host:www.hbinzsre1.cn 10.0.0.7
hello hbinz!
[root@web01 /etc/nginx/conf.d]# curl -H Host:www.hbinzsre2.cn 10.0.0.7
hello hbinz!

修改了windows修改hosts文件: 10.0.0.7 www.hbinzsre.cn www.hbinzsre1.cn www.hbinzsre2.cn

b)基于端口的虚拟主机

用户访问www.hbinzsre.cn 9100端口才可以访问这个网站
server {
  listen 9100;
  server_name www.hbinzsre.cn;
  location / {
    root /app/code/www;
	index index.html;
  }
}
nginx -t
systemctl reload nginx

ss -lntup|grep nginx
tcp    LISTEN     0      128       *:9100                  *:*                   users:(("nginx",pid=7530,fd=10),("nginx",pid=3547,fd=10))
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=7530,fd=6),("nginx",pid=3547,fd=6))

在这里插入图片描述

c)基于ip的虚拟主机

网站通过指定的ip访问172.16.1.7并且端口是8848
server {
  listen 172.16.1.7:8848;
  server_name www.hbinzsre1.cn;
  location / {
    root /app/code/game;
	index index.html;
  }
}

ss -lntup|grep nginx
tcp    LISTEN     0      128       *:9100                  *:*                   users:(("nginx",pid=7597,fd=10),("nginx",pid=3547,fd=10))
tcp    LISTEN     0      128    172.16.1.7:8848                  *:*                   users:(("nginx",pid=7597,fd=11),("nginx",pid=3547,fd=11))
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=7597,fd=6),("nginx",pid=3547,fd=6))

在这里插入图片描述

命令行访问
[root@web01 /etc/nginx/conf.d]# curl -H Host:172.16.1.7:8848 http://172.16.1.7:8848
hello hbinz!

d)小结

配置多个虚拟主机的方式含义应用场景
基于域名的虚拟主机不同的域名访问不同的虚拟主机(网站)最广泛使用的
基于端口的虚拟主机不同的端口访问不同的虚拟主机(网站)一般因为安全修改下端口,不想让普通用户访问
基于ip的虚拟主机不同的ip访问不同的虚拟主机(网站)用户必须通过指定的ip访问网站(控制只能通过内网访问)

2)Ngx处理用户请求流程

1.用户访问 game.oldboylinux.cn/lidao.txt 实际访问的是:http://game.oldboylinux.cn/lidao.txt
2.DNS解析得到域名对应ip是10.0.0.7,然后用户与10.0.0.7的80端口建立连接
3.用户发出http请求:
1)http请求中包含客户端信息和目标
2)请求报文GET /lidao.txt  #下载,uri
Host: game.oldboylinux.cn #域名User-Agent:客户浏览器
4.请求到达了nginx:80端口,ngx开始处理请求,是什么类型请求如果是http/https,都在http区域处理
5.http区域处理了下,然后把请求交给后面的多个虚拟主机处理与匹配。如果有匹配上的域名server_name则进入这个域名所在虚拟主机
6.虚拟主机server部分处理根据用户请求的uri进行匹配。符合location /规则(默认规则),根据location / 里面指定的站点目录和首页文件处理。查找站点目录下面指定的文件。/app/code/game/lidao.txt找到后进行响应
7.找出文件后把文件内容给用户进行响应
增加状态码 200 OK
服务器信息:Server:nginx/1.20.2
8.用户得到响应并在浏览器上面解析与显示

在这里插入图片描述

3)ngx故障处理流程

  • 1.核心:根据状态码进行排查
  • 2.200状态码:正常。
  • 3.3xx状态码:正常。需要分析3xx原因,304正常,读取浏览器缓存
  • 4.4xx状态码:错误,大多数客户端错误。
    • 1.常见原因:服务端配置文件导致用户出现4xx. 站点目录。
    • 2.更深入原因:ngx处理流程分析
  • 5.5xx状态码:错误,需要通过nginx错误日志一起分析原因
  • 6.其他类型的故障:ngint -t错误提示
    • 书写
    • 花括号是否成对
  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值