Nginx的简单配置和简单实验..

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 all;
            }
        }
        #保存退出
    ~]#nginx -t  #测试语法问题
    ~]#nginx -s reload  #重载

    #128主机中:
    ~]#mkdir /data/nginx/vhost2  #创建刚刚定义的root目录
    ~]#vim /data/nginx/vhost2/index.html  #给一个测试页
        <h1>Vhost2</h1>

    #用213主机访问:
    ~]#curl http://www.ilinux.io/index.html
    #显示“<h1>Vhost2</h1>”
    #如果location中定义了root,那server中root就失效,以location中定义的为准
    #成功!

用了一些自己的语言来总结,不是很标准,见谅。    

原创文章,作者:XIAJIDONG,如若转载,请注明出处:http://www.178linux.com/78258

(0)
XIAJIDONGXIAJIDONG
上一篇 2017-06-19 16:57
下一篇 2017-06-19 22:56

相关推荐

  • gitlib环境部署

         GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松…

    2016-05-19
  • Centos6搭建vsftpd手册

    1、开启防火墙ftp端口vi /etc/sysconfig/iptables     #编辑防火墙配置文件 1 -A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT(允许21端口通过防火墙) 2 -A INPUT -m st…

    Linux干货 2017-04-26
  • shell脚本编程__bash的配置

    shell脚本编程__bash的配置   一、bash的配置文件:   按生效范围划分,存在两类:     全局配置: /etc/profile /etc/profile.d/*.sh /etc/bashrc    个人配置: ~/.bash_profile ~/.bashrc 二、she…

    Linux干货 2016-08-26
  • 破坏grub实验之一

    1、删除grub stage1阶段 [root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 1+0 records in 1+0 records out 446 bytes …

    Linux干货 2016-09-19
  • 文件查找命令

    查找命令:local,find local:非实时查找,通过系统数据库进行搜索,无法查找到在系统数据库更新后创建的文件,但是查找速度快,模糊查找(不仅会查找到文件名还会找到文件全路径) find:在硬盘上进行实时搜索,速度较慢,但是可以找到当前所有的数据 系统数据库在   /var/lib/mlocate/mlocate.db 系统一般会…

    Linux干货 2016-08-16
  • linux基础练习

    马哥教育23期网络班+第6周课堂练习 Linux 基础练习 一、linux基础练习题 1、复制/etc/rc.d/rc.sysinit 文件至/tmp 目录,将/tmp/rc.sysinit 文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf 至/tmp目录中 删除/tmp/grub.conf 文件中的行首的空白…

    Linux干货 2016-11-01