利用 Nginx 搭建簡單圖片服務器,實現負載均衡

在我們搭建一個網站的時候,往往有時候會加載更多的圖片,如果都從 tomcat 服務器來獲取靜態資源,這樣會增加我們服務器的負載,使得服務器運行 速度非常慢,這時我們可以使用 nginx 服務器來加載這些靜態資源,這樣就可以實現負載均衡,爲我們的 Tomcat 服務器減壓了。一般大型網站都這麼幹,他們有單獨的圖片服務器,這裏我們在本地利用 nignx 來搭建一個簡單的圖片服務器。

一、安裝 nignx

nignx 是綠色版本的,只要到官網下載解壓既可啓動,解壓目錄圖如下所示:

這裏我們可以通過命令行 start nignx.exe 來啓動服務器,也可以通過 bat 批處理文件來啓動,打開批處理文件簡單處理一下就 可以啓動了:

上面的兩種方式都可以啓動服務器,當我們啓動一下服務器我們來簡單測試一下,在瀏覽器輸入 localhost 訪問,你可以看見一個簡單 nignx 服務器歡迎頁面。

下面,我們着重講解一下 nignx 的配置文件,在 conf 目錄下,打開 nignx.conf 文件,nginx.conf 由多個塊組成,最外面的塊是 main,main 包含 events 和 http,http 包含多個 upstream 和多個 server,server 又包含多個 location:

main(全局設置)、server(虛擬主機設置)、upstream(負載均衡服務器設置)和 location(URL 匹配特定位置的設置)。

  1. main 塊設置的指令將影響其他所有設置;

  2. server 塊的指令主要用於指定主機和端口;

  3. upstream 指令主要用於負載均衡,設置一系列的後端服務器;

  4. location 塊用於匹配網頁位置。 這四者之間的關係式:server 繼承 main,location 繼承 server,upstream 既不會繼承其他設置也不會被繼承。

在這四個部分當中,每個部分都包含若干指令,這些指令主要包含 Nginx 的主模塊指令、事件模塊指令、HTTP 核心模塊指令,同時每個部分還可以使用其他 HTTP 模塊指令,例如 Http SSL 模塊、HttpGzip Static 模塊和 Http Addition 模塊等。

通過上面的簡單的講解我們瞭解了一下 nignx 的配置文件,現在我們來具體看一下它的內容並且開始配置:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

上面這是配置文件中的一部分,我們看一下 location 這個節點,它下面的 root 表示該站點的根目錄,root html 表示根目錄下有一個 html 文件夾,當你訪問上面配置的域名(laocahost)時,它默認訪問跟目錄下的 html 文件中的 index.html 頁面,這樣你應該就明白了怎麼樣配置一個自定義的圖片服務器了吧,我們可以自定一個 server 節點,將其 localhost 節點指定爲我們要訪問的圖片地址域名,這樣我們就可以輕鬆訪問我們的靜態資源了。

 location / {
            root   html;
            index  index.html index.htm;
        }

二、搭建圖片服務器

經過上面的介紹我們應該明白了它的大概原理,下面我們來實戰配置一下。

首先我們這裏是本地搭建,所以沒有域名,這裏我們可以隨便一個二級域名來作爲練習(比如 images.shinelon.com),我們找到 C:\Windows\System32\drivers\etc 這個目錄下有一個 hosts 文件來加入映射我們的域名,加入下面的配置:

127.0.0.1   images.shinelon.com

然後我們複製 nignx.conf 文件的 server 節點,改爲如下配置:

server {
        listen       80;
        server_name  images.shinelon.com;

        #access_log  logs/host.access.log  main;

        location / {
            root  D:\images;
            
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

上面,我們將域名改爲了我們自定義的圖片域名,將 root 目錄改爲了我們的圖片存放目錄(D:\images),這樣我們啓動 nignx 服務器就可以訪問圖片資源了,這裏加入該目錄下有一張圖片爲 1.jpg。當你在瀏覽器中輸入 images.shinelon.com/1.jpg 就可以訪問我們的圖片資源了。

至此,我們就搭建了一個簡單的圖片服務器。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/FZICKLs5Zzm0RZH-m_OWGQ