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.www58058.com/78258

(0)
XIAJIDONGXIAJIDONG
上一篇 2017-06-19
下一篇 2017-06-19

相關推薦

  • 權限管理和文本過濾

    1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 [root@study ~]# cp -r /etc/skel/ /home/tuser1|chmod -R 700 tuser1/ [root@…

    Linux干貨 2016-11-20
  • find、locate、Gnome文件查找工具

    查找命令: ? ? ? ? locate:非實時查找 ? ? ? ? find:實時查找 ? ? ? ? Gnome:圖形化搜索工具 locate: 描述:查詢系統上預建的文件索引數據庫/var/lib/mlocate/mlocate.db,一天更新一次更新數據庫:updatedb特點:依賴于事先構建的索引。索引的構建是在系統較為空閑時自動進行(周期性任務)…

    Linux干貨 2017-11-26
  • 二、(1)Linux常用文件管理類命令詳解

    Linux 文件管理 命令 cp mv rm

    2018-01-08
  • awk的詳細用法

    awk簡介 awk是一種編程語言,也可以說是一個腳本語言解釋器,主要是用來實現文本的格式化輸出。awk是取了其三位作者名字的首字母,即Aho,Weinberger和Kernighan。awk在Linux上是基于GNU協議實現的,即GNU awk,也就是gawk。 awk的工作模式 遍歷整個文件,從第一行到最后一行。每次僅讀取文件的一行,依照用戶指定的輸入分隔…

    Linux干貨 2016-11-14
  • man使用手冊

    Linux下man的各章節使用介紹        1 – commands     2 – system calls     3 – library calls  &nbsp…

    Linux干貨 2016-10-18
  • Linux命令總結

      1、登陸和開關機 ? ? ? 關機    halt    poweroff    init 0    重啟    reboot    init 6    shutdown    shutdown -r 重啟    shutodwn -h 關機    shutdown -c 取消計劃關機    shutdown +0 馬上關機    +1 一分鐘后關機  …

    2017-09-11
欧美性久久久久