<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    nginx:菜鳥手冊

    以下講記述的,是為nginx入門級新人和打算學習nginx的人而準備的。

    首先,nginx(讀作:engine x)是一個反向代理服務器。這里順便闡述一下相關的概念,來幫助概念不清楚的朋友來獲得最佳的學習體驗。
    服務器可以按照不同標準劃分為很多種,那么這里討論的就是其中的一種,代理服務器。代理服務器可以再次細分,分為正向代理服務器和反向代理服務器,這兩者是相對于目標服務器而言的。當我們(O)希望訪問某一臺服務器(T,是具體的服務器),但是由于種種原因,我們不能去直接的訪問T,但是我們可以直接訪問另一臺服務器(P),而P卻可以訪問T,那么正好,我們拜托P去訪問T,將獲得的信息返回給我們,這個過程中,我們始終知道要訪問的那一臺服務器,所以,這個代理過程稱為正向代理;那么與之相對,如果我們知道要訪問的站點,但是該站點可能同時部署在多個服務器上,不過最終我們獲得了目標站點的內容,這個過程中,我們不知道具體訪問過哪一臺服務器,所以,這個代理過程稱為反向代理。

    那么nginx就是近些年來使用率不斷攀升的代理服務器,你可以查看一下中間件的使用情況,這里給出一個調查,點我查看

    好了,我們開始吧。我不管你什么系統,但是我假定你已經安裝好了nginx,排除那些系統上操作的差異,我們來感受一下最基本的操作。
    nginx的啟動停止重新加載配置文件
    在控制臺中定位到nginx所在的目錄,使用nginx -s signal操作nginx,signal可以是以下參數
    • stop — 立刻停止(不會等待當前工作結束)
    • quit — 延遲停止(會等待當前工作結束)
    • reload — 重新加載配置文件(會優先檢查新配置文件的格式,通過校驗則啟用新配置,不通過則沿用舊配置)
    • reopen — 重新打開日志文件
    好了,知道了基本操作之后,我們就看一下配置文件,看懂了配置文件,我們就能讓nginx按照我們的需要來運作。打開nginx.cnf文件
    #user  nobody;
    #我左邊有個“#”號,這說明這一行都是注釋
    #下面的這個,看起來像一對鍵值對,這么理解也可以,官方給出的解釋是“簡單指令”
    worker_processes  1;

    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;

    #pid        logs/nginx.pid;

    #與簡單指令相對,下面的event以及一對花括號,稱作“塊指令”;含有其他指令的“塊指令”,我們稱作“上下文”
    #同時,我們把不被包含在任何其他上下文中的上下文稱作主上下文
    #所以,“events”和“http”就是主上下文,“server”和“location”就不是主上下文
    events {
        worker_connections  1024;
    }

    http {
        include       mime.types;
        default_type  application/octet-stream;

        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';

        #access_log  logs/access.log  main;

        sendfile        on;
        #tcp_nopush     on;

        #keepalive_timeout  0;
        keepalive_timeout  65;

        #gzip  on;
     
        #好了,我們需要配置一個服務器最基本的功能,給出請求相應結果
        #看到下面這個server上下文,它看上去但是也的確是用來配制服務器的
        server {
            #這個server上下文監聽的端口以及域名
            listen       80;
            server_name  localhost;

            #charset koi8-r;

            #access_log  logs/host.access.log  main;

            #這里就是路由規則了,location加空格再加匹配項,這里的匹配項是“/”,也就是說所有以“/”開頭的請求都符合這個路由規則
            #但是需要注意一點,nginx在匹配路由的時候有一個最長前綴匹配規則,看到下一個路由規則
            location / {
                #這里的root指的是響應資源所在的目錄,這是指明,資源在nginx目錄下的index目錄里
                root   html;
                #index指令會響應指定的頁面,按次序進行查找,找到了就返回
                index  index.html index.htm;
            }
            
            #這location的匹配項是“/demo”,那么當一個請求是“/demo/get”的時候,這個請求會匹配之前的“/”和這里的“/demo”,但是
            #nginx會選擇前綴較長的匹配項來匹配,所以nginx會使用/demo路由的相應內容
            location /demo {
                #這里又重新設定了root的值,表示用nginx目錄demo目錄下的資源響應
                #如果root在主上下文之外設定,那么相當于一個全局的設定,在其他上下文中沒有被覆蓋的話,則使用全局設定
                root   demo;
            }

            #截止到為目前的配置,nginx都是用來響應靜態的資源,比如我們訪問localhost/demo/show.html,那么nginx會返回nginx目錄下
            #demo目錄下show.html的內容,所以,我們經常會把nginx當做一個靜態內容緩存來使用,來緩解后續服務器的響應壓力

            #對于location來說,常用的還有正則匹配
            #靜態資源配置,當然也可以來響應動態請求,不過這里有一點需要注意,當使用正則匹配時,如果請求匹配了當前的路由規則,那么
            #會以正則的匹配內容為主并返回,不會使用非正則的匹配項內容返回,以“~”開頭,就表示匹配項是一個正則表達式,當然,還有其
            #他不同規則的前綴都表示正則,后續再展開
                location ~ .*\.(css|js)(.*) {
                 proxy_set_header Host $host;
                 proxy_cache_valid 200 302 1h;
                 proxy_cache_valid 301 1d;
                 proxy_cache_valid any 1m;
                 expires 7d;
            }

            #對于代理服務器來說,最基本的功能代理是必不可少的,而且配置也非常簡單
            #端口轉發配置,做出如下配置之后,符合匹配項的請求會原封不動的轉發到otherhost域名下
            location /proxy{
             proxy_pass http://otherhost;
            }

            #下面的配置顯而易見,是錯誤頁面的配置
            #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;
            }
        }
    }
    有了這套最基本的配置,就可以試著開啟nginx,感受一下它的功能

    posted on 2015-12-01 17:32 都較瘦 閱讀(236) 評論(0)  編輯  收藏 所屬分類: 中間件相關問題積累


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2015年12月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    公告

    博客定位:囿于目前的水平,博客定位在記錄自己的學習心得和隨手的練習

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99在线视频免费观看视频 | 亚洲一区二区三区在线观看精品中文| 久久精品国产亚洲AV久| 18未年禁止免费观看| 亚洲第一精品在线视频| 久久国产精品萌白酱免费| 久久久无码精品亚洲日韩蜜桃| 日本在线免费播放| 亚洲av色影在线| 在线人成精品免费视频| 亚洲制服丝袜第一页| 尤物永久免费AV无码网站| 风间由美在线亚洲一区| 亚洲欧洲久久久精品| 三上悠亚在线观看免费| 亚洲AV无码国产精品色午友在线| 午夜爽爽爽男女免费观看影院| 亚洲色图国产精品| 99精品国产免费久久久久久下载 | 亚洲A∨无码无在线观看| 三年片在线观看免费大全电影| 91情国产l精品国产亚洲区| 青青草a免费线观a| 免费观看亚洲人成网站| 中文字幕亚洲综合久久菠萝蜜| 国产成人AV片无码免费| 亚洲乱码一区二区三区国产精品| 天天看片天天爽_免费播放| 一区二区三区免费在线观看| 亚洲国产精品久久久久网站| 国产无人区码卡二卡三卡免费| 国产成人亚洲精品蜜芽影院| 亚洲国产成人片在线观看| 日韩版码免费福利视频| 国产亚洲成在线播放va| 亚洲国产精品一区二区久久| 日韩精品视频免费在线观看| a级在线免费观看| 亚洲精品第一综合99久久| 国产精品亚洲综合一区| 免费在线视频你懂的|