<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)論排行榜

    主站蜘蛛池模板: GOGOGO免费观看国语| 亚洲私人无码综合久久网| 日日摸夜夜添夜夜免费视频| 无码少妇一区二区浪潮免费| 亚洲春色在线观看| 2021国产精品成人免费视频| 亚洲精品天堂在线观看| 毛片免费全部播放一级| 亚洲国产欧美国产综合一区| 成人免费视频小说| 黄色a三级免费看| 亚洲片一区二区三区| 中文在线日本免费永久18近| 亚洲人成人一区二区三区| 香蕉免费一区二区三区| 亚洲网红精品大秀在线观看| 嫖丰满老熟妇AAAA片免费看| 亚洲中文字幕无码av永久| 国产男女猛烈无遮档免费视频网站| 国产午夜亚洲精品不卡免下载| 亚洲成片观看四虎永久| 成人无码WWW免费视频| 亚洲色偷偷偷网站色偷一区| 久久电影网午夜鲁丝片免费| 偷自拍亚洲视频在线观看99| 亚洲美女又黄又爽在线观看| 久久久久成人片免费观看蜜芽| 亚洲视频无码高清在线| 亚洲 国产 图片| 在线观看肉片AV网站免费 | 中文字幕亚洲第一| 国产99视频精品免费专区| 亚洲综合色7777情网站777| 日日操夜夜操免费视频 | 18禁美女裸体免费网站| 亚洲欧美自偷自拍另类视| 亚洲精品无码成人片在线观看| 久久国产精品2020免费m3u8| 亚洲最大的成人网| 中文字幕亚洲第一| 在线视频免费观看www动漫|