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
下一篇 2017-06-19

相关推荐

  • tar,cpio,rpm,yum的使用详解(适合初学者)

    基于linux下的tar包管理和yum源配置 友情提示:对于这些实际操作的,还是需要进行手工的尝试,由于这几个对于包管理的是比较常用和实用的, 所以,一定要熟练使用。 1.tar tar是对于系统中文件,目录等进行打包,解包的工具。tar也可以对文件进行打包存放到别的目录下, 所以在很早的时候,一些老的工程师经常使用tar对文件进行备份。很大程度上,所谓的t…

    Linux干货 2016-08-21
  • linux 学习之权限优先级

    linux下对同一文件的权限分成很多类,同时也可能对同一文件权限配置多种权限那么在这么多配置中,到底是怎么生效的呢?比如一个文件abc.txt属于wang用户,而同时对abc.txt又设置了ACL禁止 wang用户读写执行等等这些情况就是ACL的生效顺序完全理解,模拟出实验环境一一验证1,文件a属于mage用户,但ACL限制 mage读写执行 Paste_I…

    Linux干货 2017-05-29
  • keepalived(主主) 结合lvs(dr工作 模式) 实现高可用性。

    keepalived(主主) 结合lvs(dr工作 模式) 实现高可用性。

    2018-03-11
  • 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

    1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中。 对于一个模块或者系统,可能由很多对象构成,而且这些对象之间可能存在相互的引用,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系。虽然将一个系统分割成许多对象通常可以增强可复用性,但是对象…

    Linux干货 2015-07-20
  • 第三周-作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     ~]# who | cut -d" " -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。     ~]# who |  t…

    Linux干货 2016-12-14
  • 正则表达式之一grep

    grep :文本过滤( 模式:pattern) 工具 包括:grep, egrep, fgrep (不 支持正则表达式 搜索) 用法格式: grep [OPTIONS] PATTERN [FILE…]            &n…

    2017-02-27