Nginx原理及其使用

2022-01-20 運維實習生

一、Nginx基本概念

1、什麼是nginx

- Nginx 是一個高性能的Web伺服器和反向代理伺服器,也可作為郵件代理伺服器;

- Nginx由俄羅斯人Igor Sysoev 採用C語言開發編寫,第一個版本公布於2004年10月4日;

- Nginx特點佔有內存少,並發能力強,以高性能,低消耗聞名,Nginx官方測試為5萬並發請求;

 

2、什麼是反向代理

2.1什麼是正向代理

正向代理,是在用戶端的。比如需要訪問某些國外網站,我們可能需要購買vpn。

並且vpn是在我們的用戶瀏覽器端設置的,瀏覽器先訪問vpn地址,vpn地址轉發請求,並最後將請求結果原路返回來。

 

2.2什麼是反向代理

反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取數據後,在返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器 IP 地址。

 

3、什麼是負載均衡

負載均衡(Load Balance),意思是將負載(工作任務,訪問請求)進行平衡、分攤到多個操作單元(伺服器,組件)上進行執行。是解決高性能,單點故障(高可用),擴展性(水平伸縮)的終極解決方案。

 

4、什麼是動靜分離

在Web開發中,通常來說,動態資源其實就是指那些後臺資源,而靜態資源就是指HTML,JavaScript,CSS,img等文件。

一般來說,都需要將動態資源和靜態資源分開,將靜態資源部署在Nginx上,當一個請求來的時候,如果是靜態資源的請求,就直接到nginx配置的靜態資源目錄下面獲取資源,如果是動態資源的請求,nginx利用反向代理的原理,把請求轉發給後臺應用去處理,從而實現動靜分離。

在使用前後端分離之後,可以很大程度的提升靜態資源的訪問速度,同時在開過程中也可以讓前後端開發並行可以有效的提高開發時間,也可以有些的減少聯調時間。

 

 

二、Nginx基本使用

1、nginx安裝

1.1安裝nginx依賴包

 

[root@server ~] yum -y install make zlibzlib-devel gcc-c++ libtool openssl openssl-devel pcre gcc編譯器     gccopenssl庫     openssl,openssl-develpcre庫           pcre,pcre-develzlib庫             zlib,zlb-devel

1.2安裝nginx

 

[root@server ~] cd /usr/local/[root@server local] lsbin games    lib    libexec              sbin   srcetc include  lib64  nginx-1.16.1.tar.gz  share[root@server local] tar -zxvfnginx-1.16.1.tar.gz[root@server local] cd nginx-1.16.1[root@server nginx-1.16.1] ./configure--prefix=/usr/local/nginx[root@server nginx-1.16.1] make &&make install

1、解壓nginx*.tar.gz

2、切換到nginx主目錄

3、執行配置命令 ./configure--prefix=/usr/local/nginx (--prefix是指定安裝路徑)

4、執行命令進行編譯

5、執行命令進行安裝

1.3啟動nginx

 

[root@server nginx-1.16.1] cd/usr/local/nginx/sbin/[root@server sbin] ./nginx

 

1、普通啟動

切換到nginx安裝目錄的sbin目錄,執行./nginx

2、通過配置文件啟動

./nginx -c /usr/local/nginx/conf/nginx.conf

1.4檢查

 

[root@server sbin] ps -ef | grep nginxroot     17806      1  0 00:24 ?        00:00:00 nginx: master process ./nginxnobody   17807  17806  0 00:24 ?        00:00:00 nginx: worker processroot     17809   9820  0 00:25 pts/0    00:00:00 grep --color=auto nginx[root@server sbin] netstat -ntulp | grep 80tcp       0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17806/nginx: master[root@server sbin] ./nginx -c/usr/local/nginx/conf/nginx.conf -tnginx: the configuration file/usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file/usr/local/nginx/conf/nginx.conf test is successful

 

1、通過進程檢查

master進程用於讀取配置文件,並且維護管理worker進程

worker進程對請求進行處理

2、通過查看埠

3、檢查配置文件

./nginx -c /usr/local/nginx/conf/nginx.conf-t

 

2、nginx常用命令

殺死進程kill -QUIT 主pid kill -TERM 主pid命令關閉./nginx -s stop重啟./nginx -s reload幫助 -?,-h              : this help -v                   : showversion and exit -V                  : show versionand configure options then exit -t                   : testconfiguration and exit -T                  : testconfiguration, dump it and exit -q                  : suppressnon-error messages during configuration testing  -ssignal        : send signal to a masterprocess: stop, quit, reopen, reload  -pprefix        : set prefix path (default:/usr/local/nginx/)  -cfilename    : set configuration file(default: conf/nginx.conf)  -gdirectives  : set global directives outof configuration file

 

3、nginx配置文件

配置文件路徑: [nginx安裝路徑]/conf/nginx.conf

比如這次環境的路徑在/usr/local/nginx/conf/nginx.conf

 

配置文件內容為

 

worker_processes  1; events {   worker_connections  1024;} http {   include       mime.types;   default_type application/octet-stream;    sendfile        on;    server {       listen       80;       server_name  localhost;        location / {           root   html;           index  index.html index.htm;       }        error_page   500 502 503 504  /50x.html;       location = /50x.html {           root   html;       }    }}

 

3.1worker配置

從配置文件開始到 events 塊之間的內容,主要會設置一些影響 nginx 伺服器整體運行的配置指令,主要包括配置運行 Nginx 伺服器的用戶(組)、允許生成的 worker process 數,進程PID 存放路徑、日誌存放路徑和類型以及配置文件的引入等。

 

 

worker_processes 設置nginx可以並發處理進程的大小

3.2events配置

events 塊涉及的指令主要影響 Nginx 伺服器與用戶的網絡連接,常用的設置包括是否開啟對多 work process下的網絡連接進行序列化,是否允許同時接收多個網絡連接,選取哪種事件驅動模型來處理連接請求,每個 word process 可以同時支持的最大連接數等。

 

events {   worker_connections  1024;}

 

worker_connections 設置nginxworker(進程)支持的最大連接數

3.3httpd配置

 

http {   include       mime.types;   default_type application/octet-stream;    sendfile        on;    server {       listen       80;       server_name  localhost;        location / {           root   html;           index  index.html index.htm;       }        error_page   500 502 503 504  /50x.html;       location = /50x.html {           root   html;       }    }}

 

這算是 Nginx 伺服器配置中最頻繁的部分,代理、緩存和日誌定義等絕大多數功能和第三方模塊的配置都在這裡。

需要注意的是: http 塊也可以包括http 全局塊、server 塊。

 http全局塊

http 全局塊配置的指令包括文件引入、MIME-TYPE 定義、日誌自定義、連接超時時間、單連結請求數上限等。

server 塊

這塊和虛擬主機有密切關係,虛擬主機從用戶角度看,和一臺獨立的硬體主機是完全一樣的,該技術的產生是為了節省網際網路伺服器硬體成本。

每個 http 塊可以包括多個 server 塊,而每個 server 塊就相當於一個虛擬主機。

而每個 server 塊也分為全局 server 塊,以及可以同時包含多個 locaton 塊。

      1、全局 server 塊

       最常見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或 IP 配置。

      2、 location 塊

       一個 server 塊可以配置多個location 塊

       這塊的主要作用是基於Nginx 伺服器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱(也可以是 IP 別名)之外的字符串(例如 前面的/uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊的配置也在這裡進行。

 

location 指令說明

該指令用於匹配 URL。語法如下:

= :用於不含正則表達式的 uri 前,要求請求字符串與uri 嚴格匹配,如果匹配成功,就停止繼續向下搜索並立即處理該請求。

~:用於表示 uri 包含正則表達式,並且區分大小寫。

~*:用於表示 uri 包含正則表達式,並且不區分大小寫。

^~:用於不含正則表達式的 uri 前,要求 Nginx 伺服器找到標識 uri 和請求字符串匹配度最高的location 後,立即使用此 location 處理請求,而不再使用 location塊中的正則 uri 和請求字符串做匹配

        注意:如果 uri 包含正則表達式,則必須要有~ 或者 ~* 標識。

 

三、Nginx反向代理配置

1、反向代理配置實例1

實驗環境 192.168.1.41

啟動一個tomcat    埠為8080

nginx使用默認埠80

訪問 http://192.168.1.41反向代理到 http://192.168.1.41:8080

 

1啟動一個tomcat埠8080

 

[root@server ~] yum -y install java[root@server local] ls/usr/local/apache-tomcat-7.0.96.tar.gz/usr/local/apache-tomcat-7.0.96.tar.gz[root@server local] tar -zxvfapache-tomcat-7.0.96.tar.gz[root@server local] cd apache-tomcat-7.0.96[root@server apache-tomcat-7.0.96]./bin/startup.sh[root@server apache-tomcat-7.0.96] netstat-ntulp | grep 8080tcp6      0      0 :::8080                 :::*                    LISTEN      9851/java

 

2配置nginx.conf

 

[root@server nginx] vim conf/nginx.conf   server {       listen       80;       server_name  192.168.1.41;        location / {           proxy_pass http://192.168.1.41:8080;           index  index.html index.htm;       }    }[root@server nginx] ./sbin/nginx

 

3驗證

 

2、反向代理配置實例2

實驗環境 192.168.1.41

啟動兩個tomcat    埠為8081,8082 

nginx使用埠32880

訪問 http://192.168.1.41:32880/test1/ 反向代理到http://192.168.1.41:8081/test1

訪問 http://192.168.1.41:32880/test2 反向代理到http://192.168.1.41:8082/test2

 

1啟動兩個tomcat    埠為8081,8082 

 

[root@server local] cd /usr/local/[root@server local] cp -rvf apache-tomcat-7.0.96tomcat1[root@server local] cp -rvfapache-tomcat-7.0.96 tomcat2[root@server local] cd tomcat1[root@server tomcat1] vim conf/server.xml<Server port="8006"shutdown="SHUTDOWN" <Connector port="8081"protocol="HTTP/1.1"              connectionTimeout="20000"               redirectPort="8443" /[root@server tomcat1] mkdir webapps/test1[root@server tomcat1] echo test1  webapps/test1/index.html[root@server tomcat1] ./bin/startup.shTomcat started.[root@server tomcat1] cd ../tomcat2[root@server tomcat2] vim conf/server.xml<Server port="8007"shutdown="SHUTDOWN" <Connector port="8082"protocol="HTTP/1.1"              connectionTimeout="20000"               redirectPort="8443" /[root@server tomcat2] mkdir webapps/test2[root@server tomcat2] echo test2  webapps/test2/index.html[root@server tomcat2] ./bin/startup.shTomcat started.[root@server tomcat2] netstat -ntulp | grep808tcp6      0      0 :::8081                 :::*                    LISTEN      10072/java         tcp6      0      0 :::8082                 :::*                    LISTEN      10136/java

 

2配置nginx.conf

 

[root@server tomcat2] vim/usr/local/nginx/conf/nginx.conf   server {       listen       32880;       server_name  192.168.1.41;          location /test1 {           proxy_pass http://192.168.1.41:8081;       }       location /test2 {           proxy_pass http://192.168.1.41:8082;       }    }[root@server tomcat2] /usr/local/nginx/sbin/nginx-s reload

 

3驗證

 

3、反向代理配置實例3

實驗環境192.168.1.41 192.168.1.42

在192.168.1.42啟動一個httpd 埠為80

nginx使用埠32881

訪問http://192.168.1.41:32881反向代理到http://192.168.1.42:80

 

1在192.168.1.42啟動一個httpd 埠為80

 

[root@localhost ~] yum -y install httpd[root@localhost ~] systemctl start httpd

 

2配置nginx.conf

 

[root@server ~] vim/usr/local/nginx/conf/nginx.conf   server {       listen       32881;       server_name  192.168.1.41;          location / {           proxy_pass http://192.168.1.42:80;           index  index.html index.htm;       }    }[root@server ~] /usr/local/nginx/sbin/nginx-s reload

 

3驗證


 

四、Nginx負載均衡配置

1、負載均衡配置實例1

實驗環境 192.168.1.41

啟動兩個tomcat 埠為8083 8085

nginx埠使用32882

訪問http://192.168.1.41:32882負載均衡到http://192.168.1.41:8083和http://192.168.1.41:8085

 

1啟動一個tomcat埠8080

 

[root@server local] cd /usr/local/[root@server local] cp -rvfapache-tomcat-7.0.96 tomcat3[root@server local] cp -rvfapache-tomcat-7.0.96 tomcat5[root@server local] cd tomcat3[root@server tomcat13 vim conf/server.xml<Server port="8008"shutdown="SHUTDOWN" <Connector port="8083"protocol="HTTP/1.1"              connectionTimeout="20000"               redirectPort="8443" /[root@server tomcat3] ./bin/startup.shTomcat started.[root@server tomcat5] cd ../tomcat4[root@server tomcat5] vim conf/server.xml<Server port="8010"shutdown="SHUTDOWN" <Connector port="8085"protocol="HTTP/1.1"              connectionTimeout="20000"               redirectPort="8443" /[root@server tomcat5] ./bin/startup.shTomcat started.[root@server tomcat5] netstat -ntulp | grep808tcp6      0      0 :::8083                 :::*                    LISTEN      10072/java         tcp6      0      0 :::8085                 :::*                    LISTEN      10136/java

 

2配置nginx.conf

 

[root@server ~] vim/usr/local/nginx/conf/nginx.conf   upstream myserver1{       ip_hash;       server 192.168.1.41:8083 weight=1;       server 192.168.1.41:8085 weight=1;    }   server{       listen       32882;       server_name  192.168.1.41;        location / {       proxy_pass http://myserver1;       }    }[root@server ~] /usr/local/nginx/sbin/nginx-s reload

 

3驗證


這樣看不出效果,因為兩個tomcat都長得一樣,如果想要有更直觀得效果,可以給兩個tomcat編寫不同得代碼。

2、負載均衡配置實例2

實驗環境 192.168.1.41 192.168.1.42 192.168.1.43

在192.168.1.42啟動一個httpd,在192.168.1.43啟動一個httpd

nginx埠使用32883

訪問http://192.168.1.41:32883負載均衡到http://192.168.1.42和http://192.168.1.43

 

1在192.168.1.42啟動一個httpd,在192.168.1.43啟動一個httpd

[root@client1 ~] yum -y install httpd[root@client1 ~] systemctl start httpd[root@client2 ~] yum -y install httpd[root@client2 ~] systemctl start httpd

 

2配置nginx.conf

 

  

 upstream myserver2{       server 192.168.1.42:80 weight=1;       server 192.168.1.43:80 weight=1;    }   server{       listen       32883;       server_name  192.168.1.41;        location / {       proxy_pass http://myserver2;       }    }[root@server ~] /usr/local/nginx/sbin/nginx-s reload

 

3驗證


這樣看不出效果,因為兩個http都長得一樣,如果想要有更直觀得效果,可以給兩個http編寫不同得代碼。

3、負載均衡策略

1、輪詢(默認)

每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器 down 掉,能自動剔除。

2、weight

weight 代表權,重默認為 1,權重越高被分配的客戶端越多

指定輪詢機率,weight 和訪問比率成正比,用於後端伺服器性能不均的情況。

3、ip_hash

每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session 的問題。例如:

4、fair(第三方)

按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

 

五、Nginx動靜分離配置

實驗環境 192.168.1.41 192.168.1.42

在192.168.1.42啟動一個tomcat,默認埠8080,模擬動態資源

在192.168.1.42啟動一個httpd,默認埠80,放置一些圖片模擬靜態資源

nginx埠使用32884

訪問http://192.168.1.41:32884直接跳轉192.168.1.42:8080訪問動態資源

訪問http://192.168.1.41:32884/image直接跳轉192.168.1.42/image訪問靜態資源

 

1在192.168.1.42啟動一個tomcat,默認埠8080,模擬動態資源

在192.168.1.42啟動一個httpd,默認埠80,放置一些圖片模擬靜態資源

 

[root@client1 local] ls/usr/local/apache-tomcat-7.0.96.tar.gz/usr/local/apache-tomcat-7.0.96.tar.gz[root@client1 local] tar -zxvfapache-tomcat-7.0.96.tar.gz[root@client1 local] cdapache-tomcat-7.0.96[root@client1 apache-tomcat-7.0.96]./bin/startup.shTomcat started.[root@client1 apache-tomcat-7.0.96] netstat-ntulp | grep 8080tcp6      0      0 :::8080                 :::*                    LISTEN      43444/java [root@client1 apache-tomcat-7.0.96] cd/var/www/html/[root@client1 html] mkdir image[root@client1 html] ls image/60ce3e23bbebfdf3a58c54705030e6f9cbcca934.jpgAutumn_in_Kanas_by_Wang_Jinyu.jpgBalloon_by_Matt_Benson.jpgBeach_by_Samuel_Scrimshaw.jpgbeijing.jpgdesktop.jpgf0df38ae0d5d668e448d12640810ee2065a6df64.jpg

 

2配置nginx.conf

 

    

   server {       listen       32884;       server_name  192.168.1.41;        location / {           proxy_pass http://192.168.1.42:8080;           index  index.html index.htm;       }       location /image {           proxy_pass http://192.168.1.42:80;           index  index.html index.htm;       }[root@server ~] /usr/local/nginx/sbin/nginx-s reload

 

3驗證


六、Nginx高可用配置

實驗環境192.168.1.41 192.168.1.42

 

1在兩個節點運行nginx和keepalived,nginx參照 安裝nginx和運行nginx

 

[root@server ~] yum -y install keepalived[root@client1 ~] yum -y install keepalived

 

2配置master節點

 

[root@master ~] cp/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak[root@server ~] vim /etc/keepalived/keepalived.confvrrp_script chk_http_port {        script "/usr/local/src/nginx_check.sh"       interval 2       weight 2}vrrp_instance VI_1 {       state MASTER       interface ens33       virtual_router_id 51       priority 100       advert_int 1       authentication {                auth_type PASS                auth_pass 1111       }       track_script {       chk_http_port       }       virtual_ipaddress {                192.168.1.5       }[root@client1 ~] vim/usr/local/src/nginx_check.shA=`ps -C nginx --no-header |wc -l`if [ $A -eq 0 ];then     systemctl start nginx     if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then              killall keepalived     fifi[root@client1 ~] systemctl start keepalived

 

3配置backup節點

 

[root@client1 ~] cp/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak[root@client1 ~] vim/etc/keepalived/keepalived.confvrrp_script chk_http_port {        script "/usr/local/src/nginx_check.sh"       interval 2       weight 2}vrrp_instance VI_1 {       state BACKUP       interface ens33       virtual_router_id 51       priority 99       advert_int 1       authentication {                auth_type PASS                auth_pass 1111       }       track_script {       chk_http_port       }       virtual_ipaddress {                192.168.1.5       }[root@client1 ~] vim/usr/local/src/nginx_check.shA=`ps -C nginx --no-header |wc -l`if [ $A -eq 0 ];then     systemctl start nginx     if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then              killall keepalived     fifi[root@client1 ~] systemctl start keepalived

 

4驗證

 

七、Nginx原理

master-workers 的機制的好處

首先,對於每個 worker 進程來說,獨立的進程,不需要加鎖,所以省掉了鎖帶來的開銷,同時在編程以及問題查找時,也會方便很多。其次,採用獨立的進程,可以讓互相之間不會影響,一個進程退出後,其它進程還在工作,服務不會中斷, master 進程則很快啟動新的worker 進程。當然, worker 進程的異常退出,肯定是程序有 bug 了,異常退出,會導致當前 worker 上的所有請求失敗,不過不會影響到所有請求,所以降低了風險

 

需要設置多少個 worker

Nginx 同 redis 類似都採用了 io 多路復用機制,每個worker 都是一個獨立的進程,但每個進程裡只有一個主線程,通過異步非阻塞的方式來處理請求,即使是千上萬個請求也不在話下。每個 worker 的線程可以把一個 cpu 的性能發揮到極致。所以 worker 數和伺服器的 cpu數相等是最為適宜的。設少了會浪費 cpu,設多了會造成 cpu 頻繁切換上下文帶來的損耗。

 

設置 worker 數量

 

worker_processes 4

work 綁定 cpu(4 work 綁定 4cpu)。

worker_cpu_affinity 0001 0010 0100 1000

work 綁定 cpu (4 work 綁定 8cpu 中的 4 個) 。

worker_cpu_affinity 0000001 0000001000000100 00001000

 

 

連接數 worker_connection

這個值是表示每個 worker 進程所能建立連接的最大值,所以,一個 nginx 能建立的最大連接數,應該是 worker_connections * worker_processes。當然,這裡說的是最大連接數,對於HTTP請 求 本 地 資 源 來 說 , 能 夠 支 持 的 最 大 並 發 數 量 是 worker_connections* worker_processes,如果是支持 http1.1 的瀏覽器每次訪問要佔兩個連接,所以普通的靜態訪問最大並發數是: worker_connections * worker_processes /2,而如果是 HTTP 作 為反向代理來說,最大並發數量應該是worker_connections * worker_processes/4。因為作為反向代理伺服器,每個並發會建立與客戶端的連接和與後端服務的連接,會佔用兩個連接。

 

 

相關焦點

  • nginx調用php-fpm的工作原理
    本文的主要內容為如何在nginx server中正確配置php調用方法,以及配置的基本原理。 一、nginx+php運行原理:首先簡單的講一講原理,目前主流的nginx+php的運行原理如下:1、nginx的worker進程直接管理每一個請求到nginx的網絡請求。
  • nginx的簡單使用
    apt-get install nginx啟動  nginx或者是找到安裝目錄 ./nginx停止命令 nginx -s stop完成當前任務停止 nginx -s quit在nginx已啟動的情況下重新加載配置文件
  • Nginx Ingress 控制器工作原理
    Nginx Ingress 控制器的工作原理,特別是 Nginx 模型的構建方式以及我們為何需要這個模型。我們使用 lua-nginx-module(https://github.com/openresty/lua-nginx-module) 達到這個目的。請通過 下面的內容 來了解有關操作方法的更多信息。2.
  • Ingress-nginx工作原理和實踐
    前端靜態資源服務), 根據十二要素應用的原 則,將後端 api 作為 nginx 服務的附加動態資源。我這裡web項目使用的是常見的Ingress-nginx (官方還有其他用途的 Ingress),Ingress-nginx 是使用nginx 作為反向代理和負載均衡器的 K8s Ingress Controller, 作為Pod運行在kube-system 命名空間。了解 Ingress 工作原理,有利於我們與運維人員打交道。
  • nginx精講—變量實現原理(下)
    nginx變量實現原理(上)    儘管是同一個變量,但在定義和索引的時候nginx會創建兩個ngx_http_variable_t結構體,然後分別存在於兩個不同的容器中。       在nginx內部創建和使用變量所需要的基本功能主要就是我們上面提到的知識,但就目前來說這些還只是一個一個的單獨的知識點,對於剛接觸nginx開發或者對nginx開發不太熟悉的同學來說仍然無法在腦中形成一個比較完整的變量開發輪廓,所以我們本小節會儘可能的把現有的知識點串起來,以便讓讀者在腦中有一個基本的輪廓。
  • 使用Nginx+Nginx-RTMP-Module+OBS推流搭建流媒體伺服器
    想以此為切入點研究一下各大視頻門戶的播放器原理。搭建推流伺服器的過程不是很難,涉及一點點伺服器的配置和RTMP模塊的使用。以前一直用的是Apache的伺服器,初嘗Nginx還未知其味,總體來說還是很有意義的。HLS (HTTP Live Streaming)是Apple的動態碼率自適應技術。
  • 全面剖析 PHP-FPM+Nginx 通信原理
    引言用了這麼久了PHP+Nginx了,你了解他們之間的通信原理嗎?
  • Nginx從基本原理到開發實踐
    至於靜態伺服器,只要用到了Nginx就會用它來存放圖片等靜態資源,無法從conf/nginx.conf中看出來。五、實踐——Nginx安裝使用(以CentOS 7.0為例)(本節使用截止2019/12/01最新nginx-1.16.1.tar.gz安裝演示,其他版本安裝相同)解壓Nginx:tar -zxvf nginx-1.16.1.tar.gz進入解壓目錄中:cd nginx-1.16.1.tar.gz.
  • 使用Nginx埠轉發來改善Zoho Mail收發速度
    Zoho Mail是一個國外郵件服務商,提供免費和收費郵箱業務,近期還推出了「MAIL LITE」套餐,最低只要1$/月,支持無限郵箱別名(僅限收費套餐),個人站長使用是非常不錯的選擇。不過Zoho Mail的郵件伺服器在美國,在國內延遲達到300ms,著實有點偏慢。
  • windows下安裝使用nginx
    ,也就是Linux系統下安裝使用的,這裡先在windows下做個演示。打開cmd命令窗口,切換到nginx的解壓目錄下,輸入命令nginx.exe 或者 start nginx。3、查看nginx是否啟動成功(1). 直接在瀏覽器輸入網址 http://localhost/:80,出現下圖說明啟動成功。
  • 在Nginx使用Lua擴展功能
    什麼是Nginx_Lua_ModuleNginx_Lua_Module是由淘寶的工程師清無(王曉哲)和春來(章亦春)所開發的Nginx第三方模塊,它能將Lua語言嵌入到Nginx配置中,從而使用Lua就極大增強了Nginx的能力。
  • kubernetes1.22安裝使用ingress-nginx
    運行原理ingress-nginx 控制器主要是用來組裝一個 nginx.conf 的配置文件,當配置文件發生任何變動的時候就需要重新加載 Nginx 來生效,但是並不會只在影響 upstream 配置的變更後就重新加載 Nginx,控制器內部會使用一個 lua-nginx-module 來實現該功能。
  • 在 Linux 上安裝 Nginx 搭建屬於自己的 Web 伺服器
    此外,如果您想知道如何使用免費的 Let's Encrypt SSL 證書來保護您的 Nginx,我建議您閱讀我們的指南Let's Encrypt:使用 Certbot 獲取免費的 SSL 證書(見 https://www.linuxmi.com/lets-encrypt-certbot-ssl.html )。目錄1.
  • 使用nginx部署網站
    如果伺服器有很多應用,藉助nginx不僅可以實現埠的代理,還可以實現負載均衡。本文將詳細介紹前端及nodeJS項目在伺服器配置時需要用到的nginx配置。安裝【卸載nginx】在介紹如何安裝nginx之前,先要介紹如何卸載nginx。因為nginx不正確的安裝,導致無法正常運行,所以需要卸載nginx。
  • 使用Nginx、Nginx Plus抵禦DDOS攻擊
    在很多使用NAT的網絡架構中,很多的客戶端使用網關的 IP 地址訪問公網資源。但是,即便如此,這樣的請求數和連接數也會遠少於 DDOS 攻擊。}如果你的網站僅允許特定的 IP 或 IP 段訪問,你可以結合使用 allow 和 deny 命令來限制僅允許你指定的 IP 地址訪問你的網站。
  • Nginx主配置文件nginx.conf史上超細中文詳解
    .. 1第2章 nginx配置解釋圖解... 1第3章 Nginx核心配置文件nginx.conf史上最細中文詳解... 23.1 定義Nginx運行的用戶和用戶組... 23.2 nginxworker進程數,即處理請求的進程(熟稱負責接客的服務員)... 23.3 cpu親和力配置,讓不同的進程使用不同的cpu. 2
  • 使用nginx搭建hls流媒體服務
    /configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf  --error-log-path=/etc/nginx/nginx-1.8.1/log/error.log --http-log-path=/etc/nginx/nginx-1.8.1/log/access.log  --pid-path=/etc/nginx
  • PHP安全:Nginx的使用安全
    1、運行安全嚴禁使用root帳戶運行Nginx(首字母大寫代表軟體,首字母小寫代表指令),應該使用nginx用戶或者nobody運行Nginx。在Nginx配置中使用user來指定Nginx worker進程運行用戶以及用戶組。
  • Docker 鏡像存儲原理及其漏洞掃描
    本節,我們在此基礎之上講解Docker鏡像的存儲原理及Clair的鏡像漏洞掃描原理。在Harbor倉庫中,已存儲了兩個鏡像文件CentOS:V7、CentOS:V8。我們的測試環境如下:當容器被刪除後,以下兩個目錄及其相關文件都被刪除:2c1139dee7939429583998a4a9d8c376fa88e0905c11cae19faab8d58b4c357e2c1139dee7939429583998a4a9d8c376fa88e0905c11cae19faab8d58b4c357e-init l
  • Nginx 反向代理簡單使用
    千萬不要再/usr/local 下建 nginx 目錄 否則安裝會出現問題,這個會安裝到/usr/local/nginx 下面準備工作