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

相关推荐

  • linux下安装配置DHCP服务器

    前提是已经安装了 core 及 base 两个组   1 2 3 4 5 # cat /etc/redhat-release   Red Hat Enterprise Linux Server release 6.8 (Santiago)&…

    Linux干货 2017-05-03
  • AWK小记

    gawk – pattern scanning and processing language 基本用法:gawk [options] ‘program’ FILE … program: PATTERN{ACTION STATEMENTS} 语句之间用分号分隔 print, printf 选项: -F:指明输入…

    2018-01-16
  • 常见的单机虚拟网络类型

    前言:   无论是互联网还是物联网,他们的网络模型都是可以见的,而虚拟化和云计算中的网络模型 要比这些模型要复杂的多,有些设备你是可以到也有一些设备你是看不到的,这给我们运维人员带来的技术挑战。通过学习Xen、KVM虚拟化技术,对单机虚拟网络模型有了初步的认识,以下是我对单机虚拟网络模型的认识。 一、NAT模型    …

    Linux干货 2015-09-01
  • Centos6.8 搭建LAMP平台

    Centos6.8 搭建LAMP平台 §·运行环境介绍 LAMP的运行环境介绍: L代表: Linux  Centos 6.8 A代表: apache  httpd-2.2.15-53.el6.centos.x86_64 M代表:MySQL  mysql-server-5.1.73-7.el6.x86_64 P代表: php &…

    Linux干货 2016-10-12
  • 计算机组成、Linux命令基础

    计算机组成 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息…

    Linux干货 2016-09-19
  • Linux入门之计算机组成及其功能

    计算机基础以及Linux基础

    2018-03-06