#配合限制并发数使用
limit_conn_zone $binary_remote_addr zone=addr:10m;
#limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
#root /usr/local/tomcat/webapps/ROOT;
index index.php index.html index.htm;
}
#限制并发数
location /download/{
limit_conn addr 1;#此处的并发数为1,
limit_rate 50k; #带宽为50k
limit_req zone=one burst=5;#最大连接数为5
}
#测试:
[root@foundation44 8--4]# ab -c1 -n 10 http://172.25.44.6/download/vim.jpg
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.25.44.6 (be patient).....done
Server Software: nginx
Server Hostname: 172.25.44.6
Server Port: 80
Document Path: /download/vim.jpg
Document Length: 453575 bytes
Concurrency Level: 1
Time taken for tests: 0.012 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 4538790 bytes
HTML transferred: 4535750 bytes
Requests per second: 819.34 [#/sec] (mean)
Time per request: 1.220 [ms] (mean)
Time per request: 1.220 [ms] (mean, across all concurrent requests)
Transfer rate: 363163.63 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 0
Processing: 1 1 0.4 1 2
Waiting: 0 0 0.1 0 0
Total: 1 1 0.4 1 2
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 2
95% 2
98% 2
99% 2
100% 2 (longest request)
[root@server6 ~]# cat /usr/local/lnmp/nginx/logs/access.log
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
172.25.44.250 - - [08/Aug/2018:03:10:59 +0800] "GET /download/vim.jpg HTTP/1.0" 200 453575 "-" "ApacheBench/2.3"
limit_conn_zone $binary_remote_addr zone=addr:10m;
#测试:
[root@foundation44 8--4]# ab -c10 -n 10 http://172.25.44.6/download/vim.jpg
[root@server6 nginx]# cat logs/access.log
[root@server6 nginx]# vim conf/nginx.conf
72 location /admin/ {
73 allow 172.25.44.250;
74 deny all;
75 }
[root@server6 nginx]# cd html/
[root@server6 html]# mkdir admin
[root@server6 admin]# vim index.html
admin
[root@server6 admin]# nginx -s reload
#测试(真机浏览器172.25.44.250):
#在其他主机上:
[root@server6 nginx]# cd html/
[root@server6 html]# ls
50x.html bbs example.php index.php readme
admin download index.html memcache.php utility
[root@server6 html]# cd download/
[root@server6 download]# ls
vim.jpg
[root@server6 download]# cp vim.jpg ..
[root@server6 download]# cd ..
[root@server6 html]# ls
50x.html bbs example.php index.php readme vim.jpg
admin download index.html memcache.php utility
[root@server6 nginx]# vim conf/nginx.conf
78 #location ~ .*\.(gif|jpg|png)$ {
79 # expires 30d;
80 #}
[root@server6 conf]# nginx -s reload
#测试:
刚好30天
[root@foundation44 8--4]# curl -I 172.25.44.6/vim.jpg
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 07 Aug 2018 21:37:39 GMT #8月
Content-Type: image/jpeg
Content-Length: 453575
Last-Modified: Tue, 07 Aug 2018 21:37:21 GMT
Connection: keep-alive
ETag: "5b6a1111-6ebc7"
Expires: Thu, 06 Sep 2018 21:37:39 GMT #9月
Cache-Control: max-age=2592000
Accept-Ranges: bytes
[root@server6 nginx]# vim conf/nginx.conf
52 server {
53 listen 80;
54 server_name _;
55 return 500; #不管谁来访问,都返回500这个报错
56 }
[root@server6 conf]# nginx -s reload
#测试:
[root@server6 nginx]# vim conf/nginx.conf
server {
listen 80;
server_name _;
#return 500; #不管谁来访问,都返回500这个报错
rewrite ^(.*) http://www.westos.org permanent; #不管谁来访问,都重定向到www.westos.org上
出现这个报错的原因是你没有在www.westos.org域名里写东西
[root@server6 nginx]# vim conf/nginx.conf
153 server{
154 listen 80;
155 server_name www.westos.org westos.org bbs.westos.org;
156
157 #rewrite ^(.*)$ https://www.westos.org$1 permanent;
158 #rewrite ^/bbs$ http://bbs.westos.org permanent;
159 #rewrite ^/bbs/(.*)$ http://bbs.westos.org/$1 permanent;
160 if ($host = "bbs.westos.org"){
161 rewrite ^(.*)$ https://www.westos.org/bbs/$1 permanent;
162 }
163 location /{
164 root /www1;
165 index index.html;
166 }
167 }
[root@server6 nginx]# cd html/
[root@server6 html]# cd /www1
[root@server6 www1]# ls
bbs index.html
[root@server6 www1]# vim index.html
www.westos.org 你好
[root@server6 nginx]# nginx -s reload
153 server{
154 listen 80;
155 server_name www.westos.org westos.org bbs.westos.org;
156
157 #rewrite ^(.*)$ https://www.westos.org$1 permanent;
158 #rewrite ^/bbs$ http://bbs.westos.org permanent;
159 #rewrite ^/bbs/(.*)$ http://bbs.westos.org/$1 permanent;
160 if ($host = "bbs.westos.org"){
161 rewrite ^(.*)$ https://www.westos.org/bbs/$1 permanent;
162 }
163 location /{
164 root /www1;
165 index index.html;
166 }
167 }
#测试:(不识别汉字),但是apache默认识别汉字,这是不同之处
[root@server6 www1]# vim /usr/local/lnmp/nginx/conf/nginx.conf
158 charset utf-8 #这行代码是让网页自动解析汉字
[root@server6 www1]# nginx -s reload
[root@server6 nginx]# date
2018年 08月 08日 星期三 06:43:02 CST
[root@server6 nginx]# date -d -1day
2018年 08月 07日 星期二 06:43:34 CST
[root@server6 nginx]# date +%F -d -1day
2018-08-07
#编写脚本,使得每天00:00备份前一天的数据在日志里
[root@server6 nginx]# cd /opt/
[root@server6 opt]# vim nginx_log.sh
#!/bin/bash
cd /usr/local/lnmp/nginx/logs && mv access.log access.log_$(date +%F -d -1day)
/usr/local/lnmp/nginx/sbin/nginx -s reload
[root@server6 opt]# crontab -e
00 00 * * * /opt/nginx_log.sh
[root@server6 opt]# chmod +x /opt/nginx_log.sh
[root@server6 opt]# cd /usr/local/lnmp/nginx/logs/
[root@server6 logs]# cat access.log
[root@server6 logs]# ls #带日期的日志文件生成
access.log access.log_2018-08-07 error.log nginx.pid
盗链:
[root@server6 www2]# cd /usr/local/lnmp/nginx/conf/
[root@server6 conf]# vim nginx.conf
141 server {
142
143 listen 80;
144 server_name www.westos.org westos.org ;
145
146 charset utf-8;
155 location /{
156 root /www1;
157 index index.html;
158 }
159 }
[root@server1 ~]# vim /var/www/html/index.html
<html>
<body>
<img src="http://www.westos.org/images/redhat.jpg">
</body>
</html>
location ~ \.(gif|jpg|png)$ {
valid_referers www.westos.org;
if ($invalid_referer){
return 403;
}
}
[root@server6 conf]# vim nginx.conf
167 server {
168 listen 80;
169 server_name bbs.westos.org;
170
171 location /{
172 root /www2;
173 index index.html;
174 }
175
176 }
[root@server6 conf]# nginx -s reload
[root@server6 www2]# ls
daolian.jpg index.html