日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Nginx版本:nginx-1.12.2.tar.gz

內容介紹

一、 nginx 簡介

1、什么是 nginx 和可以做什么事情

Nginx 是高性能的 HTTP 和反向代理的服務器,處理高并發能力是十分強大的, 能經受高負 載的考驗,有報告表明能支持高達 50,000 個并發連接數,實際上能達到2~3萬個并發連接數

2、正向代理

需要在客戶端配置代理服務器進行指定網站訪問(代理的是客戶端)

Nginx入門的基本使用和配置詳解

 

3、反向代理

暴露的是代理服務器地址,隱藏了真實服務器 IP 地址(代理的是服務器端)

Nginx入門的基本使用和配置詳解

 

4、負載均衡

增加服務器的數量,然后將請求分發到各個服務器上,將原先請求集中到單個服務器上的 情況改為將請求分發到多個服務器上,將負載分發到不同的服務器,也就是我們所說的負載均衡

Nginx入門的基本使用和配置詳解

 

5、動靜分離

Nginx入門的基本使用和配置詳解

 

二、 Nginx 的安裝

1、準備工作

(1)打開虛擬機,使用遠程連接工具連接 linux 操作系統

(2)到 nginx 官網下載軟件: http://nginx.org/

2、開始進行 nginx 安裝,在linux系統的服務器端安裝

(1)安裝 pcre 依賴第一種方式:

第一步 聯網下載 pcre 壓縮文件依賴到自己的電腦中

命令: wget

http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

第二步 連接遠程服務器,把pcre 壓縮文件上傳到服務器中,然后解壓該壓縮文件

命令: tar –xvf pcre-8.37.tar.gz

第三步 進入 pcre-8.37.tar.gz解壓后的目錄,執行 ./configure , 執行完成后,再執行 make && make install 命令,完成pcre的安裝

第四步 查看pcre是否成功安裝的命令: pcre-config --version

(2)安裝 pcre 依賴第二種方式:

第一步 yum -y install pcre (yum命令直接自動下載并且安裝pcre)

第二步 查看pcre是否成功安裝的命令: pcre-config --version

(3)安裝 openssl 、 zlib 、 gcc 依賴

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

(4)安裝 nginx

第一步 聯網下載 nginx 壓縮文件依賴到自己的電腦中

nginx 官網下載軟件: http://nginx.org/

第二步 連接遠程服務器,把 nginx 壓縮文件上傳到服務器中,然后解壓該壓縮文件

執行命令: tar –xvf nginx-1.12.2.tar.gz

第三步 進入 nginx-1.12.2.tar.gz 解壓后的目錄,執行 ./configure 來進行檢查, 執行完成后,再執行 make && make install 命令,完成pcre的安裝

第四步 安裝完Nginx后,需要知道系統中多了哪些文件,它們都安裝到了那里。可以使用下面的命令進行查看: rpm -ql nginx 其中rpm 是linux的rpm包管理工具,-q 代表詢問模式,-l 代表返回列表,這樣我們就可以找到nginx的所有安裝位置了

第五步 安裝完Nginx后,會在usr下多出來一個文件夾local/nginx/nginx/sbin,在sbin里面有一個 nginx 啟動腳本,因此我們先執行命令 cd/usr/local/nginx/sbin 找到nginx這個啟動腳本,然后執行命令 ./nginx 來啟動nginx

第六步 執行命令: ps -ef | grep nginx 查看進程中是否有nginx,有就說明nginx啟動成功

第七步 用瀏覽器訪問nginx,在瀏覽器中輸入:127.0.0.1 查看效果

Nginx入門的基本使用和配置詳解

 

第八步 如果沒有顯示上圖中的內容,應該是服務端沒有開放80端口,把80端口開放一下就可以了

  • 查看開放的端口號
  • firewall-cmd --list-all
  • 設置開放的端口號
  • firewall-cmd --add-service=http –permanent
  • firewall-cmd --add-port=80/tcp --permanent
  • 重啟防火墻
  • firewall-cmd –reload

三、 Nginx 的常用命令和配置文件

Nginx 的常用命令

使用nginx操作命令,必須進入 nginx 目錄中才可以

cd /usr/local/nginx/sbin

1、查看 nginx 版本號

./nginx -v

2、產看 nginx 的狀態

ps -ef | grep nginx

3、啟動 nginx

./nginx

4、停止 nginx

./nginx -s stop

4、從容停止 nginx

./nginx -s quit

4、比較野蠻的,直接殺死nginx進程

./killall nginx

4、停止 nginx

./nginx -s stop

5、重新加載 nginx

./nginx -s reload

Nginx 的配置文件

Nginx 的配置文件的位置

1、查詢Nginx 的配置文件的位置,執行命令: rpm -ql nginx

  • 其中rpm 是linux的rpm包管理工具,-q 代表詢問模式,-l 代表返回列表,這樣我們就可以找到nginx的所有安裝位置了

2、配置文件的位置:cd
/usr/local/nginx/conf/nginx.conf

配置文件中的內容包含三部分內容:全局塊 、 events 塊 、 http 塊(包含http塊自身和server塊)

nginx.conf文件的內容如下:

# 第一部分:全局塊:配置服務器整體運行的配置指令
#運行用戶,默認即是nginx,可以不進行設置
user  nginx;
#Nginx進程,一般設置為和CPU核數一樣 -=> 處理并發數的配置
worker_processes  1;   
#錯誤日志存放目錄
error_log  /var/log/nginx/error.log warn;
#進程pid存放位置
pid        /var/run/nginx.pid;

# 第二部分:events 塊:影響 Nginx 服務器與用戶的網絡連接
events {
    worker_connections  1024; # 單個后臺進程的最大并發數
}

# 第三部分:http 塊:還包含兩部分:http 全局塊和server 塊
http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;   #nginx訪問日志存放位置

    sendfile        on;   #開啟高效傳輸模式
    #tcp_nopush     on;    #減少網絡報文段的數量

    keepalive_timeout  65;  #保持連接的時間,也叫超時時間

    #gzip  on;  #開啟gzip壓縮

    include /etc/nginx/conf.d/*.conf; #包含的子配置項位置和文件[server快]

復制代碼

nginx.conf文件的內容的最后一行,有一個子文件的配置項include /etc/nginx/conf.d/*.conf;,那我們打開這個include子文件配置項看一下里邊都有些什么內容,default.conf文件的內容如下:

server {
    listen       80;   #配置監聽端口
    server_name  localhost;  //配置域名

    #charset koi8-r;     
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;     #服務默認啟動目錄
        index  index.html index.htm;    #默認訪問文件
    }

    #error_page  404              /404.html;   # 配置404頁面

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;   #錯誤狀態碼的顯示頁面,配置后需要重啟
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the php scripts to Apache listening on 127.0.0.1:80
    #
    # ~ .php$ 是正則表達式,匹配以.php結尾的所有文件
    #location ~ .php$ {
    #    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; // deny是禁止訪問
    #    allow  all; // allow是允許訪問
    #}
}

復制代碼

四、 Nginx 配置實例 1 反向代理

反向代理指令:proxy_pass

server{
        listen 80; // 瀏覽器端訪問地址的端口號  
        # server_name 可以是網址域名; // 瀏覽器端訪問的地址  
        # server_name 192.168.191.34; // 瀏覽器端訪問的地址
        # location / {
               # proxy_pass http://123.com; // nginx 反向代理的地址,可以是域名
               # proxy_pass 192.168.23.45.8080; // nginx 反向代理的地址
        # };
        
        # ~ /edu/ 是正則表達式,區分大小寫,匹配的是edu目錄
        # ~* /edu/ 是正則表達式,不區分大小寫,匹配的是edu目錄
        # = /edu/ 是正則表達式,嚴格匹配,匹配的是edu目錄  
        location ~ /edu/ {
             proxy_pass 192.168.23.45.8081; // nginx 反向代理的地址
        };
        
        # ~ /vod/ 是正則表達式,匹配的是vod目錄
        location ~ /vod/ {
             proxy_pass 192.168.23.45.8082; // nginx 反向代理的地址
        }
}
復制代碼

反向代理還有些常用的指令,我在這里給大家列出:

  • proxy_set_header : 在將客戶端請求發送給后端服務器之前,更改來自客戶端的請求頭信息
  • proxy_connect_timeout: 配置Nginx與后端代理服務器嘗試建立連接的超時時間
  • proxy_read_timeout : 配置Nginx向后端服務器組發出read請求后,等待相應的超時時間
  • proxy_send_timeout:配置Nginx向后端服務器組發出write請求后,等待相應的超時時間
  • proxy_redirect : 用于修改后端服務器返回的響應頭中的Location和Refresh
  • 關于proxy代理指令的詳細信息: www.nginx.cn/doc/mail/ma…

五、 Nginx 配置實例 2 負載均衡

配置文件中的內容包含三部分內容:全局塊 、 events 塊 、 http 塊(包含http塊自身和server塊)

實現負載均衡主要在http塊和server塊里面配置

  • http塊的配置如下:
http {
	# ... 省略http塊默認帶有的配置
	upstream myserver {
            server 115.28.52.63:8080 ;
            server 115.28.52.63:8081 ;
        }	
}
復制代碼
  • server塊的配置如下:
aerver {
	location / {
    	... 省略location里面默認帶有的配置
        proxy_pass http://myserver; //myserver是上面創建的myserver服務名
        proxy_connect_timeout 10;
    }
}
復制代碼
  • Nginx 提供了幾種常用的負載均衡(load balance)的分配方式(策略)

1、輪詢(默認)

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

2、 weight

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

upstream server_pool {
  server 192.168.5.21 weight=10; // weight 代表權,重默認為 1,權重越高被分配的客戶端越多
  server 192.168.5.22 weight=10; 
}
復制代碼

3、 ip_hash

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

upstream server_pool {
  ip_hash;
  server 192.168.5.21:80;
  server 192.168.5.22:80;
}
復制代碼

4、 fair(第三方)

按后端服務器的響應時間來分配請求,響應時間短的優先分配

upstream server_pool {
  server 192.168.5.21:80;
  server 192.168.5.22:80;
  fair;
}
復制代碼

六、 Nginx 配置實例 3 動靜分離

1、什么是動靜分離?

Nginx 動靜分離簡單來說就是把動態跟靜態請求分開,不能理解成只是單純地把動態頁面和 靜態頁面物理分離。嚴格意義上說應該是動態請求跟靜態請求分開,可以理解成使用 Nginx 處理靜態頁面, Tomcat 處理動態頁面

動靜分離從目前實現角度來講大致分為兩種:

  • 一種是純粹把靜態文件獨立成單獨的域名,放在獨立的服務器上,也是目前主流推崇的方案
  • 另外一種方法就是動態跟靜態文件混合在一起發布,通過 nginx 來分開
Nginx入門的基本使用和配置詳解

 

2、動靜分離具體配置

  • 在 liunx 系統中準備靜態資源,用于進行訪問,在nginx里面,新建一個文件夾data
Nginx入門的基本使用和配置詳解

 

  • 配置文件中的內容包含三部分內容:全局塊 、 events 塊 、 http 塊(包含http塊自身和server塊)

在 nginx 配置文件中server塊中進行配置,server塊的配置如下:

aerver {
	server 80;
    server_name 192.168.17.129;
    
    #chartset koi8-r;
    #access_log log/host.access.log main;
    
    # 通過nginx實現靜態資源跳轉
    location /www/ {
    	# /data/是靜態資源目錄
        root /data/; 
        index index.html index.htm;
    }
    
    # 通過nginx實現靜態資源跳轉
    location /image/ {
        # /data/是靜態資源目錄
    	root /data/;
        # autoindex on是列出訪問目錄,可以不加
        autoindex on;
    }
}
復制代碼

七、 Nginx 的高可用集群

1、什么是 nginx 高可用?

服務器的主nginx掛掉了,但是我們依然可以成功的請求到數據

Nginx入門的基本使用和配置詳解

 

(1)需要兩臺帶有 nginx 的服務器

(2)需要 keepalived 軟件;類似于路由,里面通過腳本來檢查當前的 主服務器的nginx(主nginx) 是否還活著,如果活著就用,如果宕機死了,就去使用 從服務器的nginx(備份的nginx),在這個過程中,該軟件會向外提供一個虛擬IP,這個IP實際是不存在的,但是我們需要用這個虛擬IP去訪問

(3)需要虛擬 ip

2、配置高可用的準備工作

(1)需要兩臺服務器 192.168.17.129 和 192.168.17.131

(2)在兩臺服務器安裝 nginx 軟件

在上面有說明如何安裝nginx

(3)在兩臺服務器安裝 keepalived 軟件

1) 為了方便,可以直接使用 yum 命令進行安裝

yum install keepalived –y

安裝的版本是 keepalived.x86_64 0:1.3.5-8.el7_6.5

2)查看是否安裝成功:rpm -q -a keepalived

3)安裝之后,在 etc 目錄里面生成目錄 keepalived,目錄 keepalived里面有文件 keepalived.conf

3、完成高可用配置(主從配置,2個服務器都要配置)

(1)主要是修改
/etc/keepalived/keepalivec.conf 配置文件

# 全局定義
global_defs {
  notification_email {
  acassen@firewall.loc
  failover@firewall.loc
  sysadmin@firewall.loc
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 192.168.17.129
  smtp_connect_timeout 30
  router_id LVS_DEVEL # 服務器的主機的名字,可以訪問到主機
  # /etc/hosts 文件中,添加主機名字 例如:127.0.0.1 LVS_DEVEL
}

# 檢測腳本(查看nginx是否還活著)和權重參數
vrrp_script chk_http_port {
  script "/usr/local/src/nginx_check.sh" # 這個是自己創建的腳本文件位置
  interval 2 # 檢測腳本執行的間隔,2秒執行一次
  weight 2 # 權重
}

# 虛擬IP的配置,常用的配置
vrrp_instance VI_1 {
  state BACKUP # 備份服務器上將 MASTER 改為 BACKUP
  interface ens33 //服務器網卡名稱 使用ifconfig命令來查看
  virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
  priority 90 # 主、備機取不同的優先級,主機值較大,備份機值較小
  advert_int 1 # 心跳檢測,確認主服務器是否還活著,檢測間隔為1秒
  authentication {
    auth_type PASS # 權限校驗的方式:密碼
    auth_pass 1111 # 權限校驗的密碼:1111
  }
  virtual_ipaddress {
  	192.168.17.50 // VRRP H 虛擬地址
  }
}

復制代碼

(2)在/usr/local/src 添加檢測腳本文件nginx_check.sh

Nginx入門的基本使用和配置詳解

 

/usr/local/nginx/sbin/nginx 是nginx的啟動路徑

3)把兩臺服務器上 nginx 和 keepalived 啟動

啟動 nginx: ./nginx

啟動 keepalived: systemctl start keepalived.service

4、最終測試

1)在瀏覽器地址欄輸入 虛擬 ip 地址 192.168.17.50

Nginx入門的基本使用和配置詳解

 

2)把主服務器(192.168.17.129) nginx 和 keepalived 停止,再輸入 192.168.17.50查看效果

Nginx入門的基本使用和配置詳解

 

八、Nginx 的原理的簡單分析

1、 Nginx 的原理

是通過 mater 和 worker 來實現的

2、 worker 如何進行工作的?

默認只有一個master,多個worker,有請求過來后,首先master會收到,然后由mster告知worker有新的請求過來了,這時候woker通過爭搶機制,來得到這個新的請求,從來進行相應的處理

3、一個 master 和多個 woker 有好處

(1)可以使用 nginx –s reload 熱部署,利用 nginx 進行熱部署操作

(2)每個 woker 是獨立的進程,如果有其中的一個 woker 出現問題,其他 woker 獨立的, 繼續進行爭搶,實現請求過程,不會造成服務中斷

4、設置多少個 woker 合適

worker 數和服務器的 cpu 數相等是最為適宜的

5、連接數 worker_connection

(1)第一個:發送請求,占用了 woker 的幾個連接數?

答案: 2 或者 4 個

解析:nginx配置的動靜分離,請求靜態資源占用2個連接數,請求動態資源,因為要通過tomcat找數據庫的數據,所以占用4個連接數

(2)第二個: nginx 有一個 master,有四個 woker,每個 woker 支持最大的連接數 1024,支持的 最大并發數是多少?

普通的靜態訪問最大并發數是: worker_connections * worker_processes /2

普通的靜態訪問最大并發數是: 每個woker 支持最大的連接數 * woker個數 /2

而如果是 HTTP 作 為反向代理來說,最大并發數量是 worker_connections * worker_processes/4

而如果是 HTTP 作 為反向代理來說,最大并發數量是: 每個woker 支持最大的連接數 * woker個數 /4

原文鏈接:

https://juejin.cn/post/6933106590446944264

分享到:
標簽:Nginx
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定