欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx多虛擬主機(jī)配置小結(jié)

 更新時(shí)間:2024年05月10日 10:09:49   作者:King Gigi.  
本文主要介紹了Nginx多虛擬主機(jī)配置小結(jié)

最近寫(xiě)公司項(xiàng)目,需要和前端小伙伴對(duì)接,但是有時(shí)候只是后端的一個(gè)bug,也不好意思一直讓前端小伙伴幫忙起服務(wù),所以想著直接拿測(cè)試包在本地起一個(gè)前端環(huán)境,這樣后續(xù)開(kāi)發(fā)比較方便;因?yàn)楣卷?xiàng)目有好幾個(gè),而且要部署到同一臺(tái)服務(wù)器,nginx就成了很好的選擇;

1、什么是Nginx?

Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。

Nginx是由伊戈?duì)?middot;賽索耶夫?yàn)槎砹_斯訪問(wèn)量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開(kāi)發(fā)的,第一個(gè)公開(kāi)版本0.1.0發(fā)布于2004年10月4日。

2011年6月1日,nginx 1.0.4發(fā)布。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好,中國(guó)大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。在全球活躍的網(wǎng)站中有12.18%的使用比率,大約為2220萬(wàn)個(gè)網(wǎng)站。

Nginx 是一個(gè)安裝非常的簡(jiǎn)單、配置文件非常簡(jiǎn)潔(還能夠支持perl語(yǔ)法)、Bug非常少的服務(wù)。Nginx 啟動(dòng)特別容易,并且?guī)缀蹩梢宰龅?*24不間斷運(yùn)行,即使運(yùn)行數(shù)個(gè)月也不需要重新啟動(dòng)。你還能夠不間斷服務(wù)的情況下進(jìn)行軟件版本的升級(jí)。

Nginx代碼完全用C語(yǔ)言從頭寫(xiě)成。官方數(shù)據(jù)測(cè)試表明能夠支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)的響應(yīng)。

2、Nginx作用?

Http代理,反向代理:作為web服務(wù)器最常用的功能之一,尤其是反向代理。

正向代理(代理客戶端,類似于VPN)

img

反向代理(代理服務(wù)器)

img

Nginx提供的負(fù)載均衡策略有2種:內(nèi)置策略和擴(kuò)展策略。

內(nèi)置策略為輪詢,加權(quán)輪詢,Ip hash。擴(kuò)展策略,就天馬行空,只有你想不到的沒(méi)有他做不到的。

輪詢

img

加權(quán)輪詢

img

iphash:對(duì)客戶端請(qǐng)求的ip進(jìn)行hash操作,然后根據(jù)hash結(jié)果將同一個(gè)客戶端ip的請(qǐng)求分發(fā)給同一臺(tái)服務(wù)器進(jìn)行處理,可以解決session不共享的問(wèn)題。

img

動(dòng)靜分離,在我們的軟件開(kāi)發(fā)中,有些請(qǐng)求是需要后臺(tái)處理的,有些請(qǐng)求是不需要經(jīng)過(guò)后臺(tái)處理的(如:css、html、jpg、js等等文件),這些不需要經(jīng)過(guò)后臺(tái)處理的文件稱為靜態(tài)文件。讓動(dòng)態(tài)網(wǎng)站里的動(dòng)態(tài)網(wǎng)頁(yè)根據(jù)一定規(guī)則把不變的資源和經(jīng)常變的資源區(qū)分開(kāi)來(lái),動(dòng)靜資源做好了拆分以后,我們就可以根據(jù)靜態(tài)資源的特點(diǎn)將其做緩存操作。提高資源響應(yīng)的速度。

img

3、Nginx的安裝

windows下安裝

1、下載nginx

http://nginx.org/en/download.html 下載穩(wěn)定版本。
以nginx/Windows-1.16.1為例,直接下載 nginx-1.16.1.zip。
下載后解壓,解壓后如下:

img

2、啟動(dòng)nginx

有很多種方法啟動(dòng)nginx

(1)直接雙擊nginx.exe,雙擊后一個(gè)黑色的彈窗一閃而過(guò)

(2)打開(kāi)cmd命令窗口,切換到nginx解壓目錄下,輸入命令 nginx.exe ,回車即可

3、檢查nginx是否啟動(dòng)成功

直接在瀏覽器地址欄輸入網(wǎng)址 http://localhost:80 回車,出現(xiàn)以下頁(yè)面說(shuō)明啟動(dòng)成功!

img

4、配置監(jiān)聽(tīng)

nginx的配置文件是conf目錄下的nginx.conf,默認(rèn)配置的nginx監(jiān)聽(tīng)的端口為80,如果80端口被占用可以修改為未被占用的端口即可。

img

當(dāng)我們修改了nginx的配置文件nginx.conf 時(shí),不需要關(guān)閉nginx后重新啟動(dòng)nginx,只需要執(zhí)行命令 nginx -s reload 即可讓改動(dòng)生效

5、關(guān)閉nginx

如果使用cmd命令窗口啟動(dòng)nginx, 關(guān)閉cmd窗口是不能結(jié)束nginx進(jìn)程的,可使用兩種方法關(guān)閉nginx

(1)輸入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)

(2)使用taskkill taskkill /f /t /im nginx.exe

taskkill /f /t /im nginx.exe 是一個(gè)Windows命令行命令,用于強(qiáng)制終止運(yùn)行中的名為“nginx.exe”的進(jìn)程及其所有子進(jìn)程。其中:

/f 表示強(qiáng)制結(jié)束進(jìn)程,不會(huì)出現(xiàn)確認(rèn)提示框。
/t 表示終止指定進(jìn)程及其所有子進(jìn)程。
/im 表示按進(jìn)程映像名稱終止進(jìn)程,即根據(jù)進(jìn)程名稱指定要終止的進(jìn)程。

這個(gè)命令可以在Windows系統(tǒng)下使用,需要在命令行窗口中輸入。它的作用是強(qiáng)制終止運(yùn)行中的nginx進(jìn)程,適用于nginx進(jìn)程崩潰或者無(wú)法正常退出等情況

linux下安裝

1、安裝gcc

安裝 nginx 需要先將官網(wǎng)下載的源碼進(jìn)行編譯,編譯依賴 gcc 環(huán)境,如果沒(méi)有 gcc 環(huán)境,則需要安裝:

yum install gcc-c++

2、PCRE pcre-devel 安裝

PCRE(Perl Compatible Regular Expressions) 是一個(gè)Perl庫(kù),包括 perl 兼容的正則表達(dá)式庫(kù)。nginx 的 http 模塊使用 pcre 來(lái)解析正則表達(dá)式,所以需要在 linux 上安裝 pcre 庫(kù),pcre-devel 是使用 pcre 開(kāi)發(fā)的一個(gè)二次開(kāi)發(fā)庫(kù)。nginx也需要此庫(kù)。命令:

yum install -y pcre pcre-devel

3、zlib 安裝

zlib 庫(kù)提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對(duì) http 包的內(nèi)容進(jìn)行 gzip ,所以需要在 Centos 上安裝 zlib 庫(kù)。

yum install -y zlib zlib-devel

4、OpenSSL 安裝OpenSSL 是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書(shū)封裝管理功能及 SSL 協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。
nginx 不僅支持 http 協(xié)議,還支持 https(即在ssl協(xié)議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫(kù)。

yum install -y openssl openssl-devel

5、下載安裝包

手動(dòng)下載.tar.gz安裝包,地址:https://nginx.org/en/download.html

img

下載完畢上傳到服務(wù)器上 /root

6、解壓

tar -zxvf nginx-1.18.0.tar.gzcd nginx-1.18.0

img

7、配置

使用默認(rèn)配置,在nginx根目錄下執(zhí)行

./configuremakemake install

查找安裝路徑: whereis nginx

img

4、Nginx常用命令

cd /usr/local/nginx/sbin/./nginx  啟動(dòng)
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加載配置文件
ps aux|grep nginx  查看nginx進(jìn)程

啟動(dòng)成功訪問(wèn) 服務(wù)器ip:80

img

注意:如何連接不上,檢查阿里云安全組是否開(kāi)放端口,或者服務(wù)器防火墻是否開(kāi)放端口!
相關(guān)命令:

# 開(kāi)啟
service firewalld start
# 重啟
service firewalld restart
# 關(guān)閉
service firewalld stop
# 查看防火墻規(guī)則
firewall-cmd --list-all
# 查詢端口是否開(kāi)放
firewall-cmd --query-port=8080/tcp
# 開(kāi)放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
# 重啟防火墻(修改配置后要重啟防火墻)
firewall-cmd --reload
# 參數(shù)解釋1、firwall-cmd:是Linux提供的操作firewall的一個(gè)工具;2、--permanent:表示設(shè)置為持久;3、--add-port:標(biāo)識(shí)添加的端口;

5、Nginx的配置?件

Nginx的配置?件是 nginx.conf ,?般位于 /etc/nginx/nginx.conf 。
可以使? nginx -t 來(lái)查看配置?件的位置和檢查配置?件是否正確。

配置?件分為以下?個(gè)部分:

# 全局塊
worker_processes 1;
events {
	# events塊
}
http {
	# http塊
	server {
		# server塊
		location / {
			# location塊
 		}
 	}
}

5.1、 全局塊

全局塊是配置?件的第?個(gè)塊,也是配置?件的主體部分,主要?來(lái)設(shè)置?些影響Nginx服務(wù)器整體運(yùn)?的配置指令,主要包括配置運(yùn)?Nginx服務(wù)器的?戶(組)、允許?成的worker process數(shù)、進(jìn)程PID存放路徑、?志存放路徑和類型以及配置?件引?等。

# 指定運(yùn)?Nginx服務(wù)器的?戶,只能在全局塊配置
# 將user指令注釋掉,或者配置成nobody的話所有?戶都可以運(yùn)?
# user [user] [group]
# user nobody nobody;
user nginx;
# 指定?成的worker進(jìn)程的數(shù)量,也可使??動(dòng)模式,只能在全局塊配置
worker_processes 1;
# 錯(cuò)誤?志存放路徑和類型
error_log /var/log/nginx/error.log warn;
# 進(jìn)程PID存放路徑
pid /var/run/nginx.pid;

5.2、events塊

events {
    # 指定使?哪種?絡(luò)IO模型,只能在events塊中進(jìn)?配置
    # use epoll
    # 每個(gè)worker process允許的最?連接數(shù)
     worker_connections 1024;
}

5.3、 http塊

http塊是配置?件的主要部分,包括http全局塊和server塊。

http {
    # nginx 可以使?include指令引?其他配置?件
     include /etc/nginx/mime.types;
     
    # 默認(rèn)類型,如果請(qǐng)求的URL沒(méi)有包含?件類型,會(huì)使?默認(rèn)類型
     default_type application/octet-stream; # 默認(rèn)類型
     
    # 開(kāi)啟?效?件傳輸模式
     sendfile on;
     
    # 連接超時(shí)時(shí)間
     keepalive_timeout 65;
     
    # access_log ?志存放路徑和類型
    # 格式為:access_log <path> [format [buffer=size] [gzip[=level]][flush=time] [if=condition]];
     access_log /var/log/nginx/access.log main;
     
    # 定義?志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
    # 設(shè)置sendfile最?傳輸?段??,默認(rèn)為0,表示不限制
    # sendfile_max_chunk 1m;
    
    # 每個(gè)連接的請(qǐng)求次數(shù)
    # keepalive_requests 100;
    
    # keepalive超時(shí)時(shí)間
     keepalive_timeout 65;
     
    # 開(kāi)啟gzip壓縮
    # gzip on;
    
    # 開(kāi)啟gzip壓縮的最??件??
    # gzip_min_length 1k;
    
    # gzip壓縮級(jí)別,1-9,級(jí)別越?壓縮率越?,但是消耗CPU資源也越多
    # gzip_comp_level 2;
    
    # gzip壓縮?件類型
    # gzip_types text/plain application/javascript application/xjavascript text/css application/xml text/javascript application/x-httpdphp image/jpeg image/gif image/png;
    
    # upstream指令?于定義?組服務(wù)器,?般?來(lái)配置反向代理和負(fù)載均衡
     upstream www.example.com {
        # ip_hash指令?于設(shè)置負(fù)載均衡的?式,ip_hash表示使?客戶端的IP進(jìn)?hash,這樣可以保證同?個(gè)客戶端的請(qǐng)求每次都會(huì)分配到同?個(gè)服務(wù)器,解決了session共享的問(wèn)題
         ip_hash;
        # weight ?于設(shè)置權(quán)重,權(quán)重越?被分配到的?率越?
         server 192.168.50.11:80 weight=3;
         server 192.168.50.12:80;
         server 192.168.50.13:80;
     }
     server {
     	proxy_pass http://www.example.com;
   		# 參考server塊的配置
     }
}

5.4、server塊

server塊是配置虛擬主機(jī)的,?個(gè)http塊可以包含多個(gè)server塊,每個(gè)server塊就是?個(gè)虛擬主機(jī)。

server {
    # 監(jiān)聽(tīng)I(yíng)P和端?
    # listen的格式為:
    # listen [ip]:port [default_server] [ssl] [http2] [spdy][proxy_protocol] [setfib=number] [fastopen=number] [backlog=number];
    # listen指令?常靈活,可以指定多個(gè)IP和端?,也可以使?通配符
    # 下?是?個(gè)實(shí)際的例?:
    # listen 127.0.0.1:80; # 監(jiān)聽(tīng)來(lái)?127.0.0.1的80端?的請(qǐng)求
    # listen 80; # 監(jiān)聽(tīng)來(lái)?所有IP的80端?的請(qǐng)求
    # listen *:80; # 監(jiān)聽(tīng)來(lái)?所有IP的80端?的請(qǐng)求,同上
    # listen 127.0.0.1; # 監(jiān)聽(tīng)來(lái)?來(lái)?127.0.0.1的80端?,默認(rèn)端?為80
     listen 80;
    # server_name ?來(lái)指定虛擬主機(jī)的域名,可以使?精確匹配、通配符匹配和正則匹配等?式
    # server_name example.org www.example.org; # 精確匹配
    # server_name *.example.org; # 通配符匹配
    # server_name ~^www\d+\.example\.net$; # 正則匹配
     server_name localhost;
    # location塊?來(lái)配置請(qǐng)求的路由,?個(gè)server塊可以包含多個(gè)location塊,每個(gè)location塊就是?個(gè)請(qǐng)求路由
    # location塊的格式是:
    # location [=|~|~*|^~] /uri/ { ... }
    # = 表示精確匹配,只有完全匹配上才能?效
    # ~ 表示區(qū)分??寫(xiě)的正則匹配
    # ~* 表示不區(qū)分??寫(xiě)的正則匹配
    # ^~ 表示普通字符匹配,如果匹配成功,則不再匹配其他location
    # /uri/ 表示請(qǐng)求的URI,可以是字符串,也可以是正則表達(dá)式
    # { ... } 表示location塊的配置內(nèi)容
     location / {
        # root指令?于指定請(qǐng)求的根?錄,可以是絕對(duì)路徑,也可以是相對(duì)路徑
         root /usr/share/nginx/html; # 根?錄
        # index指令?于指定默認(rèn)?件,如果請(qǐng)求的是?錄,則會(huì)在?錄下查找默認(rèn)?件
         index index.html index.htm; # 默認(rèn)?件
     }
    # 下?是?些location的示例:
     location = / {
     	 # 精確匹配請(qǐng)求
         root /usr/share/nginx/html;
         index index.html index.htm;
     }
     location ^~ /images/ { 
     	 # 匹配以/images/開(kāi)頭的請(qǐng)求
     	 root /usr/share/nginx/html;
     }
     location ~* \.(gif|jpg|jpeg)$ {
         # 匹配以gif、jpg或者jpeg結(jié)尾的請(qǐng)求
     	 root /usr/share/nginx/html;
     }
     location !~ \.(gif|jpg|jpeg)$ {
     	 # 不匹配以gif、jpg或者jpeg結(jié)尾的請(qǐng)求
    	 root /usr/share/nginx/html;
     }
     location !~* \.(gif|jpg|jpeg)$ { 
     	 # 不匹配以gif、jpg或者jpeg結(jié)尾的請(qǐng)求
    	 root /usr/share/nginx/html;
     }
    # error_page ?于指定錯(cuò)誤??,可以指定多個(gè),按照優(yōu)先級(jí)從?到低依次查找
     error_page 500 502 503 504 /50x.html; # 錯(cuò)誤??
     location = /50x.html {
    	 root /usr/share/nginx/html;
     }
}

6、實(shí)踐

反向代理:

	server {
        listen       9001;
        server_name  localhost;
		
		location ~ /eduservice/ {
				proxy_pass http://localhost:8001;
        }
        location ~ /eduoss/ {
				proxy_pass http://localhost:8002;
        }
        location ~ /eduvod/ {
				proxy_pass http://localhost:8003;
        }
		location ~ /educms/ {
				proxy_pass http://localhost:8004;
		}
		location ~ /edumsm/ {
				proxy_pass http://localhost:8005;
		}
		location ~ /educenter/ {
				proxy_pass http://localhost:8160;
		}
		location ~ /eduorder/ {
				proxy_pass http://localhost:8007;
		}
		location ~ /staservice/ {           
				proxy_pass http://localhost:8008;
		}
	}

多虛擬主機(jī):

  • 一個(gè)server塊即一個(gè)虛擬主機(jī)
server {  
        listen       81;  
        server_name  192.168.72.49;  
        #charset koi8-r;  
        #access_log  logs/host.access.log  main;  
        location / {  
            root   html-81;  
            index  index.html index.htm;  
        }         
    }  
server {  
        listen       82;  
        server_name  192.168.72.49;  
        #charset koi8-r;  
        #access_log  logs/host.access.log  main;  
        location / {  
            root   html-82;  
            index  index.html index.htm;  
        }          
    }

到此這篇關(guān)于Nginx多虛擬主機(jī)配置小結(jié)的文章就介紹到這了,更多相關(guān)Nginx多虛擬主機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • nginx反向代理后無(wú)限重定向的問(wèn)題解決方法

    nginx反向代理后無(wú)限重定向的問(wèn)題解決方法

    這篇文章主要為大家介紹了nginx反向代理后無(wú)限重定向的問(wèn)題解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 如何在nginx中配置緩存靜態(tài)文件

    如何在nginx中配置緩存靜態(tài)文件

    本篇文章主要介紹了如何在 nginx 中緩存靜態(tài)文件配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • upstream模塊在nginx配置文件中的作用詳解

    upstream模塊在nginx配置文件中的作用詳解

    這篇文章主要為大家介紹了upstream模塊在nginx配置文件中的作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • nginx https 443端口配置的方法

    nginx https 443端口配置的方法

    本文主要介紹了nginx https 443端口配置的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Nginx?配置?HTTPS的詳細(xì)過(guò)程

    Nginx?配置?HTTPS的詳細(xì)過(guò)程

    這篇文章主要介紹了Nginx?配置?HTTPS?完整過(guò)程,包括nginx?的?ssl?模塊安裝,ssl?證書(shū)部署,nginx.conf?配置,重啟?nginx無(wú)信息提示就成功啦,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Nginx負(fù)載均衡配置簡(jiǎn)單配置方法

    Nginx負(fù)載均衡配置簡(jiǎn)單配置方法

    Nginx作為負(fù)載均衡服務(wù)器,用戶請(qǐng)求先到達(dá)nginx,再由nginx根據(jù)負(fù)載配置將請(qǐng)求轉(zhuǎn)發(fā)至不同的Web服務(wù)器。下面通過(guò)本文給大家分享Nginx負(fù)載均衡配置簡(jiǎn)單配置方法,需要的的朋友參考下吧
    2017-08-08
  • 深入理解Nginx的proxy_cache模塊

    深入理解Nginx的proxy_cache模塊

    Nginx的proxy_cache模塊提供了強(qiáng)大而靈活的緩存功能,本文主要介紹了深入理解Nginx的proxy_cache模塊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Nginx的一些基本功能極速入門

    Nginx的一些基本功能極速入門

    本文主要介紹一些Nginx的最基本功能以及簡(jiǎn)單配置,但不包括Nginx的安裝部署以及實(shí)現(xiàn)原理。有興趣的可以了解一下。
    2016-12-12
  • Nginx?處理請(qǐng)求并發(fā)控制的過(guò)程分享

    Nginx?處理請(qǐng)求并發(fā)控制的過(guò)程分享

    Nginx?作為一款高性能的?Web?服務(wù)器和反向代理服務(wù)器,在處理請(qǐng)求的并發(fā)控制方面有著出色的表現(xiàn),這篇文章主要介紹了Nginx?處理請(qǐng)求的并發(fā)控制的過(guò)程,需要的朋友可以參考下
    2024-07-07
  • centos6.4下nginx1.12.1安裝教程

    centos6.4下nginx1.12.1安裝教程

    這篇文章主要為大家詳細(xì)介紹了centos6.4下nginx1.12.1安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評(píng)論