日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

nignx

發(fā)布時(shí)間:2025/4/14 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nignx 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.?? 什么是nginx

Nginx是一款高性能的http 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā),官方測(cè)試nginx能夠支支撐5萬并發(fā)鏈接,并且cpu、內(nèi)存等資源消耗卻非常低,運(yùn)行非常穩(wěn)定。

2.?? 應(yīng)用場(chǎng)景

1、http服務(wù)器。Nginx是一個(gè)http服務(wù)可以獨(dú)立提供http服務(wù)。可以做網(wǎng)頁靜態(tài)服務(wù)器。

2、虛擬主機(jī)。可以實(shí)現(xiàn)在一臺(tái)服務(wù)器虛擬出多個(gè)網(wǎng)站。例如個(gè)人網(wǎng)站使用的虛擬主機(jī)。

3、反向代理,負(fù)載均衡。當(dāng)網(wǎng)站的訪問量達(dá)到一定程度后,單臺(tái)服務(wù)器不能滿足用戶的請(qǐng)求時(shí),需要用多臺(tái)服務(wù)器集群可以使用nginx做反向代理。并且多臺(tái)服務(wù)器可以平均分擔(dān)負(fù)載,不會(huì)因?yàn)槟撑_(tái)服務(wù)器負(fù)載高宕機(jī)而某臺(tái)服務(wù)器閑置的情況。

3.?? nginx安裝

下載nginx:

?

官方網(wǎng)站:

http://nginx.org/

使用的版本是1.8.0版本。

?

Nginx提供的源碼。

1.1. 要求的安裝環(huán)境

1、需要安裝gcc的環(huán)境。yum install gcc-c++

2、第三方的開發(fā)包。

n? PCRE

?????? PCRE(Perl Compatible Regular Expressions)是一個(gè)Perl庫,包括 perl 兼容的正則表達(dá)式庫。nginx的http模塊使用pcre來解析正則表達(dá)式,所以需要在linux上安裝pcre庫。

yum install -y pcre pcre-devel

注:pcre-devel是使用pcre開發(fā)的一個(gè)二次開發(fā)庫。nginx也需要此庫。

n? zlib

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

yum install -y zlib zlib-devel

?

n? openssl

?????? OpenSSL 是一個(gè)強(qiáng)大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。

?????? nginx不僅支持http協(xié)議,還支持https(即在ssl協(xié)議上傳輸http),所以需要在linux安裝openssl庫。

yum install -y openssl openssl-devel

?

1.2. 安裝步驟

?

第一步:把nginx的源碼包上傳到linux系統(tǒng)

第二步:解壓縮

[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz

第三步:使用configure命令創(chuàng)建一makeFile文件。

./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \

--http-proxy-temp-path=/var/temp/nginx/proxy \

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi

注意:啟動(dòng)nginx之前,上邊將臨時(shí)文件目錄指定為/var/temp/nginx,需要在/var下創(chuàng)建temp及nginx目錄

[root@localhost sbin]# mkdir /var/temp/nginx/client -p

第四步:make

第五步:make install

?

?

1.3. 啟動(dòng)nginx

進(jìn)入sbin目錄

[root@localhost sbin]# ./nginx

?

關(guān)閉nginx:

[root@localhost sbin]# ./nginx -s stop

推薦使用:

[root@localhost sbin]# ./nginx -s quit

?

重啟nginx:

1、先關(guān)閉后啟動(dòng)。

2、刷新配置文件:

[root@localhost sbin]# ./nginx -s reload

?

1.4. 訪問nginx

?

默認(rèn)是80端口。

注意:是否關(guān)閉防火墻。

?

2.?? 配置虛擬主機(jī)

就是在一臺(tái)服務(wù)器啟動(dòng)多個(gè)網(wǎng)站。

如何區(qū)分不同的網(wǎng)站:

1、域名不同

2、端口不同

?

2.1. 通過端口區(qū)分不同虛擬機(jī)

Nginx的配置文件:

/usr/local/nginx/conf/nginx.conf

?

?

#user? nobody;

worker_processes? 1;

?

#error_log? logs/error.log;

#error_log? logs/error.log? notice;

#error_log? logs/error.log? info;

?

#pid??????? logs/nginx.pid;

?

?

events {

??? worker_connections? 1024;

}

?

?

http {

??? include?????? mime.types;

??? default_type ?application/octet-stream;

?

??? #log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '

??? #????????????????? '$status $body_bytes_sent "$http_referer" '

??? #????????????????? '"$http_user_agent" "$http_x_forwarded_for"';

?

??? #access_log? logs/access.log? main;

?

??? sendfile??????? on;

??? #tcp_nopush???? on;

?

??? #keepalive_timeout? 0;

??? keepalive_timeout? 65;

?

??? #gzip? on;

#一個(gè)server節(jié)點(diǎn)就是一個(gè)虛擬主機(jī)


? ? server {

??????? listen?????? 80;

??????? server_name? localhost;

?

??????? #charset koi8-r;

?

??????? #access_log? logs/host.access.log? main;

?#Html是nginx安裝目錄下的html目錄

??????? location / {

??????????? root?? html;

??????????? index? index.html index.htm;

??????? }

??? }

}

?

可以配置多個(gè)server,配置了多個(gè)虛擬主機(jī)。

?

添加虛擬主機(jī):

?

#user? nobody;

worker_processes? 1;

?

#error_log? logs/error.log;

#error_log? logs/error.log? notice;

#error_log? logs/error.log? info;

?

#pid??????? logs/nginx.pid;

?

?

events {

??? worker_connections? 1024;

}

?

?

http {

??? include?????? mime.types;

??? default_type? application/octet-stream;

?

??? #log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '

??? #????????????????? '$status $body_bytes_sent "$http_referer" '

??? #????????????????? '"$http_user_agent" "$http_x_forwarded_for"';

?

??? #access_log? logs/access.log? main;

?

??? sendfile??????? on;

??? #tcp_nopush???? on;

?

??? #keepalive_timeout? 0;

??? keepalive_timeout? 65;

?

??? #gzip? on;

?

??? server {

??????? listen?????? 80;

??????? server_name? localhost;

?

??????? #charset koi8-r;

?

??????? #access_log? logs/host.access.log? main;

?

??????? location / {

??? ????????root?? html;

??????????? index? index.html index.htm;

??????? }

??? }

??? server {

??????? listen????? ?81;

??????? server_name? localhost;

?

??????? #charset koi8-r;

?

??????? #access_log? logs/host.access.log? main;

?

??????? location / {

????????? ??root? ?html-81;

??????????? index? index.html index.htm;

??????? }

??? }

}

?

重新加載配置文件

[root@localhost nginx]# sbin/nginx -s reload

?

?

2.2. 通過域名區(qū)分虛擬主機(jī)

2.2.1.??? 什么是域名

域名就是網(wǎng)站。

www.baidu.com

www.taobao.com

www.jd.com

Tcp/ip

?

Dns服務(wù)器:把域名解析為ip地址。保存的就是域名和ip的映射關(guān)系。

一級(jí)域名:

Baidu.com

Taobao.com

Jd.com

二級(jí)域名:

www.baidu.com

Image.baidu.com

Item.baidu.com

三級(jí)域名:

1.Image.baidu.com

Aaa.image.baidu.com

?

一個(gè)域名對(duì)應(yīng)一個(gè)ip地址,一個(gè)ip地址可以被多個(gè)域名綁定。

?

本地測(cè)試可以修改hosts文件。

修改window的hosts文件:(C:\Windows\System32\drivers\etc)

可以配置域名和ip的映射關(guān)系,如果hosts文件中配置了域名和ip的對(duì)應(yīng)關(guān)系,不需要走dns服務(wù)器。

?

4.??? Nginx的配置

#user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}}server {listen 81;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html-81;index index.html index.htm;}}server {listen 80;server_name www.taobao.com;#charset koi8-r;#access_log logs/host.access.log main;location / {root html-taobao;index index.html index.htm;}}server {listen 80;server_name www.baidu.com;#charset koi8-r;#access_log logs/host.access.log main;location / {root html-baidu;index index.html index.htm;}} }

?

?

5. 什么是反向代理

正向代理

反向代理

返回代理服務(wù)器不提供服務(wù)器。也是請(qǐng)求的轉(zhuǎn)發(fā)。

?

6. Nginx實(shí)現(xiàn)反向代理

兩個(gè)域名指向同一臺(tái)nginx服務(wù)器,用戶訪問不同的域名顯示不同的網(wǎng)頁內(nèi)容。

兩個(gè)域名是www.sian.com.cn和www.sohu.com

nginx服務(wù)器使用虛擬機(jī)192.168.101.3?

?

?

?

第一步:安裝兩個(gè)tomcat,分別運(yùn)行在8080和8081端口。

第二步:啟動(dòng)兩個(gè)tomcat。

第三步:反向代理服務(wù)器的配置

upstream tomcat1 {server 192.168.25.148:8080;}server {listen 80;server_name www.sina.com.cn;#charset koi8-r;#access_log logs/host.access.log main;location / {proxy_pass http://tomcat1; index index.html index.htm;}}upstream tomcat2 {server 192.168.25.148:8081;}server {listen 80;server_name www.sohu.com;#charset koi8-r;#access_log logs/host.access.log main;location / {proxy_pass http://tomcat2; index index.html index.htm;}}

第四步:nginx重新加載配置文件

第五步:配置域名

在hosts文件中添加域名和ip的映射關(guān)系

192.168.25.148 www.sina.com.cn

192.168.25.148 www.sohu.com

7.?? 負(fù)載均衡

?

如果一個(gè)服務(wù)由多條服務(wù)器提供,需要把負(fù)載分配到不同的服務(wù)器處理,需要負(fù)載均衡。

?upstream tomcat2 {

?????? server 192.168.25.148:8081;

?????? server 192.168.25.148:8082;

? }

?

可以根據(jù)服務(wù)器的實(shí)際情況調(diào)整服務(wù)器權(quán)重。權(quán)重越高分配的請(qǐng)求越多,權(quán)重越低,請(qǐng)求越少。默認(rèn)是都是1

?

?

upstream tomcat2 {server 192.168.25.148:8081;server 192.168.25.148:8082 weight=2;}

?

?

8.?? Nginx的高可用(了解)

要實(shí)現(xiàn)nginx的高可用,需要實(shí)現(xiàn)備份機(jī)。

?

1.1. 什么是負(fù)載均衡高可用

?????? nginx作為負(fù)載均衡器,所有請(qǐng)求都到了nginx,可見nginx處于非常重點(diǎn)的位置,如果nginx服務(wù)器宕機(jī)后端web服務(wù)將無法提供服務(wù),影響嚴(yán)重。

?????? 為了屏蔽負(fù)載均衡服務(wù)器的宕機(jī),需要建立一個(gè)備份機(jī)。主服務(wù)器和備份機(jī)上都運(yùn)行高可用(High Availability)監(jiān)控程序,通過傳送諸如“I am alive”這樣的信息來監(jiān)控對(duì)方的運(yùn)行狀況。當(dāng)備份機(jī)不能在一定的時(shí)間內(nèi)收到這樣的信息時(shí),它就接管主服務(wù)器的服務(wù)IP并繼續(xù)提供負(fù)載均衡服務(wù);當(dāng)備份管理器又從主管理器收到“I am alive”這樣的信息時(shí),它就釋放服務(wù)IP地址,這樣的主服務(wù)器就開始再次提供負(fù)載均衡服務(wù)。

?

?

?

1.2. keepalived+nginx實(shí)現(xiàn)主備

1.2.1.??? 什么是keepalived

?????? keepalived是集群管理中保證集群高可用的一個(gè)服務(wù)軟件,用來防止單點(diǎn)故障。

????? Keepalived的作用是檢測(cè)web服務(wù)器的狀態(tài),如果有一臺(tái)web服務(wù)器死機(jī),或工作出現(xiàn)故障,Keepalived將檢測(cè)到,并將有故障的web服務(wù)器從系統(tǒng)中剔除,當(dāng)web服務(wù)器工作正常后Keepalived自動(dòng)將web服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的web服務(wù)器。

?

1.2.2.??? keepalived工作原理

?????? keepalived是以VRRP協(xié)議為實(shí)現(xiàn)基礎(chǔ)的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議。

?????? 虛擬路由冗余協(xié)議,可以認(rèn)為是實(shí)現(xiàn)路由器高可用的協(xié)議,即將N臺(tái)提供相同功能的路由器組成一個(gè)路由器組,這個(gè)組里面有一個(gè)master和多個(gè)backup,master上面有一個(gè)對(duì)外提供服務(wù)的vip(VIP = Virtual IP Address,虛擬IP地址,該路由器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該vip),master會(huì)發(fā)組播,當(dāng)backup收不到VRRP包時(shí)就認(rèn)為master宕掉了,這時(shí)就需要根據(jù)VRRP的優(yōu)先級(jí)來選舉一個(gè)backup當(dāng)master。這樣的話就可以保證路由器的高可用了。

?????? keepalived主要有三個(gè)模塊,分別是core、check和VRRP。core模塊為keepalived的核心,負(fù)責(zé)主進(jìn)程的啟動(dòng)、維護(hù)以及全局配置文件的加載和解析。check負(fù)責(zé)健康檢查,包括常見的各種檢查方式。VRRP模塊是來實(shí)現(xiàn)VRRP協(xié)議的。

?

詳細(xì)參考:Keepalived權(quán)威指南中文.pdf

?

1.2.3.??? keepalived+nginx實(shí)現(xiàn)主備過程

?

初始狀態(tài)

?

主機(jī)宕機(jī)

?

主機(jī)恢復(fù)

?

1.2.4.??? 高可用環(huán)境

兩臺(tái)nginx,一主一備:192.168.101.3和192.168.101.4

兩臺(tái)tomcat服務(wù)器:192.168.101.5、192.168.101.6

?

?

1.2.5.??? 安裝keepalived

?

?????? 分別在主備nginx上安裝keepalived,參考“安裝手冊(cè)”進(jìn)行安裝:

?

轉(zhuǎn)載于:https://www.cnblogs.com/huangjuncong/p/8034523.html

總結(jié)

以上是生活随笔為你收集整理的nignx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。