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

相关推荐

  • 马哥教育网络班20期+第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ]# grep  "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; ]#…

    Linux干货 2016-07-12
  • 马哥教育网络班21期+第2周课程练习

    一、Linux文件管理类命令     1、文件的复制、移动和删除        A、cp  文件的复制          cp命令的用法:    &n…

    Linux干货 2016-06-26
  • 磁盘分区、软RAID创建及shell脚本参数传递,for循环,运算表达式应用 1、创建一个10G分区,并格式为ext4文件系统。 先使用fdisk工具创建一个10G的新分区。使用fdisk打开要创建磁盘分区的物理设备fdisk /dev/sdb,然后使用n指令创建新的分区,分区类型选此处选择为主分区,第一个柱面使用默认的1,最后的柱面,使用+10G这种表示方…

    Linux干货 2016-12-26
  • 实时获取MySQL的TPS、QPS(输出到屏幕)

    这个脚本挺好用的,例如我们在主库执行了一个大事务,结果导致从库的show slave status\G 一直卡在 system lock状态,我们用下面这个脚本就能知道到底是hang住了,还是只是执行缓慢(反应在脚本执行结果里面就是qps\tps是不停变动的)。 当然,从库一直处于system lock 状态,一般是因为我们从库也设置双1导致,只要…

    Linux干货 2017-05-07
  • 推荐-Linux Namespace的一点理解

        下文的原文来自: http://blog.csdn.net/preterhuman_peak/article/details/40857117    原文写的非常好,下文中大部分文字描述来自原文,我仅做了一点理解性的插图和实验部分。    &…

    Linux干货 2016-03-28