<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Nginx 入門到實(shí)戰(zhàn),新手必懂~

          共 3439字,需瀏覽 7分鐘

           ·

          2021-08-27 20:13

          相關(guān)閱讀

          300本計(jì)算機(jī)編程的經(jīng)典書籍下載

          AI全套:Python3+TensorFlow打造人臉識別智能小程序

          最新人工智能資料-Google工程師親授 Tensorflow-入門到進(jìn)階

          Java架構(gòu)全階段七期完整

          黑馬頭條項(xiàng)目 - Java Springboot2.0(視頻、資料、代碼和講義)14天完整版

          Spring核心編程思想


          作者:海島
          來源:https://segmentfault.com/a/1190000014893012

          一、環(huán)境

          服務(wù)器版本:CentOS 7.2

          為了保證學(xué)習(xí)階段不遇到奇怪的事情,請保證以下四點(diǎn)(大神選擇性無視)

          1. 確認(rèn)系統(tǒng)網(wǎng)絡(luò)
          2. 確認(rèn)yum可用
          3. 確認(rèn)關(guān)閉iptables
          4. 確認(rèn)停用selinux
          #查看iptables狀態(tài)
          systemctl status firewalld.service
          #關(guān)閉防火墻(臨時(shí)關(guān)閉)
          systemctl stop firewalld.service
          #查看SELinux狀態(tài)
          getenforce
          #臨時(shí)關(guān)閉SELinux
          setenforce 0

          安裝一些系統(tǒng)基本工具,正常情況系統(tǒng)都會自帶(沒有在裝哦)

          yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
          yum -y install wget httpd-tools vim

          二、Nginx是什么?

          Nginx是一個(gè)開源且高性能、可靠的HTTP中間件、代理服務(wù) 其他的HTTP服務(wù):

          1. HTTPD-Apache基金會
          2. IIS-微軟
          3. GWS-Google(不對外開放)

          近幾年,Nginx的市場占有率越來越高,一度飆升,為什么呢?接下來我們就知道了!

          三、我們?yōu)槭裁催x擇Nginx?

          1. IO多路復(fù)用epoll(IO復(fù)用)

          如何理解呢?舉個(gè)例子吧! 

          有A、B、C三個(gè)老師,他們都遇到一個(gè)難題,要幫助一個(gè)班級的學(xué)生解決課堂作業(yè)。 

          老師A采用從第一排開始一個(gè)學(xué)生一個(gè)學(xué)生輪流解答的方式去回答問題,老師A浪費(fèi)了很多時(shí)間,并且有的學(xué)生作業(yè)還沒有完成呢,老師就來了,反反復(fù)復(fù)效率極慢。

          老師B是一個(gè)忍者,他發(fā)現(xiàn)老師A的方法行不通,于是他使用了影分身術(shù),分身出好幾個(gè)自己同一時(shí)間去幫好幾個(gè)同學(xué)回答問題,最后還沒回答完,老師B消耗光了能量累倒了。 

          老師C比較精明,他告訴學(xué)生,誰完成了作業(yè)舉手,有舉手的同學(xué)他才去指導(dǎo)問題,他讓學(xué)生主動(dòng)發(fā)聲,分開了“并發(fā)”。這個(gè)老師C就是Nginx。

          2. 輕量級

          • 功能模塊少 - Nginx僅保留了HTTP需要的模塊,其他都用插件的方式,后天添加
          • 代碼模塊化 - 更適合二次開發(fā),如阿里巴巴Tengine
          3. CPU親和

          把CPU核心和Nginx工作進(jìn)程綁定,把每個(gè)worker進(jìn)程固定在一個(gè)CPU上執(zhí)行,減少切換CPU的cache miss,從而提高性能。

          三、安裝與目錄

          本人使用了鳥哥的lnmp集成包,簡單方便-推薦!

          #執(zhí)行這句語句,根據(jù)指引,將安裝 nginx php mysql 可進(jìn)入lnmp官網(wǎng)查看更詳細(xì)的過程
          #默認(rèn)安裝目錄/usr/local
          wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

          #默認(rèn)安裝目錄
          /usr/local

          四、基本配置

          #打開主配置文件,若你是用lnmp環(huán)境安裝
          vim /usr/local/nginx/conf/nginx.conf

          ----------------------------------------

          user #設(shè)置nginx服務(wù)的系統(tǒng)使用用戶
          worker_processes #工作進(jìn)程數(shù) 一般情況與CPU核數(shù)保持一致
          error_log #nginx的錯(cuò)誤日志
          pid #nginx啟動(dòng)時(shí)的pid

          events {
          worker_connections #每個(gè)進(jìn)程允許最大連接數(shù)
          use #nginx使用的內(nèi)核模型
          }

          我們使用 nginx 的 http 服務(wù),在配置文件 nginx.conf 中的 http 區(qū)域內(nèi),配置無數(shù)個(gè) server ,每一個(gè) server 對應(yīng)這一個(gè)虛擬主機(jī)或者域

          http {
          ... ... #后面再詳細(xì)介紹 http 配置項(xiàng)目

          server {
          listen 80 #監(jiān)聽端口;
          server_name localhost #地址

          location / { #訪問首頁路徑
          root /xxx/xxx/index.html #默認(rèn)目錄
          index index.html index.htm #默認(rèn)文件
          }

          error_page 500 504 /50x.html #當(dāng)出現(xiàn)以上狀態(tài)碼時(shí)從新定義到50x.html
          location = /50x.html { #當(dāng)訪問50x.html時(shí)
          root /xxx/xxx/html #50x.html 頁面所在位置
          }
          }

          server {
          ... ...
          }
          }

          一個(gè) server 可以出現(xiàn)多個(gè) location ,我們對不同的訪問路徑進(jìn)行不同情況的配置 我們再來看看 http 的配置詳情

          http {
          sendfile on #高效傳輸文件的模式 一定要開啟
          keepalive_timeout 65 #客戶端服務(wù)端請求超時(shí)時(shí)間
          log_format main XXX #定義日志格式 代號為main
          access_log /usr/local/access.log main #日志保存地址 格式代碼 main
          }

          四、模塊

          查看 nginx 已開啟和編聯(lián)進(jìn)去的模塊,模塊太多了,就不在這長篇大論,有需要自行百度吧~

          #大寫V查看所有模塊,小寫v查看版本
          nginx -V
          # 查看此配置文件 是否存在語法錯(cuò)誤
          nginx -tc /usr/local/nginx/conf/nginx.conf


          - END -

          看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多人


          往期資源:


          Flutter 移動(dòng)應(yīng)用開發(fā)實(shí)戰(zhàn) 視頻(開發(fā)你自己的抖音APP)
          Java面試進(jìn)階訓(xùn)練營 第2季(分布式篇)
          Java高級 - 分布式系統(tǒng)開發(fā)技術(shù)視頻
          瀏覽 40
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV成人无码一区二区三区在线观看 | 亚洲AV无码国产精品草莓在线 | 大香蕉伊然在亚洲91 | 喷水在线观看 | 欧美一二区 |