1、基于域名的虚拟主机
在/etc/nginx/conf.d/a.com.conf 里编辑nginx配置文件。
vim /etc/nginx/conf.d/a.com.conf
添加配置内容。
server {
listen 80;
server_name a.com;
location / {
root /usr/share/nginx/html/a.com/;
index index.html;
}
}
新建网站主目录。
mkdir /usr/share/nginx/html/a.com
新建网站主页文件
vim /usr/share/nginx/html/a.com/index.html
主页文件内容可以随便写。
重启nginx服务
systemctl restart nginx
在客户机做好域名解析,后续也可以用的上。
用超管身份打开记事本,再用记事本打开hosts.添加解析.
地址为:C:\Windows\System32\drivers\etc\host
192.168.40.137 a.com
192.168.40.137 b.com
(192,168,40,137 为虚拟机地址)
2、将nginx主页设置成随机页面
创建主页目录。
mkdir /app
创建多个主页。
touch /app/{blue.html,green.html,red.html,yellow.html}
在不同的页面书写不同的内容,例如:
<html>
<head>
<title>green color</title>
</head>
<body style="background-color:green">
<h1>green color!</h1>
</body>
</html>
在/etc/nginx/conf.d/a.com.conf 中继续编辑配置文件。
vim /etc/nginx/conf.d/a.com.conf
添加配置内容
server {
listen 80;
server_name a.com;
location / {
#root /usr/share/nginx/html/a.com/;
#index index.html;
root /app;
random_index on;
}
}
重启nginx服务
systemctl restart nginx
3、将nginx网站中文件下载压缩
我们需要提前把拷贝图片至网站主目录,拷贝tar包至网站主目录,压缩包的后缀使用.html,拷贝文本至文件主目录。
在/etc/nginx/nginx.conf 中编辑配置文件。
vim /etc/nginx/nginx.conf
添加编辑内容
http {
#在http标签中启动该功能
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_static on;
重启nginx服务
systemctl restart nginx
使用域名在浏览器上测试,按Fn+F12键,观察缓存。
压缩包和图片类对象本身已经自带压缩功能。所以压缩比例较小低。
文本类对象在压缩试验中,压缩比例体现优越。
4、nginx流量控制
在/etc/nginx/nginx.conf编辑配置文件
vim /etc/nginx/nginx.conf
添加配置内容
http {
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;
}
在 /etc/nginx/conf.d/a.com.conf编辑配置文件
vim /etc/nginx/conf.d/a.com.conf
添加配置内容
server {
location / {
root /usr/share/nginx/html;
index index.html index.htm;
limit_req zone=req_zone;
}
}
重启nginx 服务
systemctl restart nginx
使用yum 下载测试环境
yum -y install httpd-tools
开始测试
ab -n 100 -c 10 http://a.com/
测试结果
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Benchmarking localhost (be patient).....done
Server Software: nginx/1.12.1
Server Hostname: tianyun.me
Server Port: 80
Document Path: /
Document Length: 671 bytes
Concurrency Level: 10
Time taken for tests: 0.006 seconds
Complete requests: 100
Failed requests: 99 失败的请求
(Connect: 0, Receive: 0, Length: 99, Exceptions: 0)
Write errors: 0
Non-2xx responses: 99 有问题的相应。
Total transferred: 73273 bytes
HTML transferred: 53834 bytes
Requests per second: 16131.63 [#/sec] (mean)
Time per request: 0.620 [ms] (mean)
Time per request: 0.062 [ms] (mean, across all concurrent requests)
Transfer rate: 11543.10 [Kbytes/sec] received
5、基于ip的访问控制
在/etc/nginx/conf.d/a.com.conf 编辑配置文件
vim /etc/nginx/conf.d/a.com.conf
添加配置内容
server {
allow 10.18.45.65;
allow 10.18.45.181;
deny all;
}
重启nginx服务
systemctl restart nginx
6、基于用户的访问控制
下载生成密钥的工具
yum -y install httpd-tools
生成会话密码
htpasswd -cm /etc/nginx/conf.d/passwd user10
htpasswd -m /etc/nginx/conf.d/passwd user20
观察口令文件是否生成
cat /etc/nginx/conf.d/passwd
在/etc/nginx/conf.d/a.com.conf中编辑配置文件
vim /etc/nginx/conf.d/a.com.conf
添加配置内容
server {
找到server{字段,在下一行插入认证字段。
auth_basic "nginx access test!";
auth_basic_user_file /etc/nginx/conf.d/passwd;
}
重启nginx服务
systemctl restart nginx