nginx配置管理
自动索引
目的:下载方便
location / {
autoindex on;
}
vim /usr/local/nginx/conf/nginx.conf
在location /download 加入自动索引功能
nginx -t #检测语法
nginx -s reload #刷新服务
测试访问:
http://172.25.21.1/download/
Nginx expire缓存配置
缓存可以降低网站带宽,加速用户访问
location ~ .*\.(gif|jpg|png)$ {
expires 365d;
root html;##这个html是我的默认发布目录
}
vim /usr/local/nginx/conf/nginx.conf
直接在http的大括号里面添加
nginx -t #检测语法
nginx -s reload #刷新服务
测试访问:
curl -I http://172.25.21.1/download/vim.jpg
返回码200,表示成功, expires显示到明年9.5到期
日志轮询
写一个shell脚本 进入到nginx的日志目录,修改access.log 名字为access_$(date +%F -d -1day).log
date +%F -d -1day 代表前一天
[root@server1 nginx]
cd /usr/local/nginx/logs && mv access.log access_$(date +%F -d -1day).log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`#重新生成新的日志文件
测试: 运行脚本,进入到日志目录,可以看到旧日志被保存,产生新日志 禁用不必要的日志记录,以节省磁盘IO的消耗
location ~ .*\.(js|jpg|jpeg|png|css|bmp|gif)$ {
access_log off;##禁用日志
}
表示在访问gif、jpg、png时,不会产生日志
nginx -t #检测语法
nginx -s reload #刷新服务
可以查看目前大小为0 使用其他主机来访问一下:
curl -I http://172.25.21.1/download/vim.jpg
再次查看文件大小,没有变化,表示没有日志文件生成
访问限制
站点目录和文件的限制
location ~ ^/images/.*\.(sh|php)$ {
deny all;
}
ip限制
location / {
deny 172.25.0.10;
allow 172.25.0.0/24;
deny all;
}
if ($remote_addr = 172.25.0.254) {
return 403;
}
nginx重定向
防止域名恶意解析到服务器IP
server {
listen 80;
server_name localhost;
return 500;
}
访问localhost时,显示500错误
nginx -t #检测语法
nginx -s reload #刷新服务
测试访问:
curl -I http://localhost
curl -I http://172.25.21.1
重定向
server {
listen 80;
server_name localhost;
rewrite ^(.*) http://www.westos.org permanent;
}
写入重定向
nginx -t #检测语法
nginx -s reload #刷新服务
访问测试:
可以看到,已经重定向到www.808bass.org 浏览器测试:172.25.21.1 重定向到www.808bass.org
80端口重定向443端口
server {
listen 80;
server_name www.808bass.org;
rewrite ^/(.*)$ https://www.808bass.org/$1 permanent;
}
修改配置文件 注释掉负载均衡
我们现在需要创建证书和key
进入目录,生成证书和key,将证书和key移动到nginx的配置文件目录
cd /etc/pki/tls/certs/
make cert.pem
mv cert.pem /usr/local/nginx/conf/
进入到nginx配置文件目录cd /usr/local/nginx
nginx -t #检测语法
nginx -s reload #刷新服务
测试访问:
curl -I www.808bass.org
重定向到了 https://www.808bass.org/
www.808bass.org/bbs 重定向bbs.808bass.org
rewrite ^/bbs$ http://bbs.808bass.org permanent;##代表的是www.808bass.org/bbs重定向到bbs.808bass.org
rewrite ^/bbs/(.*)$ http://bbs.808bass.org/$1 permanent;
第二天语句的使用范围更广 举例: www.808bass.org/bbs/123 重定向到bbs.808bass.org/123 www.808bass.org/bbs/linux 重定向到bbs.808bass.org/linux
修改配置文件
nginx -t #检测语法
nginx -s reload #刷新服务
访问测试:
加入地址解析
curl -I www.808bass.org/bbs
可以看到重定向成功
bbs.808bass.org 重定向www.808bass.org/bbs
if ($host = "bbs.808bass.org"){
rewrite ^/(.*)$ http://www.808bass.org/bbs/$1 permanent;
}
nginx -t #检测语法
nginx -s reload #刷新服务
加入地址解析
nginx防盗链
先在server2的发布目录创建一个盗链文件
<html>
<body>
<img src="http://172.25.21.1/download/vim.jpg">
</body>
</html>
测试访问:
http://172.25.21.2/test.html
显示盗链成功 然后我们需要在server1中设置防盗链
nginx -t #检测语法
nginx -s reload #刷新服务
此时已经无法通过盗链获取图片
修改配置文件
nginx -t #检测语法
nginx -s reload #刷新服务
访问测试:
http://172.25.21.2/test.html
|