操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    ginx(發(fā)音為“engine X”)是一款高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP代理服務(wù)器。它因其穩(wěn)定性、豐富的功能集、簡單的配置和低資源消耗而廣受歡迎。Nginx常作為Web服務(wù)器來服務(wù)靜態(tài)文件,同時也被廣泛用作反向代理、負(fù)載均衡器和HTTP緩存。下面將介紹Nginx的一些基本用法。

    安裝Nginx

    在大多數(shù)Linux發(fā)行版中,你可以通過包管理器來安裝Nginx。以下是在一些流行發(fā)行版上安裝Nginx的命令:

    # 對于基于Debian(如Ubuntu)的系統(tǒng):
    sudo apt update
    sudo apt install nginx
    # 對于基于RPM的系統(tǒng)(如CentOS或Fedora):
    sudo yum install nginx # CentOS 7及之前版本
    sudo dnf install nginx # CentOS 8及Fedora

    安裝完成后,通常可以通過運行sudo systemctl start nginx來啟動Nginx服務(wù),并使用sudo systemctl enable nginx來設(shè)置開機自啟。

    配置Nginx

    Nginx的配置文件通常位于/etc/nginx/目錄下,主配置文件是nginx.conf。此外,還有/etc/nginx/sites-available//etc/nginx/sites-enabled/目錄,用于管理網(wǎng)站配置文件。在/etc/nginx/sites-enabled/目錄下的鏈接會指向/etc/nginx/sites-available/目錄下的實際配置文件,這樣便于管理多個網(wǎng)站。

    基本的服務(wù)器塊配置

    一個基本的Nginx服務(wù)器塊(server block)配置示例如下:

    server {
        listen 80;
        server_name example.com www.example.com;
    
        location / {
            root /var/www/example;
            index index.html index.htm;
        }
    
        error_page 500 502 503 504 /50x.html;
        location=/50x.html {
            root /usr/share/nginx/html;
        }
    }

    這個配置定義了一個監(jiān)聽80端口的服務(wù)器,當(dāng)請求example.comwww.example.com時,Nginx會查找/var/www/example目錄下的文件來響應(yīng)請求。location /塊指定了根位置的處理規(guī)則,而error_page指令則定義了錯誤頁面的處理。

    反向代理

    Nginx也可以用作反向代理服務(wù)器,將請求轉(zhuǎn)發(fā)到后端服務(wù)器。以下是一個簡單的反向代理配置示例:

    server {
        listen 80;
        server_name backend.example.com;
    
        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

    這個配置將backend.example.com的所有請求轉(zhuǎn)發(fā)到本地的8080端口。proxy_pass指令指定了后端服務(wù)器的地址,而proxy_set_header指令則用于傳遞一些必要的請求頭到后端服務(wù)器。

    管理和維護Nginx

    • 檢查配置文件的語法:在重載或重啟Nginx之前,可以使用sudo nginx -t命令來檢查配置文件的語法是否正確。
    • 重載Nginx配置:如果你修改了Nginx的配置文件,可以使用sudo nginx -s reload命令來重新加載配置,而無需停止服務(wù)。
    • 查看日志文件:Nginx的訪問日志和錯誤日志通常位于/var/log/nginx/目錄下,你可以通過查看這些日志文件來獲取有關(guān)請求和錯誤的詳細(xì)信息。

    總結(jié)

    Nginx是一款功能強大的Web服務(wù)器和反向代理服務(wù)器,其簡潔的配置和高效的性能使其成為許多Web應(yīng)用的首選。通過了解Nginx的基本用法,你可以輕松地配置和管理你的Web服務(wù)器,以滿足各種需求。

    前言

    Nginx("engine x")是一款是由俄羅斯的程序設(shè)計師Igor Sysoev所開發(fā) 高性能的 Web和 反向代理 服務(wù)器 ,也是一個 IMAP/POP3/SMTP 代理服務(wù)器。

    Nginx在部署網(wǎng)站時,可以說是小伙伴們的首選,當(dāng)然不能說全部項目都使用,對于一些小項目,直接IIS(.Net)、Tomcat(Java)等就搞定了,但對于大項目或微服務(wù)架構(gòu),Nginx肯定是少不了啦,一張圖看清Nginx有多火:

    Nginx之所以招人喜愛, 那是它本身性能好,支持并發(fā)量大,內(nèi)存消耗少,配置簡單,提供功能給力,最重要是開源免費。 接下來會挑重要的來說說,了解我的小伙伴都應(yīng)該知道,我喜歡邊實操,邊說理論;走起來~~~

    正文

    關(guān)于安裝我就不一步一步來演示啦,如果需要詳細(xì)安裝步驟,點 這里 ,菜鳥教程很詳細(xì)了,接下來就重點說說平時用得比較多的功能。

    以下演示是通過阿里云服務(wù)器演示,系統(tǒng)為Centos7,nginx版本為1.18.0。 用到連接云服務(wù)器的工具為Xshell6,上傳文件為Xftp 6.

    1. 配置文件解讀

    Nginx和Redis一樣,只需簡單的文件配置,就能輕松實現(xiàn)吊炸天的功能,所以先來了解一下配置文件內(nèi)容,不用太急著知道怎么用,接下來在功能實操的時候還會用到。

    nginx.conf文件是經(jīng)常需要配置的,我這里安裝完成之后,該配置文件的路徑見下圖:

    文件主要內(nèi)容如下:

    #指定用戶,可以不進(jìn)行設(shè)置
    #user  nobody;
    #Nginx進(jìn)程,一般設(shè)置為和CPU核數(shù)一樣
    worker_processes  1;   
    #錯誤日志存放目錄,可以根據(jù)后面的日志級別指定到不同目錄
    error_log  /var/log/nginx/error.log info;
    #進(jìn)程pid存放位置
    pid        /var/run/nginx.pid;
    
    events {
    	# 單個后臺進(jìn)程的最大并發(fā)數(shù)
        worker_connections  1024; 
    }
    
    http {
    	#文件擴展名與類型映射表,指定為當(dāng)前目錄下的 mime.types
        include       mime.types;
        #默認(rèn)文件類型
        default_type  application/octet-stream;  
        #設(shè)置日志顯示格式
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
    	#nginx訪問日志存放位置
        access_log  /var/log/nginx/access.log  main;   
        
        #開啟高效傳輸模式
        sendfile        on;   
        #tcp_nopush     on;    
    	#保持連接的時間,也叫超時時間
        keepalive_timeout  65;  
    	#開啟gzip壓縮
        #gzip  on;  
    	#server的配置可以單獨為一個子配置文件,避免單個配置文件過大
        server {
        	#配置監(jiān)聽端口
        	listen       80;  
            #配置域名
        	server_name  localhost;  
        	#charset koi8-r;     
        	#access_log  /var/log/nginx/host.access.log  main;
        	location / {
        		#指定默認(rèn)目錄
            	root   html;
                #默認(rèn)訪問頁面
            	index  index.html index.htm;    
        	}
    		# 指定http code 配置404頁面
        	#error_page  404              /404.html;   
    
        	# redirect server error pages to the static page /50x.html
        	#錯誤狀態(tài)碼的顯示頁面,配置后需要重啟
        	error_page   500 502 503 504  /50x.html;   
        	location=/50x.html {
            	root   html;
        	}
       }
    }

    在上面配置文件中,有幾個點需要注意:

    • http配置塊中可以配置多個server塊 ,而每個server塊就相當(dāng)于一個虛擬主機(后續(xù)會說到);
    • 在server塊中可以同時包含多個location塊
    • 在http配置塊中可以使用 include 目錄/*.conf; 指定子配置文件的位置,然后自動加載配置內(nèi)容進(jìn)來,避免單文件配置過大。

    2. 常用命令

    這里演示沒有配置環(huán)境變量,所以需要進(jìn)入nginx的安裝目錄(/usr/local/nginx/sbin)中進(jìn)行操作,進(jìn)入可以執(zhí)行以下命令:

    • 開啟nginx./nginx #啟動
    • 停止nginx# 方式1 ./nginx -s stop # 立即停止 # 方式2 ./nginx -s quit # 進(jìn)程完成當(dāng)前工作后再停止 # 方式3 killall nginx # 直接殺死進(jìn)程
    • 重新加載配置文件./nginx -s reload
    • 查看nginx的啟動情況ps aux|grep nginx
    • 查看端口號占用情況netstat -tlnp # 查看整體端口占用情況 netstat -tlnp|grep 端口號 # 查看指定端口的占用情況

    3. 常用功能實戰(zhàn)

    3.1 反向代理

    經(jīng)常有小伙伴要用google搜索資料,被無情地拒絕了,所以只能百度;如果非要用google進(jìn)行搜索咋弄? 翻墻(需要配置相關(guān)信息) ,其實本質(zhì)是 本機電腦借助代理服務(wù)器轉(zhuǎn)到對應(yīng)目標(biāo)服務(wù)器(小伙伴機器和代理服務(wù)器在同一個LAN內(nèi)) ,然后就可以間接獲取到信息啦,這種形式就叫 正向代理 。如下圖:

    反向代理與正向代理剛好相反, 反向代理和目標(biāo)服務(wù)器在同一個LAN內(nèi) ,小伙伴直接訪問反向代理服務(wù)器地址,由反向代理將請求轉(zhuǎn)發(fā)給目標(biāo)服務(wù)服務(wù)器,然后將結(jié)果返回給小伙伴。如下圖:

    案例演示:

    新建一個API項目,然后部署到云服務(wù)器上,通過nginx進(jìn)行反向代理,隱藏項目的真實地址,為了運行API項目,這里需要安裝.NetCore3.1的運行環(huán)境(不是開發(fā)就不用安裝SDK啦);

    #第一步,注冊 Microsoft 密鑰和存儲庫。安裝必需的依賴項。
    rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
    #第二步,安裝 .NET Core3.1 運行時,不是開發(fā)環(huán)境,就不需要安裝sdk
    yum install aspnetcore-runtime-3.1

    然后執(zhí)行 dotnet --version 命令,如果顯示對應(yīng)版本就可以繼續(xù)部署程序啦;

    創(chuàng)建一個TestWebAPI項目,將編譯之后的項目文件通過Xftp拷貝到云服務(wù)器上,然后將其啟動,如下:

    運行之后,由于阿里云云服務(wù)器的安全組沒有對外開放5000端口,所以外網(wǎng)是訪問不了的,但可以在服務(wù)器內(nèi)通過curl命令測試站點是否啟動,如下:

    我這個服務(wù)器,80端口是對外開放的,可以訪問到的,如下:

    所以現(xiàn)在我們通過nginx能訪問的80端口,反向代理到我們內(nèi)部開啟的測試項目,即5000那個端口。nginx配置如下:

    重啟nginx之后,就可以訪問啦,如下:

    關(guān)鍵知識:

    • 在Server塊中指定對外的端口和server_name(域名或IP);
    • 配置對應(yīng)Server塊中的location塊;配置location可以進(jìn)行正則匹配,語法如下:location [=| ~ | ~* |^~] uri{ } # 匹配的路徑=: 表示uri不包含正則表達(dá)式,要求請求字符串與uri嚴(yán)格匹配,只要匹配成功立即處理該請求,不再繼續(xù)尋求匹配的規(guī)則;~:用于表示uri中包含正則表達(dá)式,區(qū)分大小寫;~*:用于表示uri中包含正則表達(dá)式,不區(qū)分大小寫;^~:表示uri不包含正則表達(dá)式,找到請求字符串與uri匹配度最高的location后,然后立即處理請求。例:實操如下:
    • 在location中使用 proxy_pass 配置需要轉(zhuǎn)發(fā)到的目標(biāo)服務(wù)器地址;

    nginx反向代理好處:

    • 屏蔽目標(biāo)服務(wù)器的真實地址,相對安全性較好;
    • nginx的性能好,便于配置負(fù)載均衡和動靜分離功能,合理利用服務(wù)器資源。
    • 統(tǒng)一入口,當(dāng)做負(fù)載均衡時,不管目標(biāo)服務(wù)器怎么擴展部署,調(diào)用者只訪問代理服務(wù)器入口即可。

    3.2 負(fù)載均衡

    系統(tǒng)的高可用是比較重要的,所以站點會通常以集群的方式進(jìn)行部署, 但為了讓請求均勻分配到各服務(wù)器上,則就要用到負(fù)載均衡策略啦,不管是軟件的方式還是硬件的方式都可以實現(xiàn)(這里就不詳細(xì)列舉啦),大概模式如下圖:

    案例演示

    案例采用一個nginx作為反向代理,并通過簡單的配置實現(xiàn)負(fù)載均衡功能;由于設(shè)備有限,目標(biāo)服務(wù)器采用端口不同的形式進(jìn)行模擬,端口分別是5000和6000,然后在原來的 項目中增加一個獲取端口的接口 ,用于便于案例演示,代碼如下:

    然后將編譯完成之后的項目文件通過xFtp拷貝到云服務(wù)器上,然后用以不同端口的形式分別在不同終端啟動,命令如下:

    另外打開一個終端,如上圖一樣啟動項目,只是配置端口為5000打開,這樣項目就啟動了兩個(集群),接下來就通過配置nginx來實現(xiàn)負(fù)載均衡的功能。如下圖:

    nginx負(fù)載均衡策略

    如上演示,默認(rèn)情況下, nginx的負(fù)載均衡策略為輪詢 ,在實際應(yīng)用場景中可以根據(jù)需要配置其他策略,如下:

    • 輪詢:默認(rèn)就是,指每個請求按照請求順序逐一分配到不同到目標(biāo)服務(wù)器,如果目標(biāo)服務(wù)器有宕機的,還能自動剔除。
    • 權(quán)重(weight):通過配置權(quán)重來實現(xiàn)請求分配,目標(biāo)服務(wù)器配置的權(quán)重越高,被分配的請求越多。# 其他不變,只是在每個目標(biāo)服務(wù)器后面增加權(quán)重即可 upstream testloadbalance { server 127.0.0.1:5000 weight=5; server 127.0.0.1:6000 weight=10; }按照上面配置重啟nginx,多次請求測試,請求會更多地轉(zhuǎn)發(fā)到6000上面。
    • ip_hash:每個請求有對應(yīng)的ip,通過對ip進(jìn)行hash計算,根據(jù)這個結(jié)果就能訪問到指定的目標(biāo)服務(wù)器;這種方式可以保證對應(yīng)客戶端固定訪問到對應(yīng)的目標(biāo)服務(wù)器;# 其他不變,只是增加一個策略進(jìn)行 upstream testloadbalance { ip_hash; # 指定策略為通過ip進(jìn)行hash之后轉(zhuǎn)發(fā) server 127.0.0.1:5000; server 127.0.0.1:6000; }
    • fair:按目標(biāo)服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先被分配。關(guān)于這種模式需要額外安裝 nginx-upstream-fair ,然后配置一下策略即可,安裝就不具體演示,點擊上面鏈接進(jìn)入看說明;配置內(nèi)容如下:# 其他不變,只是增加一個策略進(jìn)行 upstream testloadbalance { fair; # 指定策略為fair server 127.0.0.1:5000; server 127.0.0.1:6000; }

    負(fù)載均衡的功能的配置是不是很簡單~~~,動動手感覺就是舒坦。

    3.3 動靜分離

    前后端分離開發(fā)的模式最近幾年是火得不行,在部署方面,為了提高系統(tǒng)性能和用戶體驗,也會將動靜分離部署,即將靜態(tài)資源(如html、js、css、圖片等)單獨部署一個站點,關(guān)于WebAPI獲取和處理信息單獨部署為一個站點。本質(zhì)還是通過location匹配規(guī)則,將匹配的請求進(jìn)行不同的處理即可。

    環(huán)境準(zhǔn)備

    在nginx安裝目錄下創(chuàng)建一個static目錄,用于存放相關(guān)靜態(tài)資源:

    結(jié)構(gòu)如下:

    動靜分離配置

    重啟nginx(或重新加載配置文件),然后訪問看效果:

    動靜分離思想就是這樣直觀,小伙伴可以根據(jù)自己的需要,定義location的匹配規(guī)則即可。

    4. 其他功能

    除了以上常用的功能,可能還有一些小功能也會常用到哦,比如 根據(jù)http狀態(tài)碼配置指定頁面、訪問權(quán)限控制、適配PC或移動端等 ,以下挑幾個平時比較常用的演示一把,如下:

    • 根據(jù)狀態(tài)碼配置指定頁面就拿平時常見的404舉例,默認(rèn)可能就是簡單的頁面提示,如下:但是對于很多企業(yè)都喜歡做自己個性化的頁面,還有一些用來做公益廣告等等;nginx配置很簡單,如下:其他http狀態(tài)碼也可以通過上面的方式進(jìn)行自定義頁面展示。
    • 訪問權(quán)限控制為了系統(tǒng)安全,會針對請求增加訪問權(quán)限控制,比如使用黑白名單的方式來進(jìn)行控制,將訪問IP加入到白名單就可以訪問,加入到黑名單就不可以訪問啦,如下:上圖是拒絕指定IP,如果是允許指定IP,可進(jìn)行如下配置,如下:location /weatherforecast/ { proxy_pass http://testloadbalance; # 這個ip是百度輸入ip查看到的,也可以通過nginx日志可以看 allow 223.88.45.26; }注: 如果在同一location塊中同時配置deny和allow,配置在最前面的會覆蓋下面的 ,如下:location /weatherforecast/ { proxy_pass http://testloadbalance; # deny all 放在前面,就所有不能訪問,deny all 會覆蓋下面配置 #deny all; allow 223.88.45.26; # deny all 放在后面,被上面allow進(jìn)行覆蓋 deny all; }
    • 適配PC或移動端現(xiàn)在的移動端好多都是采用H5的形式進(jìn)行開發(fā),或者是混合模式,所以也需要針對移動端部署對應(yīng)的站點,那用nginx如何自動適配PC還是移動端頁面呢?準(zhǔn)備環(huán)境在nginx安裝目錄中創(chuàng)建pcandmobile目錄,如下:目錄里面內(nèi)容如下:兩個index.html中的就只有一個h1標(biāo)簽,分別顯示“PC端頁面”和“移動端頁面” 文字。nginx配置location / { root pcandmobile/pc; # 默認(rèn)在pc目錄中找頁面 # 當(dāng)請求頭中User-Agent中匹配如下內(nèi)容時,就去mobile目錄找頁面 if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') { root pcandmobile/mobile; } index index.html; }運行效果如下:本質(zhì)就是判斷請求頭中User-Agent,只要匹配到移動端,就去找指定移動頁面就行啦。

    總結(jié)

    nginx的常用功能就先說到這吧,分享的功能對于搞開發(fā)的小伙伴來說應(yīng)該是隨便夠用了,如果需要深入,還得下下功夫;下次來說說如何配置高可用:主從模式、雙主模式。

    原文鏈接: http://www.cnblogs.com/zoe-zyq/p/14779429.html

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有