运维教程WEB集群之三Nginx高清下载站案例
【摘要】 WEB集群之Nginx技术目标理解常见的WEB服务理解Nginx的作用掌握nginx常见的配置文件搭建web站点ngx处理用户请求流程ngx常用功能与模块一、WEB服务WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站. WEB中间件: 等同于WEB服务 中间件:范围更加广泛,指的负载均衡之后的服务.
技术目标
-
理解常见的WEB服务
-
掌握使用Nginx搭建下载站点
-
掌握nginx常见的配置文件
-
1.搭建要求
-
浏览器打开后,显示目录结构.
xxx.mp4 时间 大小
xxx.mp4 ... ...
-
增加svip功能。
-
增加统计功能,统计nginx服务的状态,访问情况。
2.基本要求
域名:v.cn
站点目录:/app/code/v/
自动索引功能(列表站点目录的内容),首页文件不存在
autoindex模块 |
---|
autoindex on:开启目录索引功能(显示站点目录下的文件的列表,首页不存在) |
autoindex_localtime on: 显示本地时间 |
autoindex_exact_size off:是否显示精确的文件的大小,off表示以人类可读形式显示大小 |
[root@web01 /etc/nginx/conf.d]# cat v.cn.conf
server{
listen 80;
server_name v.cn;
root /app/code/video;
error_log /var/log/nginx/v.cn-error.log notice;
access_log /var/log/nginx/v.cn-access.log main;
charset utf8;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
location / {
index index.html;
}
}
[root@web01 ~]# ll /app/code/video/
#在下面创建china,jp,目录,在下面创建电影
mkdir {china,jp,india}
touch china/YX{01..05}.avi
3.增加vip认证功能
增加一个svip目录,里面创建文件;vip:very inportant person;svip:super;
增加认证功能(用户名和密码)
auth_basic模块
[root@web01 /etc/nginx/conf.d]# cat v.cn.conf
server{
listen 80;
server_name v.cn;
root /app/code/video;
error_log /var/log/nginx/v.cn-error.log notice;
access_log /var/log/nginx/v.cn-access.log main;
charset utf8;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
location / {
index index.html;
}
location /vip/ {
#输出提示,根据不同的浏览器,可能不显示
auth_basic "请输入密码:";
#指定用户名,密码文件
auth_basic_user_file /etc/nginx/user;
}
}
[root@web01 ~]# yum install -y httpd-tools
#-b 增加用户 #-c 创建文件
[root@web01 ~]# htpasswd -bc /etc/nginx/user admin admin
[root@web01 ~]# chmod 600 /etc/nginx/user
[root@web01 ~]# chown nginx.nginx /etc/nginx/user
[root@web01 ~]# mkdir /app/code/v/vip/
[root@web01 ~]# touch /app/code/v/vip/vip{01..10}.mp4
#点击vip目录就需要密码了,密码会进行缓存,下次就不会要输入了
*htpasswd是一个apache的内置工具,其生成的文件称之为htpasswd文件。htpasswd文件本身一个密码本,或者类似于数据库一样,用来存储一些密码(凭证)信息。
-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。
4. 增加统计功能
#stub_status模块/指令,显示nginx服务的状态,用户访问的状态.
[root@web01 ~]# cat /etc/nginx/conf.d/v.cn.conf
server{
listen 80;
server_name v.cn;
root /app/code/v;
error_log /var/log/nginx/v.cn-error.log notice;
access_log /var/log/nginx/v.cn-access.log main;
charset utf8;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
location / {
index index.html;
}
location /vip/ {
auth_basic "请输入密码:";
auth_basic_user_file /etc/nginx/user;
}
location /status/ {
stub_status;
}
}
#在浏览器进行访问,后面增加/status/
#-----------http://v.cn/status/
Active connections: 1
server accepts handled requests
64 64 397
Reading: 0 Writing: 1 Waiting: 0
nginx状态模块中的指标说明 | 说明 | |
---|---|---|
Active connections | 当前已经建立的连接数和等待数量 | 体现:nginx并发 |
server accepts | 已经接收到客户端的连接总数 | |
handled | 服务端已经处理的连接 | |
requests | 客户端发出请求的总数 | |
reading | 正在读取的请求头连接数量 | |
writing | 正在进行的响应的连接数量 | |
waiting | 排队数量 |
ab 压力测试功能
ab -n 9999999 -c 3 -H Host:v.cn http:10.0.0.7/
2.1 *模块小结*
视频网站项目中我们接触到了一些ngx的模块与指令,下面汇总了一下.
*模块* | *模块中的核心指令* | 重要程度 |
---|---|---|
目录索引模块 | autoindex on; | ❤ |
认证功能模块 | auth_basic_user_file; htpasswd指令 | ❤ |
访问控制模块 | allow,deny | ❤❤❤ |
用于监控ngx连接情况, stub_status | ❤❤ | |
状态模块 | ❤❤ | |
❤ | ||
ngx核心模块 | root,location,error_log,server_name,listen | ❤❤❤❤❤ |
ngx日志模 | access_log,log_format main | ❤❤ |
块 | ❤❤ |
总结
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)