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

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

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

    nginx:菜鳥手冊(cè)

    以下講記述的,是為nginx入門級(jí)新人和打算學(xué)習(xí)nginx的人而準(zhǔn)備的。

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

    那么nginx就是近些年來使用率不斷攀升的代理服務(wù)器,你可以查看一下中間件的使用情況,這里給出一個(gè)調(diào)查,點(diǎn)我查看

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

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

    #pid        logs/nginx.pid;

    #與簡單指令相對(duì),下面的event以及一對(duì)花括號(hào),稱作“塊指令”;含有其他指令的“塊指令”,我們稱作“上下文”
    #同時(shí),我們把不被包含在任何其他上下文中的上下文稱作主上下文
    #所以,“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;
     
        #好了,我們需要配置一個(gè)服務(wù)器最基本的功能,給出請(qǐng)求相應(yīng)結(jié)果
        #看到下面這個(gè)server上下文,它看上去但是也的確是用來配制服務(wù)器的
        server {
            #這個(gè)server上下文監(jiān)聽的端口以及域名
            listen       80;
            server_name  localhost;

            #charset koi8-r;

            #access_log  logs/host.access.log  main;

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

            #截止到為目前的配置,nginx都是用來響應(yīng)靜態(tài)的資源,比如我們?cè)L問localhost/demo/show.html,那么nginx會(huì)返回nginx目錄下
            #demo目錄下show.html的內(nèi)容,所以,我們經(jīng)常會(huì)把nginx當(dāng)做一個(gè)靜態(tài)內(nèi)容緩存來使用,來緩解后續(xù)服務(wù)器的響應(yīng)壓力

            #對(duì)于location來說,常用的還有正則匹配
            #靜態(tài)資源配置,當(dāng)然也可以來響應(yīng)動(dòng)態(tài)請(qǐng)求,不過這里有一點(diǎn)需要注意,當(dāng)使用正則匹配時(shí),如果請(qǐng)求匹配了當(dāng)前的路由規(guī)則,那么
            #會(huì)以正則的匹配內(nèi)容為主并返回,不會(huì)使用非正則的匹配項(xiàng)內(nèi)容返回,以“~”開頭,就表示匹配項(xiàng)是一個(gè)正則表達(dá)式,當(dāng)然,還有其
            #他不同規(guī)則的前綴都表示正則,后續(xù)再展開
                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;
            }

            #對(duì)于代理服務(wù)器來說,最基本的功能代理是必不可少的,而且配置也非常簡單
            #端口轉(zhuǎn)發(fā)配置,做出如下配置之后,符合匹配項(xiàng)的請(qǐng)求會(huì)原封不動(dòng)的轉(zhuǎn)發(fā)到otherhost域名下
            location /proxy{
             proxy_pass http://otherhost;
            }

            #下面的配置顯而易見,是錯(cuò)誤頁面的配置
            #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) 評(píng)論(0)  編輯  收藏 所屬分類: 中間件相關(guān)問題積累


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2015年12月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導(dǎo)航

    統(tǒng)計(jì)

    公告

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

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲成a∨人片在无码2023| 亚洲欧洲日韩国产综合在线二区| 亚洲一线产区二线产区区| 亚洲视频在线免费看| 亚洲av永久无码嘿嘿嘿| 国产精品久久免费| 亚洲中文字幕人成乱码 | 亚洲尹人香蕉网在线视颅| 久久美女网站免费| 亚洲av午夜福利精品一区 | 羞羞的视频在线免费观看| 亚洲国产精品国产自在在线| www免费黄色网| 亚洲AV日韩精品久久久久久| 亚洲毛片在线免费观看| 亚洲乱码av中文一区二区| 国产又大又长又粗又硬的免费视频 | 美女视频黄是免费的网址| 亚洲精品伦理熟女国产一区二区| 国产不卡免费视频| 女同免费毛片在线播放| 亚洲最新在线视频| 日韩电影免费在线观看视频| eeuss影院www天堂免费| 99久久亚洲综合精品成人网| 成年女人男人免费视频播放| 免费看美女午夜大片| 久久久久亚洲精品无码系列| 久草视频免费在线| 男女猛烈无遮掩视频免费软件| 亚洲不卡av不卡一区二区| 成人免费无遮挡无码黄漫视频| 日本黄页网址在线看免费不卡| 亚洲一区综合在线播放| 国产在线19禁免费观看国产| 四虎成人精品永久免费AV| 色婷婷六月亚洲综合香蕉| 亚洲av午夜福利精品一区| 国产精品极品美女免费观看| 成人性做爰aaa片免费看| 亚洲一本一道一区二区三区|