使用nginx製作一個靜態web服務器

使用nginx製作一個靜態web服務器

1. 理解配置文件語法

conf目錄中存放了nginx相關的配置文件
nginx主配置文件爲nginx.conf

可以使用sed命令去掉配置文件中的註釋,這樣可以更方便的查看與操作:

sed -i '/^[[:space:]]*#/'d nginx.conf

在這裏插入圖片描述
在這裏插入圖片描述

其中的語法爲:

http {
    ...
    ...
    server {
        ...
        ...
        location ... {
            ...
            ...
        }
       
    }
    server {
        ...
        ...
    }
}

從上述語法配置示例可以看出:上述示例可以分爲幾個邏輯部分,http部分、server部分、location部分。
或者說,上述示例可以分爲幾個邏輯塊:http塊、server塊、location塊,每個"配塊"都是使用大括號{ }作爲分界線的。

而且從縮進可以看出,它們是有層級關係的。http中可以配量多個server,一個server中可以配多個location。
我們知道,nginx最基礎的功能就是用來提供http服務,所以跟http有關的公共配置,可以放在http塊中,http塊中又可以配置多個server

  • 那麼server代表了什麼呢?我們在一臺主機中安裝了nginx,那麼能不能讓這臺nginx主機同時提供多個web服務呢?答案是肯定的。每一個server就代表一個http服務,我們可以同時配多個server,以便同時提供多個http服務,不同的server可以使用不同的配置,寫入到某個server塊中的配只對對應的http服務生效,如果多個server存在共同的公用配置,則可以將共同的配寫在http塊中,以便多個server共享這些配置,一個server塊中又可以有一個或多個location。
  • location又是什麼意思呢?當我們訪問一個網絡上的資源時,都是通過url訪問的。你可以把location當做url的一部分。那麼當我們訪問"http://172.25.1.1/"這個urI時,這個url的最後一個"/"其實就是location
  • location塊中有兩條配通指令,它們分別是root和index
    root配置指令的意思是:當前location所對應的文檔根目錄是哪裏root html;表示當前location的文檔根目錄是htmI目錄。
  • 那麼"文檔根目錄"又是什麼意思呢?說白了,文檔根目錄的意思就是當有人訪問"/"這個路徑時,去服務器的哪個目錄中找對應的資源

舉個例子:

如果我在htmI目錄中放了一張圖片,圖片名爲a.jpg,那麼我就能通過"http://172.25.254.1/a.jpg"訪問到這張圖片
url中的"/"對應了"location /“配置段,而"location/“又對應到了服務器的htmI目錄,所以url中的”/“就與服務器的html目錄建立了對應關係
當我們訪問"http://172.25.0.1/a.jpg"這個地址時,其實訪問的是服務器上htmI目錄中的a.jpg
再換句話說,htmI目錄就是當前location的資源目錄。
注意:上例中的htmI路徑是一個相對路徑,表示nginx安裝目錄中的html目錄,因爲我將nginx安裝到了/usr/local/nginx目錄中
所以上例中的html目錄的絕對路徑就是”/usr/local/nginx/html/”

2. 製作靜態web服務器

注意:這個實驗需要虛擬機server1和server2,其中server1作爲nginx服務器,server2安裝apache服務

step1 修改配置文件

在server1中:

cd /usr/local/nginx
cd conf/
vim nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
        upstream kane {
                server 172.25.1.2:80;
}



server{ 
        listen 80;
        server_name www.kane.org;
        location / {
                proxy_pass http://kane;
}
}

在這裏插入圖片描述
在這裏插入圖片描述

nginx -t	#語法檢測
nginx -s reload	#在不暫停服務的情況下重新加載

在這裏插入圖片描述

step2 寫默認發佈頁面
在server2中:

yum install httpd -y
vim /var/www/html/index.html
systemctl restart httpd

step3 添加解析
在客戶端(真機)中:

vim /etc/hosts
172.25.254.1 www.kane.org

step4 測試

curl www.kane.org

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章