nginx账户认证功能
由ngx_http_auth_basic_module 模块提供此功能
建立非交互用户认证
[root@Nginx ~]# htpasswd -cmb /usr/local/nginx/conf/.htpasswd admin admin
创建web测试静态文本
mkdir /webdata/nginx/example.org/example/login
echo login > /webdata/nginx/example.org/example/login/index.html
编辑nginx子配置文件
子配置文件启用需要在主配置文件中完成include的指向
[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name example.example.org;
location /login {
root /webdata/nginx/example.org/example;
index index.html;
auth_basic "login password";
auth_basic_user_file "/usr/local/nginx/conf/.htpasswd";
}
}
自定义错误页面
编辑配置文件
listen 80;
server_name www.timinglee.org;
error_page 500 502 503 504 /error.html;
location = /error.html {
root /data/nginx/html;
}
重启nginx并访问不存在的页面测试
nginx -s reload
自定义错误页面
mkdir /webdata/nginx/example/example/errors -p
echo error page > /webdata/nginx/example/example/errors/40x.html
vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name example.example.org;
error_page 404 /40x.html
location = /40x.html {
root /webdata/nginx/example/example/errors;
}
}
测试
curl example.example.org/haha
自定义错误日志
示例
mkdir "/var/log/nginx" -pvim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name example.example.org;
error_page 404 /40x.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location = /40x.html {
root /webdata/nginx/example/example/errors;
}
}
#重启nginx并访问不存在的页面进行测试并验证是在指定目录生成新的日志文件
检测文件是否存在
try_files会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如
果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一
个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内
部500错误。
编辑配置实现不存在页面跳转至default.html
vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name example.example.org;
root /webdata/nginx/example.org/example;
error_page 404 /40x.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
try_files $uri $uri.html $uri/index.html /error/default.html;
location = /40x.html {
root /webdata/nginx/example/example/errors;
}
}
作为下载服务器配置
ngx_http_autoindex_module 模块处理以斜杠字符 “/” 结尾的请求,并生成目录列表,可以做为下载服务配置使用
autoindex on | off; #自动文件索引功能,默为off
autoindex_exact_size on | off; #计算文件确切大小(单位bytes),off 显示大概大小(单位K、M),默认on
autoindex_localtime on | off ; #显示本机时间而非GMT(格林威治)时间,默认off
autoindex_format html | xml | json | jsonp; #显示索引的页面文件风格,默认html
limit_rate rate; #限制响应客户端传输速率(除GET和HEAD以外的所有方法),单位B/s,bytes/second, #默认值0,表示无限制,此指令由ngx_http_core_module提供
set $limit_rate 4k; #也可以通变量限速,单位B/s,同时设置,此项优级高.
配置示例
mkdir -p /webdata/nginx/example.org/example/download
cp /root/anaconda-ks.cfg /webdata/nginx/example.org/example/download#复制测试文件
vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name example.example.org;
root /webdata/nginx/example.org/example;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
try_files $uri $uri.html $uri/index.html /error/default.html;
location = /40x.html {
root /webdata/nginx/example/example/errors;
}
location /download {
autoindex on; #自动索引功能
autoindex_exact_size on; #计算文件确切大小(单位bytes),此为默认值,off只显示
大概大小(单位kb、mb、gb)
autoindex_localtime on; #on表示显示本机时间而非GMT(格林威治)时间,默为为off显
示GMT时间
limit_rate 1024k; #限速,默认不限速 }
}
测试示例