日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx 简介和使用

發布時間:2024/7/5 Nginx 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx 简介和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • Nginx簡介
    • Nginx發展介紹
    • Nginx作者
    • 正向代理和反向代理概念
    • 網站代理服務器查看
  • Nginx環境搭建
    • 下載
    • 安裝前準備
    • 安裝
    • 啟動
    • 檢測Nginx是否啟動
    • 關閉
    • 重啟
  • Nginx核心配置文件說明
  • Nginx主要功能
    • 1、靜態網站部署
    • 2、負載均衡
        • 負載均衡概述
        • 負載均衡實現方式
        • Nginx負載均衡策略
        • 負載均衡其他配置
    • 3、靜態代理
        • 靜態代理實現方式
    • 4、動靜分離
    • 5、虛擬主機
        • 配置虛擬主機方式

Nginx簡介

Nginx發展介紹

Nginx 是一個高性能的(靜態)Web服務器和反向代理服務器,也可以作為郵件代理服務器。
Nginx特點是占用內存少,并發處理能力強,以高性能、第系統資源消耗而聞名,Nginx官方測試為5萬并發請求。與Nginx同類型的Web服務器還有Apache Lighttpd、Tengine(阿里巴巴的)等。國內互聯網中大量使用了Nginx,比如新浪、網易、美團、搜狐等。
Nginx是免費開源的,同時Nginx也有收費的商業版本,商業版本提供了性能優化、宕機等緊急問題處理等技術支持和服務。

傳統方式:

問題:tomcat連接數量有上限,超過之后其他人訪問就要排隊了,用戶體驗下降
改進:建立tomcat集群,采用Nginx進行反向代理。

Nginx作者

伊戈爾·賽索耶夫,俄羅斯,c語言開發的

正向代理和反向代理概念

反向代理(Reverse Proxy) 方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器;
正向代理 類似一個跳板機,代理訪問外部資源。比如:我是一個用戶,我訪問不了某個網站,但是我能訪問一個代理服務器,這個代理服務器,它能幫我訪問我訪問不了的網站,于是我先連上代理服務器,告訴他我需要訪問的網站,代理服務器去取回來,返回給我。
總結:正向代理代理對象是客戶端,反向代理代理對象是服務端

網站代理服務器查看

  • 淘寶:tengine
  • 網易:nginx

Nginx環境搭建

下載

免費開源網站:http://nginx.org
下載Linux版本的nginx-1.14.2.tar.gz
方式一:直接在Linux輸入命令 wget http://nginx.org/download/nginx-1.14.2.tar.gz
方式二:先下載下來,再上傳到linx服務器的/home/soft/目錄下

安裝前準備

Nginx的安裝需要確定Linux安裝相關的幾個庫,否則配置和變異會出現錯誤;
執行下面命令:(如果存在則跳過,不存在就下載)

yun install gcc openssl-devel pcre pcre-devel zlib zlib-devel -y

安裝

  • 解壓下載下來的nginx文件
  • tar -zxvf nginx-1.14.2.tar.gz
  • 切換至解壓后的nginx主目錄
  • cd nginx-1.14.2
  • 安裝到指定安裝路徑下
  • ./configure --prefix=/user/local/nginx
  • 編譯
  • make
  • 安裝
  • make install

    安裝成功后,可以切換到/user/local/nginx目錄下,查看nginx內容:

    • conf/nginx.conf :主配置文件
    • html/50x.html:錯誤頁面
    • html/index.html:歡迎首頁面
    • logs/:日志文件存放目錄
    • sbin/nginx:啟動命令

    上述過程如下:





    啟動

  • 普通啟動
    切換到nginx安裝目錄的sbin目錄下,執行 ./nginx

  • 配置文件啟動
    sbin目錄下執行./nginx -c /user/local/nginx/conf/nginx.conf -t
    或者直接執行/user/local/nginx/sbin/nginx -c /user/local/nginx/conf/nginx.conf -t
    其中 -c 指定配置文件,且配置文件路徑必須是絕對路徑
    其中 -t 是檢查配置文件,可以知道配置文件是否正確

  • 檢測Nginx是否啟動

  • 查看進程:ps -ef | grep nginx

    nginx體系結構由 master 進程和其 worker 進程組成
    master 進程讀取配置文件,并維護 worker 進程,而 worker 進程則對請求進行實際處理
  • 在瀏覽器輸入 http://服務器![在這里插入圖片描述](https://img-blog.csdnimg.cn/20210128175150122.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzkxMzA0Mg==,size_16,color_FFFFFF,t_70) ip地址:80 訪問Nginx服務器,出現界面(關閉防火墻)
  • 關閉

  • 優雅關閉
    找出nginx進程號:ps -ef | grep nginx
    殺死master進程:kill -QUIT master-pid

  • 快速關閉
    找出nginx進程號:ps -ef | grep nginx
    殺死master進程:kill -TERM master-pid

  • 優雅關閉:命令執行后,nginx服務器不再接收請求,但要把之前的請求處理完畢之后再關閉,可能需要一段時間。
    快速關閉:命令執行后,nginx服務器不管請求是否處理完成,直接關閉,比較暴力,快速快。
    使用kill -9 pid 只能殺死一個pid進程,比如殺死master進程,但worker進程還在,所以就不要用 -9 了。

    重啟

    執行命令 nginx -s reload,包含關閉和啟動兩個操作。

    Nginx核心配置文件說明

    Nginx核心配置文件在Nginx安裝目錄/user/local/nginx/conf目錄下,名為nginx.conf。

    Nginx核心配置文件主要由三部構成:

  • 基礎配置
  • events配置
    worker_connections最大65535
    nginx并發量=worker_processes x worker_connections
  • http配置

    一個http里面可能有多個server,保證多個server的端口號和服務名不完全一樣即可:
  • Nginx主要功能

    1、靜態網站部署

    Nginx 是一個 HTTP 的 Web 服務器,可以將服務器上的靜態文件(如HTML、圖片等)通過 HTTP 協議返回給瀏覽器客戶端。

  • 在服務器 /opt/www/ace/ 目錄下部署靜態資源 login.html
  • 修改nginx核心配置文件,位于/user/local/nginx/conf/nginx.conf

    注意:root 的值(/opt/www)對應 /ace 中 / 的值,所以,當請求的 url 為 /ace時,請求資源路徑為 /opt/www/ace。
  • 啟動nginx,瀏覽器訪問:http://服務器ip地址:80/ace
  • 2、負載均衡

    負載均衡概述

    網站創立初期,一般使用單機對外提供集中式服務。隨著業務量增大,一臺服務器不夠用,此時就回把多臺機器組成一個集群提供對外服務,但是,我們的網站對外提供的訪問入口通常只有一個,比如 www.web.com。那么當用戶在瀏覽器上輸入www.web.com進行訪問的時候,如何將用戶的請求分發到集群中不同的機器上呢,這就是負載均衡要做的事情。

    負載均衡通常是指將請求“均勻”分攤到集群中多個服務器節點上執行,這里的均勻是指在一個比較大的統計范圍內是基本均勻的,并不是完全均勻。

    負載均衡實現方式

  • 硬件負載均衡
    比如 F5、深信服、Array 等
    優點:有廠商專業的技術服務團隊提供支持,性能穩定
    缺點:費用昂貴,對于規模小的網絡應用成本高
  • 軟件負載均衡
    比如 Nginx、LVS、HAProxy
    優點:免費開源、成本低廉
  • Nginx負載均衡
    Nginx通過在nginx.conf文件進行配置,即可實現負載均衡(默認輪詢策略)

    upstream是配置nginx與后端服務器負載均衡非常重要的一個模塊,并且它還能對后端的服務器的健康狀態進行檢查,若后端服務器中的一臺發生故障,則前端的請求不會轉發到該故障機器。
  • Nginx負載均衡策略

  • 輪詢(默認)
  • upstream backserver{server 192.168.0.1:80;server 192.168.0.2:80; }

    注意:這里的輪詢并不是每個請求輪流分配到不同的后端服務器,與ip_hash類似,但是按照訪問url的hash結果來分配請求,使得每個url定向到同一個后端服務器,主要應用于后端服務器為緩存時的場景。如果后端服務器down掉,將自動提出

  • 權重
  • upstream backserver{server 192.168.0.1:80 weight=5;server 192.168.0.2:80 weight=2; }

    每個請求按一定比例分發到不同的后端服務器,weight 值越大訪問的比例越大,用于后端服務器性能不均勻的情況。
    weight值5和2,代表服務器192.168.0.1處理5個請求的時間和服務器192.168.0.2處理2個請求的時間是一樣的。

  • ip_hash
    算法:hash(“192.168.0.1”)%2=0,1
  • upstream backserver{ip_hash;server 192.168.0.1:80 weight=5;server 192.168.0.2:80 weight=2; }

    ip_hash也叫做IP綁定,每個請求按訪問ip的hash值分配,這樣每個訪問客戶端會固定訪問一個后端服務器,可以解決會話Session丟失問題。但可能會導致某臺服務器壓力過大。

  • 最少連接
  • upstream backserver{least_conn;server 192.168.0.1:80 weight=5;server 192.168.0.2:80 weight=2; }

    web請求會被轉發到連接數量最少的服務器上。

    負載均衡其他配置

    • 配置1:
    upstream backserver{server 192.168.0.1:80;# 其他所有的非backup機器down的時候,才會請求backup機器。server 192.168.0.2:80 backup; }
    • 配置2:
    upstream backserver{server 192.168.0.1:80;# down表示當前server是down的狀態,不參與負載均衡。server 192.168.0.2:80 down; }

    一般在項目升級的時候,可以先對backup服務器升級(用戶訪問不到),然后取消其backup狀態,并設置其他服務器為down,再升級其他的服務器,升級完畢取消down的狀態即可。然后對Nginx重新reload,reload不會影響用戶的訪問,或者可以給一個提示頁面,系統正在升級。

    3、靜態代理

    把所有靜態資源的訪問改為訪問nginx,而不是訪問tomcat,這種方式叫靜態代理。因為nginx更擅長靜態資源的處理,性能更好,效率更高

    所以在實際應用中,我們將靜態資源比如圖片、css、html、js等交給nginx處理,而不是由tomcat處理。

    靜態代理實現方式

    方式一、在 nginx.conf 的 location 中配置靜態資源的后綴
    例如:當訪問靜態資源,則從 linux 服務器 /opt/static 目錄下獲取

    location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)${root /opt/static; }

    說明:

    • ~表示正則匹配,也就是說后面的內容可以是正則表達式匹配
    • 第一個 . 表示任意字符
    • * 表示一個或者多個字符
    • \.是轉義字符,是后面這個點的轉義字符
    • | 表示或者
    • $ 表示結尾

    整個配置表示以 .js/css/html…為后綴結尾的文件都由nginx處理,返回靜態資源的目錄為/opt/static,要注意目錄權限問題,如果權限不足,就給目錄賦予權限;否則會出現403錯誤 chmod 755

    方式二、在 nginx.conf 的 location 中配置靜態資源所在目錄實現
    例如:當訪問靜態資源,則從 linux 服務器 /opt/static 目錄下獲取

    location ~ .*/(js|css|img|images)${root /opt/static; }

    整個配置表示訪問路徑 xxx/css、xxx/js、xxx/img、xxx/images 時由nginx處理,返回靜態資源的目錄為/opt/static。

    4、動靜分離

    靜態資源由nginx處理
    動態資源由tomcat處理
    架構圖如下:

    中間負責負載均衡的Nginx的配置:


    右下角負責靜態資源代理的Nginx的配置:

    5、虛擬主機

    虛擬主機,就是把一臺物理服務器劃分成多個“虛擬”的服務器,這樣我們的一臺物理服務器就可以當做多個服務器來使用,從而可以配置多個網站。

    Nginx提供虛擬主機這個功能,就是為了讓我們不需要安裝多個Nginx,就可以運行多個域名不同的網站。

    Nginx下,一個server標簽就是一個虛擬主機。nginx的虛擬主機就是通過nginx.conf中server節點指定的,想要設置多個虛擬主機,配置多個server節點即可。

    例如:www.meituan.com 切換城市,可以看到不同的城市地址不一樣(二級域名)
    如果一個公司有多個二級域名,沒有必要為每個二級域名都提供一臺Nginx服務器,就可以使用虛擬主機技術,在一臺ngnix服務器上,模擬多個虛擬服務器。

    配置虛擬主機方式

    方式一、基于端口的虛擬主機(了解)

    基于端口的虛擬主機配置,使用端口來區分。由于一般我們不寫端口號,這個一般就不用。

    server{listen 8080;server_name www.myweb.com;location /myweb{proxy_pass http://www.myweb1.com;} } server{listen 8081;server_name www.myweb.com;location /myweb{proxy_pass http://www.myweb2.com;} }

    方式二、基于域名的虛擬主機(掌握)

    基于域名的虛擬主機配置,使用域名來區分。常用方式。

    server{listen 80;server_name www.myweb1.com;location /myweb{proxy_pass http://www.myweb1.com;} } server{listen 80;server_name www.myweb2.com;location /myweb{proxy_pass http://www.myweb2.com;} }

    需要修改本地hosts文件:

    192.168.21.1 www.myweb1.com 192.168.21.1 www.myweb2.com

    架構圖:

    總結

    以上是生活随笔為你收集整理的Nginx 简介和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。