Nginx基礎(chǔ)

Nginx(適合linux系統(tǒng)下)

1.基本結(jié)構(gòu)

worker_process 4; events{ worker_connections 1024; }; http{ server{ } server{ } }

2.相關(guān)命令

查看nginx進(jìn)程
tasklist /fi "imagename eq nginx.exe" 顯示如下圖:


nginx常用命令(一定要進(jìn)入nginx的安裝目錄才能執(zhí)行)

nginx -s stop 強(qiáng)制關(guān)閉
nginx -s quit 安全關(guān)閉
nginx -s reload 改變配置文件的時(shí)候,重啟nginx工作進(jìn)程,來時(shí)配置文件生效
nginx -s reopen 打開日志文件

3.配置詳解

**設(shè)置 用戶和用戶組 **
user www www;//nobody低權(quán)限用戶 安全

**nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)或者兩倍 **
worker_process 4

**設(shè)置錯(cuò)誤日志的存放文件,全局錯(cuò)誤日志定義類型,[ debug | info | notice | warn | error | crit ] **
error_log /usr/local/nginx/logs/error.log info;

**進(jìn)程pid文件的存放路徑(pid是控制系統(tǒng)的重要文件) **
pid /usr/local/nginx/logs/nginx.pid;

指定進(jìn)程可以打開的最大描述符:數(shù)目
工作模式與連接數(shù)上限
這個(gè)指令是指當(dāng)一個(gè)nginx進(jìn)程打開的最多文件描述符數(shù)目,理論值應(yīng)該是最多打開文件數(shù)(ulimit -n)與nginx進(jìn)程數(shù)相除,但是nginx分配請(qǐng)求并不是那么均勻,所以最好與ulimit -n 的值保持一致。
現(xiàn)在在linux 2.6內(nèi)核下開啟文件打開數(shù)為65535,worker_rlimit_nofile就相應(yīng)應(yīng)該填寫65535。
這是因?yàn)閚ginx調(diào)度時(shí)分配請(qǐng)求到進(jìn)程并不是那么的均衡,所以假如填寫10240,總并發(fā)量達(dá)到3-4萬時(shí)就有進(jìn)程可能超過10240了,這時(shí)會(huì)返回502錯(cuò)誤。

worker_rlimit_nofile 65535;

**設(shè)置最大連接數(shù) **
events{ worker_connections 1024; };

http指令處理http請(qǐng)求
# http {
# mime type映射
include mime.types;
default_type application/octet-stream;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

# server 表示一個(gè)虛擬主機(jī),一臺(tái)服務(wù)器可配置多個(gè)虛擬主機(jī)
server {
    # 監(jiān)聽端口
    listen       80;
    # 識(shí)別的域名
    server_name  localhost;

    # 一個(gè)關(guān)鍵設(shè)置,與url參數(shù)亂碼問題有關(guān)
    charset utf-8;

    #access_log  logs/host.access.log  main;

    #location表達(dá)式:
    #syntax: location [=|~|~*|^~|@] /uri/ { … }
    #分為兩種匹配模式,普通字符串匹配,正則匹配
    #無開頭引導(dǎo)字符或以=開頭表示普通字符串匹配
    #以~或~* 開頭表示正則匹配,~*表示不區(qū)分大小寫
    #多個(gè)location時(shí)匹配規(guī)則
    #總體是先普通后正則原則,只識(shí)別URI部分,例如請(qǐng)求為/test/1/abc.do?arg=xxx
    #1. 先查找是否有=開頭的精確匹配,即location = /test/1/abc.do {...}
    #2. 再查找普通匹配,以 最大前綴 為規(guī)則,如有以下兩個(gè)location
    #   location /test/ {...}
    #   location /test/1/ {...}
    #   則匹配后一項(xiàng)
    #3. 匹配到一個(gè)普通格式后,搜索并未結(jié)束,而是暫存當(dāng)前結(jié)果,并繼續(xù)再搜索正則模式
    #4. 在所有正則模式location中找到第一個(gè)匹配項(xiàng)后,以此匹配項(xiàng)為最終結(jié)果
    #   所以正則匹配項(xiàng)匹配規(guī)則受定義前后順序影響,但普通匹配不會(huì)
    #5. 如果未找到正則匹配項(xiàng),則以3中緩存的結(jié)果為最終結(jié)果
    #6. 如果一個(gè)匹配都沒有,返回404
    
    #location =/ {...} 與 location / {...} 的差別
    #前一個(gè)是精確匹配,只響應(yīng)/請(qǐng)求,所有/xxx類請(qǐng)求不會(huì)以前綴匹配形式匹配到它
    #而后一個(gè)正相反,所有請(qǐng)求必然都是以/開頭,所以沒有其它匹配結(jié)果時(shí)一定會(huì)執(zhí)行到它
    
    #location ^~ / {...} ^~意思是非正則,表示匹配到此模式后不再繼續(xù)正則搜索
    #所有如果這樣配置,相當(dāng)于關(guān)閉了正則匹配功能
    #因?yàn)橐粋€(gè)請(qǐng)求在普通匹配規(guī)則下沒得到其它普通匹配結(jié)果時(shí),最終匹配到這里
    #而這個(gè)^~指令又相當(dāng)于不允許正則,相當(dāng)于匹配到此為止
    location / {
        root   html;
        index  index.html index.htm;
        # deny all; 拒絕請(qǐng)求,返回403
        # allow all; 允許請(qǐng)求
    }
    
    location /test/ {
        deny all;
    }
    
    location ~ /test/.+\.jsp$ {
       proxy_pass  http://192.168.1.62:8080;
    }

    location ~ \.jsp$ {
       proxy_pass  http://192.168.1.61:8080;
    }

    # 定義各類錯(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;
    }
    
    # @類似于變量定義
    # error_page 403 http://www.jikexueyuan.com這種定義不允許,所以利用@實(shí)現(xiàn)
    error_page 403 @page403;
    location @page403 {
        proxy_pass http://http://www.jikexueyuan.com;
    }
}

4.Nginx虛擬主機(jī)的配置

為了使一個(gè)服務(wù)器可以供更多的用戶使用,可以將服務(wù)器氛圍多個(gè)虛擬的自服務(wù)器,每個(gè)子服務(wù)器都是獨(dú)立的,這些服務(wù)器是根據(jù)虛擬化技術(shù)分出來的,這樣一臺(tái)服務(wù)器就可以虛擬成很多臺(tái)子服務(wù)器,我們把子服務(wù)器叫做虛擬主機(jī)


第一種:基于域名的虛擬主機(jī),通過域名來區(qū)分虛擬主機(jī)——應(yīng)用:外部網(wǎng)站
1.需要建立/data/www /data/bbs目錄,windows本地hosts添加虛擬機(jī)ip地址對(duì)應(yīng)的域名解析;對(duì)應(yīng)域名網(wǎng)站目錄下新增index.html文件; 127.0.0.1 www.mingyipc.com 127.0.0.1 www.mingyiwap.com 2.nginx.conf配置文件新增 server{ listen:80;//監(jiān)聽端口號(hào) server_name: www.mingyiipc.com;//虛擬主機(jī)名稱 accsess_log logs/mingyipc.log combined;//日志文件,默認(rèn)格式 必須 location / 虛擬主機(jī)本機(jī)根目錄 { index index.html index.htm;//默認(rèn)首頁 root html/mingyipc.html;//綁定的目錄(安裝nginx的目錄) } } server{ listen:80;//監(jiān)聽端口號(hào) server_name: www.mingyiwap.com;//虛擬主機(jī)名稱 accsess_log logs/mingyipc.log combined;//日志文件,默認(rèn)格式 必須 location / 虛擬主機(jī)本機(jī)根目錄 { index index.html index.htm;//默認(rèn)首頁 root html/mingyiwap.html;//綁定的目錄(安裝nginx的目錄) } } 訪問: www.mingyiipc.com www.mingyiwap.com

第二種:基于端口的虛擬主機(jī),通過端口來區(qū)分虛擬主機(jī)——應(yīng)用:公司內(nèi)部網(wǎng)站,外部網(wǎng)站的管理后臺(tái)
nginx.conf配置文件新增 server{ listen:8000;//監(jiān)聽端口號(hào) server_name: www.mingyi.com;//虛擬主機(jī)名稱 accsess_log logs/mingyi.log combined;//日志文件,默認(rèn)格式 必須 location / 虛擬主機(jī)本機(jī)根目錄 { index index.html index.htm;//默認(rèn)首頁 root html/mingyipc.html;//綁定的目錄(安裝nginx的目錄) } } server{ listen:8001;//監(jiān)聽端口號(hào) server_name: www.mingyi.com;//虛擬主機(jī)名稱 accsess_log logs/mingyi.log combined;//日志文件,默認(rèn)格式 必須 location / 虛擬主機(jī)本機(jī)根目錄 { index index.html index.htm;//默認(rèn)首頁 root html/mingyi.html;//綁定的目錄(安裝nginx的目錄) } } 訪問: www.mingyi.com:8000 www.mingyi.com:8001

第三種:基于ip的虛擬主機(jī),幾乎不用
1.配置多個(gè)ip ifconfig eth0 192.168.1.0 netmask 255.255.255.0 ifconfig eth0:1 192.168.1.7 broadcast 19.168.1.255 netmask 255.255.255.0 2.配置nginx server{ listen:192.168.1.7:80;//監(jiān)聽I(yíng)P地址 server_name:192.168.1.7;//虛擬主機(jī)名稱 accsess_log logs/mingyipc.log combined;//日志文件,默認(rèn)格式 必須 location / 虛擬主機(jī)本機(jī)根目錄 { index index.html index.htm;//默認(rèn)首頁 root html/mingyipc.html;//綁定的目錄(安裝nginx的目錄) } }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1.ngnix介紹 ngnix www服務(wù)軟件 俄羅斯人開發(fā) 開源 性能很高 本身是一款靜態(tài)WWW軟件 靜態(tài)小文件...
    逗比punk閱讀 2,131評(píng)論 1 6
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,575評(píng)論 1 41
  • 更新日志:20170818 更新yum安裝 和 多前端部署80端口 截圖目錄: [toc] nginx(基礎(chǔ)) 準(zhǔn)...
    inke閱讀 1,114評(píng)論 1 8
  • 什么是nginx? Nginx是一款高性能的http 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服...
    FTOLsXD閱讀 464評(píng)論 0 1
  • 距離品創(chuàng)者品牌發(fā)布會(huì)還有3天!點(diǎn)擊下方閱讀原文進(jìn)行報(bào)名,這是互聯(lián)網(wǎng)白酒行業(yè)首例新品發(fā)布會(huì),屆時(shí)我們將在發(fā)布會(huì)現(xiàn)場(chǎng)送...
    品創(chuàng)者閱讀 87評(píng)論 0 0