一、利用nginx服务搭建网站文件共享服务器
1、编写配置文件
nginx模块功能:ngx_http_autoindex_module
location / {
autoindex on;
}
Syntax: autoindex on | off;
Default:
autoindex off;
Context: http, server, location
server {
listen 80;
server_name www.oldboy.top;
location / {
root /html/www;
index oldboy.html;
autoindex on; --开启nginx站点目录索引功能
}
PS:1.需要将首页文件删除
2.mime.types媒体资源类型文件作用
文件中又得扩展名信息资源,进行访问时会直接看到数据信息
文件中没有到扩展名信息资源,进行访问时会直接下载资源
网站页面目录数据,中文出现乱码,如何解决:
location / {
root /html/www;
index oldboy.html;
autoindex on;
charset utf-8; --修改目录结构中出现的中文乱码
}
二、利用nginx服务搭建配置文件别名功能
1、编写配置文件
server_name www.oldboy.com old.com;
2、配置好DNS解析信息
作用:
01:编写网站访问测试
02:定位要访问的网站服务器
三、利用nginx状态模块功能对网站进行监控
状态模块: ngx_http_stub_status_module
location = /basic_status {
stub_status;
}
1、编写配置文件
server {
listen 80;
server_name state.oldboy.top;
stub_status;
}
2、重启nginx服务,并且编写解析文件
systemctl reload nginx
10.0.0.7 status.oldboy.com
Active connections: 激活的连接数信息 4000用户 3500
accepts: 接收的连接数汇总(综合) TCP
handled: 处理的连接数汇总(综合) TCP
requests: 总计的请求数量 HTTP协议请求
Reading: nginx服务读取请求报文的数量 100人点餐
Writing: nginx服务响应报文信息数量 100人响应
Waiting: nginx队列机制,要处理(读取或者响应保存进行保存) 监控
四、nginx日志功能配置
访问日志:/var/log/nginx/access.log ngx_http_log_module
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
$remote_addr 显示用户访问源IP地址信息
$remote_user 显示认证的用户名信息
[$time_local] 显示访问网站时间
"$request" 请求报文的请求行信息
$status 用户访问网站状态码信息
$body_bytes_sent 显示响应的数据尺寸信息
$http_referer 记录调用网站资源的连接地址信息(防止用户盗链)
$http_user_agent 记录用户使用什么客户端软件进行访问页面的 (谷歌 火狐 IE 安卓 iphone)
$http_x_forwarded_for ??? 负载均衡
错误日志:/var/log/nginx/error.log --- core functionality
Syntax: error_log file [level]; 指定错误日志路径以及错误日志记录的级别
Default: error_log log/error.log error;
Context: main, http, mail, stream, server, location
error_log /var/log/nginx/error.log warn;
错误级别:
debug :调试级别: 服务运行的状态信息和错误信息详细显示 信息越多
info :信息级别: 只显示重要的运行信息和错误信息
notice :通知级别: 更加重要的的信息进行通知说明
warn :警告级别: 可能出现了一些错误信息,但不影响服务运行
error :错误级别: 服务运行已经出现了错误,需要进行纠正 推荐选择
crit :严重级别:必须进行修改调整
alert :严重警告级别:即警告,而且必须进行错误修改
emerg :灾难级别:服务已经不能正常运行 信息越少
PS: 日志文件信息需要做切割处理
五、nginx服务location作用说明
模块说明: ngx_http_core_module
location进行匹配(uri)
错误页面优雅显示
location /oldboy {
root /html/www;
error_page 404 /oldboy.jpg;
}
location /oldgirl {
root /html/www;
error_page 404 /oldgirl.jpg;
}
location详细配置:
Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default: —
Context: server, location
location = / { --- 精确匹配 优先级01 最高
[ configuration A ]
}
location / { --- 默认匹配 优先级04 最低
[ configuration B ]
}
location /documents/ { --- 按照目录进行匹配 优先级03
[ configuration C ]
}
location ^~ /images/ { --- 优先匹配/不识别uri信息中符号信息 优先级02
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ { --- 不区分大小写进行匹配 优先级03
[ configuration E ]
}
6) 利用nginx实现页面跳转功能
利用rewrite模块是跳转功能: http_rewrite_module
Syntax: rewrite regex replacement [flag]; rewite 匹配的正则信息 替换成什么信息
Default: —
Context: server, location, if
rewrite www.oldboy.com/(.*) http://www.oldboy.com/$1 permanent; 重写规则配置
^/ (.*)
baidu.com / oldboy.html 跳转方式
www.baidu.com/oldboy.html
跳转方式:
永久跳转: permanent 301 会将跳转信息进项缓存
临时跳转: redirect 302 不会缓存跳转信息
出现无限跳转如何解决:
第一种方法: 利用不同server区块配置打破循环
server {
server_name oldboy.com;
rewrite ^/(.*) http://www.oldboy.com/$1 permanent;
}
第二种方法: 利用if判断实现打破循环
if ($host ~* "^oldboy.com$") {
rewrite ^/(.*) http://www.oldboy.com/$1 permanent;
}