国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            關(guān)于 Nginx,你還在背誦那些培訓(xùn)機(jī)構(gòu)教給你的內(nèi)容么?

            發(fā)布時(shí)間:2022-02-11 點(diǎn)擊數(shù):877

            關(guān)于 Nginx 你還在背誦著培訓(xùn)班中教給你的內(nèi)容么?面試的時(shí)分很多項(xiàng)目都說運(yùn)用過 Nginx,但是當(dāng)面試官問你 Nginx 的原理的時(shí)分,你還在手足無措么?假如有,那么這篇文章我送給咱們,讓你面試答復(fù) Nginx 的的時(shí)分不再慌張,不需求再去背誦那些內(nèi)容了,各位看官預(yù)備好了么?


            01、什么是Nginx

            咱們來看一下這個(gè)百度百科給出的解說:


            Nginx (engine x) 是一個(gè)高性能的 HTTP 和反向署理 Web 服務(wù)器,一起也提供了 IMAP/POP3/SMTP 服務(wù)。


            Nginx 是一款輕量級(jí)的 Web 服務(wù)器/反向署理服務(wù)器及電子郵件(IMAP/POP3)署理服務(wù)器,在 BSD-like 協(xié)議下發(fā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)才能強(qiáng),事實(shí)上 Nginx 的并發(fā)才能確實(shí)在同類型的網(wǎng)頁服務(wù)器中體現(xiàn)較好,中國(guó)大陸運(yùn)用 Nginx 網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。


            以上的內(nèi)容是百度百科給出的解說,這個(gè)但是現(xiàn)已算的上是很全了,總結(jié)下來就幾點(diǎn)內(nèi)容:


            • HTTP 和反向署理 Web 服務(wù)器
            • IMAP/POP3/SMTP 服務(wù)


            02、Nginx 的長(zhǎng)處和效果


            • Nginx 運(yùn)用依據(jù)事情驅(qū)動(dòng)架構(gòu),使得其能夠支撐數(shù)以百萬等級(jí)的TCP連接
            • 高度的模塊化和自由軟件許可證是的第三方模塊層出不窮
            • Nginx 是一個(gè)跨平臺(tái)服務(wù)器,能夠運(yùn)轉(zhuǎn)在Linux、Windows、FreeBSD、Solaris、AIX、Mac OS 等操作體系上
            • 這些優(yōu)異的設(shè)計(jì)帶來的極大的穩(wěn)定性



            03、Nginx的署理


            說到署理,首先咱們要清晰一個(gè)概念,所謂署理便是一個(gè)代表、一個(gè)渠道;


            此時(shí)就設(shè)計(jì)到兩個(gè)人物,一個(gè)是被署理人物,一個(gè)是方針人物,被署理人物經(jīng)過這個(gè)署理拜訪方針人物完成一些任務(wù)的過程稱為署理操作過程;如同日子中的專賣店~客人到 Adidas 專賣店買了一雙鞋,這個(gè)專賣店便是署理,被署理人物便是 Adidas 廠家,方針人物便是用戶。


            而署理又分為了2種,一種是正向署理,一種是反向署理


            1)正向署理


            舉一個(gè)經(jīng)典的例子,咱們拜訪國(guó)外的網(wǎng)站的時(shí)分,是沒有辦法進(jìn)行拜訪的,這時(shí)分是不是就得需求一個(gè)署理服務(wù)器,咱們把懇求發(fā)給署理服務(wù)器,署理服務(wù)器去拜訪國(guó)外的網(wǎng)站,然后將拜訪到的數(shù)據(jù)傳遞給咱們!


            上述這樣的署理形式稱為正向署理,正向署理最大的特點(diǎn)是客戶端非常清晰要拜訪的服務(wù)器地址;服務(wù)器只清楚懇求來自哪個(gè)署理服務(wù)器,而不清楚來自哪個(gè)具體的客戶端;正向署理形式屏蔽或許躲藏了真實(shí)客戶端信息。


            正向署理的用處


            • 拜訪本來無法拜訪的資源,如 Google
            • 能夠做緩存,加快拜訪資源
            • 對(duì)客戶端拜訪授權(quán),上網(wǎng)進(jìn)行認(rèn)證
            • 署理能夠記錄用戶拜訪記錄(上網(wǎng)行為管理),對(duì)外躲藏用戶信息


            2)反向署理


            咱們說完了正向署理之后,咱們?cè)賮砜匆幌路聪蚴鹄恚罱?jīng)典的運(yùn)用,分布式

            經(jīng)過布置多臺(tái)服務(wù)器來解決拜訪人數(shù)約束的問題;某寶網(wǎng)站中大部分功能也是直接運(yùn)用Nginx進(jìn)行反向署理完成的,而且經(jīng)過封裝 Nginx 和其他的組件之后起了個(gè)高大上的姓名:Tengine。


            這其實(shí)便是反向署理的一個(gè)經(jīng)典運(yùn)用。


            反向署理的用處


            • 確保內(nèi)網(wǎng)的安全,通常將反向署理作為公網(wǎng)拜訪地址,Web服務(wù)器是內(nèi)網(wǎng)
            • 負(fù)載均衡,經(jīng)過反向署理服務(wù)器來優(yōu)化網(wǎng)站的負(fù)載


            說完了署理,咱們就該來看面試中最常常問到的必須答復(fù)的內(nèi)容。


            04、你在作業(yè)中是怎樣對(duì) Nginx 進(jìn)行裝備的


            裝備文件詳解:


            • nginx.conf----------------------Nginx 的根本裝備文件
            • mime.types----------------------MIME 類型相關(guān)的擴(kuò)展文件
            • fastcgi.conf----------------------與 fastcgi 相關(guān)的裝備
            • proxy.conf----------------------與 proxy 相關(guān)的裝備
            • sites.conf----------------------裝備 Nginx 提供的網(wǎng)站,包括虛擬主機(jī)


            今天咱們先說首要的這個(gè) nginx.conf 裝備文件,之后再去解說其他的裝備文件。


            nginx.conf 裝備文件首要分紅四個(gè)部分:


            • main,大局設(shè)置,影響其它部分一切設(shè)置
            • server,主機(jī)服務(wù)相關(guān)設(shè)置,首要用于指定虛擬主機(jī)域名、IP 和端口
            • location,URL 匹配特定方位后的設(shè)置,反向署理、內(nèi)容篡改相關(guān)設(shè)置
            • upstream,上游服務(wù)器設(shè)置,負(fù)載均衡相關(guān)裝備


            他們之間的聯(lián)系是:server 承繼 main,location 承繼server;upstream 既不會(huì)承繼指令也不會(huì)被承繼。


            通用裝備如下:

            #界說 Nginx 運(yùn)轉(zhuǎn)的用戶和用戶組,默許由 nobody 賬號(hào)運(yùn)轉(zhuǎn), windows 下面能夠注釋掉。 user  nobody;  #nginx進(jìn)程數(shù),主張?jiān)O(shè)置為等于CPU總核心數(shù)。能夠和worker_cpu_affinity配合 worker_processes  1;  #大局過錯(cuò)日志界說類型,[ debug | info | notice | warn | error | crit ] #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info;  #進(jìn)程文件,window下能夠注釋掉 #pid        logs/nginx.pid;  # 一個(gè)nginx進(jìn)程翻開的最多文件描述符(句柄)數(shù)目,理論值應(yīng)該是最多翻開文件數(shù)(體系的值ulimit -n)與nginx進(jìn)程數(shù)相除, # 但是nginx分配懇求并不均勻,所以主張與ulimit -n的值保持一致。 worker_rlimit_nofile 65535;  #作業(yè)形式與連接數(shù)上限 events {  # 參閱事情模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];  # epoll模型是Linux 2.6以上版別內(nèi)核中的高性能網(wǎng)絡(luò)I/O模型,假如跑在FreeBSD上面,就用kqueue模型。  #use epoll;  #connections 20000;  # 每個(gè)進(jìn)程答應(yīng)的最多連接數(shù)  # 單個(gè)進(jìn)程最大連接數(shù)(最大連接數(shù)=連接數(shù)*進(jìn)程數(shù))該值受體系進(jìn)程最大翻開文件數(shù)約束,需求運(yùn)用命令ulimit -n 檢查當(dāng)時(shí)設(shè)置  worker_connections 65535; }  #設(shè)定http服務(wù)器 http {  #文件擴(kuò)展名與文件類型映射表  #include 是個(gè)主模塊指令,能夠?qū)⒀b備文件拆分并引證,能夠減少主裝備文件的復(fù)雜度  include       mime.types;  #默許文件類型  default_type  application/octet-stream;  #charset utf-8; #默許編碼   #界說虛擬主機(jī)日志的格局  #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  #                  '$status $body_bytes_sent "$http_referer" '  #                  '"$http_user_agent" "$http_x_forwarded_for"';   #界說虛擬主機(jī)拜訪日志  #access_log  logs/access.log  main;   #敞開高效文件傳輸形式,sendfile指令指定nginx是否調(diào)用sendfile函數(shù)來輸出文件,關(guān)于一般運(yùn)用設(shè)為 on,假如用來進(jìn)行下載等運(yùn)用磁盤IO重負(fù)載運(yùn)用,可設(shè)置為off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,下降體系的負(fù)載。留意:假如圖片顯現(xiàn)不正常把這個(gè)改成off。  sendfile        on;  #autoindex on; #敞開目錄列表拜訪,合適下載服務(wù)器,默許封閉。   #防止網(wǎng)絡(luò)堵塞  #tcp_nopush     on;   #長(zhǎng)連接超時(shí)時(shí)刻,單位是秒,默許為0  keepalive_timeout  65;   # gzip緊縮功能設(shè)置  gzip on; #敞開gzip緊縮輸出  gzip_min_length 1k; #最小緊縮文件巨細(xì)  gzip_buffers    4 16k; #緊縮緩沖區(qū)  gzip_http_version 1.0; #緊縮版別(默許1.1,前端假如是squid2.5請(qǐng)運(yùn)用1.0)  gzip_comp_level 6; #緊縮等級(jí)  #緊縮類型,默許就現(xiàn)已包括text/html,所以下面就不必再寫了,寫上去也不會(huì)有問題,但是會(huì)有一個(gè)warn。  gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;  gzip_vary on; //和http頭有聯(lián)系,加個(gè)vary頭,給署理服務(wù)器用的,有的瀏覽器支撐緊縮,有的不支撐,所以防止浪費(fèi)不支撐的也緊縮,所以依據(jù)客戶端的HTTP頭來判斷,是否需求緊縮  #limit_zone crawler $binary_remote_addr 10m; #敞開約束IP連接數(shù)的時(shí)分需求運(yùn)用   # http_proxy服務(wù)大局設(shè)置  client_max_body_size   10m;  client_body_buffer_size   128k;  proxy_connect_timeout   75;  proxy_send_timeout   75;  proxy_read_timeout   75;  proxy_buffer_size   4k;  proxy_buffers   4 32k;  proxy_busy_buffers_size   64k;  proxy_temp_file_write_size  64k;  proxy_temp_path   /usr/local/nginx/proxy_temp 1 2;   # 設(shè)定負(fù)載均衡后臺(tái)服務(wù)器列表  upstream  backend.com  {  #ip_hash; # 指定支撐的調(diào)度算法  # upstream 的負(fù)載均衡,weight 是權(quán)重,能夠依據(jù)機(jī)器裝備界說權(quán)重。weigth 參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大。  server   192.168.10.100:8080 max_fails=2 fail_timeout=30s ;  server   192.168.10.101:8080 max_fails=2 fail_timeout=30s ;  }   #虛擬主機(jī)的裝備  server {  #監(jiān)聽端口  listen       80;  #域名能夠有多個(gè),用空格離隔  server_name  localhost fontend.com;  # Server Side Include,通常稱為服務(wù)器端嵌入  #ssi on;  #默許編碼  #charset utf-8;  #界說本虛擬主機(jī)的拜訪日志  #access_log  logs/host.access.log  main;   # 因?yàn)橐磺械牡刂范家?/ 開頭,所以這條規(guī)則將匹配到一切懇求  location / {  root   html;  index  index.html index.htm;  }   #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;  }   # 圖片緩存時(shí)刻設(shè)置  location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {  expires 10d;  }   # JS和CSS緩存時(shí)刻設(shè)置  location ~ .*.(js|css)?$ {  expires 1h;  }   #署理裝備  # proxy the PHP scripts to Apache listening on 127.0.0.1:80  #location /proxy/ {  #    proxy_pass   http://127.0.0.1;  #}   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  #  #location ~ \.php$ {  #    root           html;  #    fastcgi_pass   127.0.0.1:9000;  #    fastcgi_index  index.php;  #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  #    include        fastcgi_params;  #}   # deny access to .htaccess files, if Apache's document root  # concurs with nginx's one  #  #location ~ /\.ht {  #    deny  all;  #}  }   # another virtual host using mix of IP-, name-, and port-based configuration  #  #server {  #    listen       8000;  #    listen       somename:8080;  #    server_name  somename  alias  another.alias;   #    location / {  #        root   html;  #        index  index.html index.htm;  #    }  #}   # HTTPS server  #  #server {  #    listen       443 ssl;  #    server_name  localhost;   #    ssl_certificate      cert.pem;  #    ssl_certificate_key  cert.key;   #    ssl_session_cache    shared:SSL:1m;  #    ssl_session_timeout  5m;   #    ssl_ciphers  HIGH:!aNULL:!MD5;  #    ssl_prefer_server_ciphers  on;   #    location / {  #        root   html;  #        index  index.html index.htm;  #    }  #}

            上面的裝備文件不需求你每一行都看過來,你需求留意的地方如下:

            #作業(yè)形式與連接數(shù)上限 events {  # 參閱事情模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];  # epoll模型是Linux 2.6以上版別內(nèi)核中的高性能網(wǎng)絡(luò)I/O模型,假如跑在FreeBSD上面,就用kqueue模型。  #use epoll;  #connections 20000;  # 每個(gè)進(jìn)程答應(yīng)的最多連接數(shù)  # 單個(gè)進(jìn)程最大連接數(shù)(最大連接數(shù)=連接數(shù)*進(jìn)程數(shù))該值受體系進(jìn)程最大翻開文件數(shù)約束,需求運(yùn)用命令ulimit -n 檢查當(dāng)時(shí)設(shè)置  worker_connections 65535; }  http {  include       mime.types;   #文件擴(kuò)展名與文件類型映射表  default_type  application/octet-stream; #默許文件類型,默許為text/plain  #access_log off; #取消服務(wù)日志  log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自界說格局  access_log log/access.log myFormat;  #combined為日志格局的默許值  sendfile on;   #答應(yīng)sendfile方式傳輸文件,默許為off,能夠在http塊,server塊,location塊。  sendfile_max_chunk 100k;  #每個(gè)進(jìn)程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默許為0,即不設(shè)上限。  keepalive_timeout 65;  #連接超時(shí)時(shí)刻,默許為75s,能夠在http,server,location塊。   upstream mysvr {  server 127.0.0.1:7878;  server 192.168.10.121:3333 backup;  #熱備  }  error_page 404 https://www.baidu.com; #過錯(cuò)頁   server {  keepalive_requests 120; #單連接懇求上限次數(shù)。  listen       4545;   #監(jiān)聽端口  server_name  127.0.0.1;   #監(jiān)聽地址  location  ~*^.+$ {       #懇求的url過濾,正則匹配,~為區(qū)別巨細(xì)寫,~*為不區(qū)別巨細(xì)寫。  #root path;  #根目錄  #index vv.txt;  #設(shè)置默許頁  proxy_pass  http://mysvr;  #懇求轉(zhuǎn)向mysvr 界說的服務(wù)器列表  deny 127.0.0.1;  #回絕的ip  allow 172.18.5.54; #答應(yīng)的ip  }  }  }

            有時(shí)分面試官會(huì)問你,你們是怎樣修改裝備文件完成負(fù)載均衡的?


            經(jīng)過在 upstream 參數(shù)中添加的運(yùn)用服務(wù)器 IP 后添加指定參數(shù)即可完成,如:

            upstream tomcatserver1 {  server 192.168.72.49:8080 weight=3;  server 192.168.72.49:8081;  }   server {  listen       80;  server_name  8080.max.com;  #charset koi8-r;  #access_log  logs/host.access.log  main;  location / {  proxy_pass   http://tomcatserver1;  index  index.html index.htm;  }  }

            經(jīng)過以上裝備,便能夠完成,在拜訪 8080.max.com 這個(gè)網(wǎng)站時(shí),由于裝備了 proxy_pass 地址,一切懇求都會(huì)先經(jīng)過 Nginx 反向署理服務(wù)器,在服務(wù)器將懇求轉(zhuǎn)發(fā)給目的主機(jī)時(shí),讀取 upstream 為 tomcatsever1 的地址,讀取分發(fā)策略,裝備 tomcat1 權(quán)重為 3,所以 Nginx 會(huì)將大部分懇求發(fā)送給 49 服務(wù)器上的 tomcat1,也便是 8080 端口;較少部分給 tomcat2 來完成有條件的負(fù)載均衡,當(dāng)然這個(gè)條件便是服務(wù)器 1、2 的硬件指數(shù)處理懇求才能。


            面試官又問,你們是怎樣裝備完成反向署理的呢?

             server {  listen       80;  server_name  tomcat1.com;  #charset koi8-r;  #access_log  logs/host.access.log  main;  location  / {  proxy_pass   http://127.0.0.1:8280;  index  index.html index.htm;  }  } server {  listen       80;  server_name  tomcat2.com;  #charset koi8-r;  #access_log  logs/host.access.log  main;  location / {  proxy_pass   http://127.0.0.1:8281;  index  index.html index.htm;  }  }
            1. 翻開 /conf/nainx.conf 文件,刪去 server{ …… },或許注銷掉
            2. 重新添加 server{  }
            3. listen: 監(jiān)聽的端口號(hào)
            4. server_name: 拜訪域名
            5. location :這里裝備為 /   直接匹配端口下的默許 ROOT 下的項(xiàng)目,
            6. proxy_pass  :為項(xiàng)目的實(shí)踐拜訪地址


            然后重啟 Nginx 服務(wù)器就能夠啦!


            有時(shí)分面試官就會(huì)問你,你在運(yùn)用 Nginx 的時(shí)分做過哪些裝備,在裝備文件中改動(dòng)過那里,都有什么樣子的效果,把列出來的這一行代碼解說給面試官聽,那么至少你在面試官面前,現(xiàn)已把 Nginx 的比較重要的點(diǎn)解說了一下了,這樣也能添加咱們?nèi)肼毜囊恍﹦偎恪?