创建nginx用户:
[root@server1 ~]# useradd -M -d /usr/local/nginx -s /sbin/nologin nginx
(创建用户,-M代表步创建家目录,-d指定新用户的主目录,-s /sbin/nologin nginx禁止该用户交互式登录)
[root@server1 ~]# id nginx(查看用户nginx信息)
uid=1001(nginx) gid=1001(nginx) groups=1001(nginx)
nginx设置访问限速
编辑nginx配置文件:
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
2 user nginx nginx;
3 worker_processes auto; #使worker进程自动调节,配置为CPU内核数是最佳配置
4
5 #error_log logs/error.log;
6 #error_log logs/error.log notice;
7 #error_log logs/error.log info;
8
9 #pid logs/nginx.pid;
10
11
12 events {
13 worker_connections 65535;(worker连接数据的限制)
35 limit_conn_zone $binary_remote_addr zone=addr:10m;
48 location /download/ { #/download是资源所在路径)
49 limit_conn addr 1; #限制客户端请求并发为1
50
51 }
在/usr/local/nginx/html路径下创建download目录,目录下放一个图片用来实验测试。
[root@server1 modules]# cd /usr/local/nginx/html/download/
[root@server1 download]# ls
vim.jpg
通过ab命令测试: ab -c 1 -n 10 http://172.25.55.1/download/vim.jpg。用时很短,如下图。没有ab命令,通过 yum provides ab命令差到所需包安装。
限速:
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
35 limit_conn_zone $binary_remote_addr zone=addr:10m;
48 location /download/ {
49 limit_conn addr 1;
50 limit_rate 50k; #限速为50k
51 }
再次测试,时间变长。
设置请求频率
35 limit_conn_zone $binary_remote_addr zone=addr:10m;
36 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
区域名称为one,占用空间大小为10m,平均处理的请求频率不能超过每秒一次
37 server {
38 listen 80;
39 server_name localhost;
40
41 #charset koi8-r;
42
43 #access_log logs/host.access.log main;
44
45 location / {
46 root html;
47 index index.html index.htm;
48 }
49
50 location /download/ {
51 limit_conn addr 1;
52 limit_req zone=one burst=5;
53 }
测试,请求有10次,间隔9秒。
nginx图片设置
[root@server1 ~]# ls
gd-devel-2.0.35-26.el7.x86_64.rpm nginx-1.14.2.tar.gz nginx-1.15.8.tar.gz
nginx-1.14.2 nginx-1.15.8
[root@server1 ~]# yum install gd-devel-2.0.35-26.el7.x86_64.rpm -y
[root@server1 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx/ --with-http_realip_module --with-http_image_filter_module=dynamic
[root@server1 nginx-1.14.2]# make
[root@server1 nginx-1.14.2]# cd objs/
[root@server1 objs]# cp -f nginx /usr/local/nginx/sbin/
[root@server1 objs]# mkdir /usr/local/nginx/modules
[root@server1 objs]# cp ngx_http_image_filter_module.so /usr/local/nginx/modules/
编辑nginx配置文件,修改图片的尺寸:
[root@server1 modules]# vim ../conf/nginx.conf
36 server {
37 listen 80;
38 server_name localhost;
39
40 #charset koi8-r;
41
42 #access_log logs/host.access.log main;
43
44 location / {
45 root html;
46 index index.html index.htm;
47 }
48 location /download/ {
49 image_filter resize 100 200; #修改尺寸
50 }
[root@server1 modules]# cd /usr/local/nginx/html/download/
[root@server1 download]# ls
vim.jpg
[root@server1 modules]# nginx -s reload
测试:图片的尺寸发生改变
nginx的目录浏览功能
为方便访问,可直接访问目录名
[root@server1 download]# vim /usr/local/nginx/conf/nginx.conf
48 location /download/ {
49
50 autoindex on;
51 }
nginx的expires功能
expires有效降低服务器流量,降低网站带宽
[root@server1 download]# vim /usr/local/nginx/conf/nginx.conf
77 location ~.*\.(jpg|png|css|js)?$ {
78 expires 30d;
79 }
测试: