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 16:57
下一篇 2017-06-19 22:56

相關推薦

  • 初識Linux

    一,計算機的組成和功能 計算機主要由四個部分組成,內存、緩存、CPU和寄存器。其中緩存及其重要,為CPU和內存之間的緩存,寄存器存放指令,CPU負責執行指令。內存是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。 二,Linux的主流發行版本 Linux的發行版有數百種之多,其中主流的三種為: Debia…

    Linux干貨 2017-12-04
  • class16高級磁盤管理(二)網絡管理(一)

    一、高級磁盤管理(二) 邏輯卷管理器快照 快照是特殊的邏輯卷 快照只有在它們和原來的邏輯卷不同時才會消耗空間。 當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。 建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可以使用lvextend 放大快照。 使用LVM 快照 為現有邏輯卷創建快照 #lvcreate -L …

    Linux干貨 2016-09-05
  • 小型網站MYSQL問題一:MyISAM轉Innodb的方法

    故事背景:之前公司的數據庫存儲引擎全部為MyISAM,數據量和訪問量都不是很大,也一直沒有什么問題。我最近接手一些運維工作,兼DBA,因為業務上面涉及到錢,所以決定換成支持事物的innodb。下面將操作步驟記錄以下。 1、導出mydb數據庫的表結構 mysqldump -d -uxxx -p mydb &gt…

    Linux干貨 2015-12-19
  • Linux 學習基本

    環境配置主要分硬件和軟件兩種

    2018-03-26
  • Linux 系統啟動流程與grub的應用

    一 Linux 系統啟動流程    POST –> BIOS(Boot Sequence) –> MBR(bootloader) –> kernel + initramfs(或initrd) –> rootfs (ro) –> /sbin/init …

    Linux干貨 2016-03-07
  • 條件選擇if語句

    單分支的if語句 if 判斷條件; then 條件為真的分支代碼 fi       單分支if結構的執行流程:首先判斷條件測試操作的結果,如果返回值為0表示條件成立,則執行then后面的命令序列,一直到遇見fi為止表示結束,繼續執行其他腳本代碼;如果返回不為0,則忽略then后面的命令序列,直接跳至fi行以后執行其他腳…

    Linux干貨 2016-08-16
欧美性久久久久