登录/注册
小开开
2649
占位
2
占位
0
浏览量
占位
粉丝
占位
关注
Nginx配置
小开开
2020-07-14 22:39:04 2020-07-14
244
0
yum install nginx  #安装Nginx,安装包在epel源中

systemctl start nginx.service #启动服务

#实验:配置一个虚拟主机

#先给一个网页文件
~]#mkdir /data/nginx/vhost1 -pv
~]#vim /data/nginx/vhost1/index.html
<h1>Nginx Vhost 1</h1>

#配虚拟主机
~]#vim /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name www.ilinux.io;
root /data/nginx/vhost1;
}
#保存退出
~]#nginx -t #测试语法问题
~]#nginx -s reload #重载
#浏览器地址栏中输入:www.ilinux.io (须进行域名解析)
#显示“Nginx Vhost 1”
#成功!

#实验:拒绝172.16.251.213主机访问

~]#vim /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name www.ilinux.io;
root /data/nginx/vhost1;
location / {
deny 172.16.251.213;
allow all;
} #添加一个location定义
}
#保存退出
~]#nginx -t #测试语法问题
~]#nginx -s reload #重载

#213主机中:
#首先加一个名称解析
~]#vim /etc/hosts
172.16.251.128 www.ilinux.io
~]#curl http://www.ilinux.io/index.html
#显示Forbidden
#成功!

#实验:只是对/下的某些资源启用访问限制,比如访问一些图片

~]#vim /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name www.ilinux.io;
root /data/nginx/vhost1;
location ~*.(jpg|png)$ { #可以更灵活的使用正则表达式来定义URL
deny 172.16.251.213;
allow all;
}
}
#保存退出
~]#nginx -t #测试语法问题
~]#nginx -s reload #重载

#切换到213主机访问
~]#curl http://www.ilinux.io/index.html
#就不会显示Forbidden,因为访问的不是以jpg或png结尾的文件
#切换到128主机
~]#cd /data/nginx/vhost1 #复制一些图片到这个目录下
~]#find /usr/share/ -iname "*.jpg" -exec cp {} ./ \;
#用浏览器随便访问一个图片
www.ilinux.io/leaf.jpg #可以看到图片
#切换到213主机访问一样的图片
~]#curl http://www.ilinux.io/leaf.jpg
#显示Forbidden
#成功!

#实验:验证location的优先级匹配

~]#vim /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name www.ilinux.io;
root /data/nginx/vhost1;
location / {
allow all;
} #在之前的location上面再定义一个允许所有主机访问
location ~*.(jpg|png)$ {
deny 172.16.251.213;
allow all;
}
}
#保存退出
~]#nginx -t #测试语法问题
~]#nginx -s reload #重载

#再切换到213主机访问
~]#curl http://www.ilinux.io/leaf.jpg
#还是显示Forbidden
#location是自上而下匹配,优先级高的匹配
#虽然允许所有访问的location在上面,但下面一个location优先级高,所以还是拒绝
#成功!

#实验:验证root的优先级匹配

~]#vim /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name www.ilinux.io;
root /data/nginx/vhost1;
location / {
root /data/nginx/vhost2; #在location中定义一个root
allow all;
}
location ~*.(jpg|png)$ {
deny 172.16.251.213;
allow a

暂无评论