亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

使用 Nginx 部署靜態頁面的方法

2024-08-30 12:29:37
字體:
來源:轉載
供稿:網友

Nginx 介紹

Nginx 是俄羅斯人編寫的十分輕量級的 HTTP 服務器, Nginx,它的發音為 “ engine X ”,是一個高性能的 HTTP 和反向代理服務器,同時也是一個 IMAP/ POP3/ SMTP 代理服務器。Nginx 是由俄羅斯人 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點運行超過兩年半了。Igor Sysoev 在建立的項目時,使用基于 BSD 許可。

英文主頁:http://nginx.net。

Nginx 作為 HTTP 服務器,有以下幾項基本特性:

  1. 處理靜態文件,索引文件以及自動索引;打開文件描述符緩沖。
  2. 無緩存的反向代理加速,簡單的負載均衡和容錯。
  3. FastCGI,簡單的負載均衡和容錯。
  4. 模塊化的結構。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 Fast CGI 或其它代理服務器處理單頁中存在的多個 SSI,則這項處理可以并行運行,而不需要相互等待。
  5. 支持 SSL 和 TLSSNI。

即 Nginx 的優點:輕量、高性能、并發能力強。用來部署靜態頁面也是相當便捷。

這種高性能得益于 Nginx 的框架。在 Nginx 啟動后,會有一個 master 進程和多個 worker 進程。master 進程主要用來管理 worker 進程,包含:接收來自外界的信號,向各 worker 進程發送信號,監控 worker 進程的運行狀態,當 worker 進程退出后(異常情況下),會自動重新啟動新的 worker 進程。而基本的網絡事件,則是放在 worker 進程中來處理的。多個 worker 進程之間是對等的,他們同等競爭來自客戶端的請求,各進程互相之間是獨立的。一個請求,只可能在一個 worker 進程中處理,一個 worker 進程,不可能處理其它進程的請求。worker 進程的個數是可以設置的,一般我們會設置與機器 cpu 核數一致,這與 Nginx 的進程模型以及事件處理模型有關。

為何選用 Nginx

說到 Nginx,可能第一反應就是 反向代理 和 負載均衡 了。那么什么是 反向代理,什么又是 負載均衡 呢?

反向代理

首先了解一下什么是 前向代理 。代理 (Proxy) 也稱網絡代理,是一種特殊的網絡服務,通俗來講,就是在客戶端和目標服務器之間的充當中間人,接收客戶端的請求,再根據客戶端請求向目標服務器發起相應的請求,從目標服務器獲得指定資源后返回給客戶端。且代理服務器可以對目標服務器的資源下載至本地緩存,如果客戶端所要獲取的資源在代理服務器的緩存之中,則代理服務器并不會再向目標服務器發起請求,而是直接返回緩存的資源。

其實代理服務器非常常見,就比如因為 GWF 而存在的一些科學上網的代理商,就是利用國外服務器作為代理服務器,從而正確解析域名來實現科學上網。代理服務器也可以實現隱藏真實 IP,比如著名的 Tor (洋蔥路由器)就是通過多重代理和一些加密技術來實現匿名交流。

而 反向代理 則是在服務器端作為代理使用,而不是客戶端。也就是說,前向代理 是代理內部網絡用戶訪問 Internet 上服務器的連接請求,反向代理 是以代理服務器來接受 Internet 上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給 Internet 上請求連接的客戶端,此時的代理服務器對外就表現為一個服務器。

負載均衡

反向代理負載均衡技術是把將來自 Internet 上的連接請求以反向代理的方式動態地轉發給內部網絡上的多臺服務器進行處理,從而達到負載均衡的目的。

真巧, Nginx 都做到了

Nginx 作為一個優秀的代理服務器,反向代理和負載均衡必然是都具備的。想要更詳細得了解這方面的知識和使用方法,可參見文末給出的參考資料: Nginx 入門指南。

Nginx 安裝

本人使用的是騰訊云的服務器,版本為: Ubuntu Server 14.04.1 LTS 32 位。

$ apt-get install nginx

Mac OS 系統參考這篇文章:Installing Nginx in Mac OS X

Nginx 配置

簡單地配置 Nginx 的配置文件,以便在啟動 Nginx 時去啟用這些配置。而本文的重點也是于此。

Nginx 的配置系統由一個主配置文件和其他一些輔助的配置文件構成。這些配置文件均是純文本文件,一般地,我們只需要配置主配置文件就行了。例如在我的服務器上是在:/etc/nginx/nginx.conf 

指令上下文

nginx.conf 中的配置信息,根據其邏輯上的意義,對它們進行了分類,也就是分成了多個作用域,或者稱之為配置指令上下文。不同的作用域含有一個或者多個配置項。

其中每個配置項由配置指令和指令參數構成,形成一個鍵值對,# 后面地為注釋,理解起來也非常容易。

一般配置文件的結構和通用配置如下:

user www-data;  # 運行 nginx 的所屬組和所有者worker_processes 1;  # 開啟一個 nginx 工作進程,一般 CPU 幾核就寫幾pid /run/nginx.pid;  # pid 路徑events {    worker_connections 768;  # 一個進程能同時處理 768 個請求    # multi_accept on;}# 與提供 http 服務相關的配置參數,一般默認配置就可以,主要配置在于 http 上下文里的 server 上下文http {    ##    # Basic Settings    ##    ... 此處省略通用默認配置    ##    # Logging Settings    ##    ... 此處省略通用默認配置    ##    # Gzip Settings    ##    ... 此處省略通用默認配置    ##    # nginx-naxsi config    ##    ... 此處省略通用默認配置    ##    # nginx-passenger config    ##    ... 此處省略通用默認配置    ##    # Virtual Host Configs    ##    ... 此處省略通用默認配置    # 此時,在此添加 server 上下文,開始配置一個域名,一個 server 配置段一般對應一個域名    server {        listen 80;        # 監聽本機所有 ip 上的 80 端口        server_name _;      # 域名:www.example.com 這里 "_" 代表獲取匹配所有        root /home/filename/;  # 站點根目錄        location / {       # 可有多個 location 用于配置路由地址            try_files index.html =404;        }}# 郵箱的配置,因為用不到,所以把這個 mail 上下文給注釋掉#mail {#    # See sample authentication script at:#    # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript#    #    # auth_http localhost/auth.php;#    # pop3_capabilities "TOP" "USER";#    # imap_capabilities "IMAP4rev1" "UIDPLUS";#   #    server {#        listen   localhost:110;#        protocol  pop3;#        proxy    on;#    }##    server {#        listen   localhost:143;#        protocol  imap;#        proxy    on;#    }#}

這里需要注意的是 http 上下文里的 server 上下文。

server {    listen 80;        # 監聽本機所有 ip 上的 80 端口    server_name _;      # 域名:www.example.com 這里 "_" 代表獲取匹配所有    root /home/filename/;  # 站點根目錄    location / {       # 可有多個 location 用于配置路由地址      try_files index.html =404;    }}

這里的 root 字段最好寫在 location 字段的外邊,防止出現無法加載 css、js 的情況。因為 css、js 的加載并不是自動的,nginx 無法執行,需要額外的配置來返回資源,所以,對于靜態頁面的部署,這樣做是最為方便的。

這里對 root 作進一步解釋,例如在服務器上有 /home/zhihu/ 目錄,其下有 index.html 文件和 css/ 以及 img/ , root /home/zhihu/; 就將指定服務器加載資源時是在 /home/zhihu/ 下查找。

其次, location 后的匹配分多種,其各類匹配方式優先級也各不相同。這里列舉一精確匹配例子:

server {    listen 80;            server_name _;          root /home/zhihu/;      location = /zhihu {      rewrite ^/.* / break;      try_files index.html =404;    }}

此時,訪問 www.example.com/zhihu 就會加載 zhihu.html 出來了。由于 location 的精確匹配,只有訪問 www.example.com/zhihu 這個路由時才會正確響應,而且此時要通過 rewrite 正則匹配,把 /zhihu 解析替換成原來的 / 。關于更多 location 字段用法,可以在文章最后給出的參考資料中查看。

關于使用 nginx 部署靜態頁面,最簡單便捷的配置方法

上面說了挺多關于配置的說明,下面推薦一種個人認為最為便捷的配置方法。(特此感謝 guyskk 學長的答疑解惑)

首先創建一個目錄,例如: /home/ubuntu/website 然后在這個 website 文件夾下可以放置你需要部署的靜態頁面文件,例如 website 下我有 google、zhihu、fenghuang 這三個文件夾,其中 server 字段配置如下:

server {    listen 80;    server_name _;    root /home/ubuntu/website;    index index.html;}

這里每個文件夾下面的靜態頁面文件名都是 index.html ,我以前有個很不好的習慣,比如 zhihu 頁面就喜歡命名為 zhihu.html ,但就從前端來看,這也是不符合規范的。

這樣配置的話,例如當你訪問 www.showzeng.cn/google/ 時,nginx 就會去 website 目錄下的 google 文件夾下尋找到 index.html 并把 google 頁面返回,同理,訪問 www.showzeng.cn/zhihu/ 時,會尋找到 zhihu 文件夾下的 index.html 并把 zhihu 頁面返回。

而在 zhihu、google 、fenghuang 文件夾的同級目錄上,再添加你的域名首頁 index.html 時,訪問 www.example.com 時就會返回了。

這里唯一美中不足的是,訪問域名中 www.showzeng.cn/zhihu 末尾會自動加上 / ,在瀏覽器中按 F12 調試會發現 www.showzeng.cn/zhihu 為 301 狀態碼,因為 index.html 是在 zhihu/ 文件夾下,所以在搜索過程中會重定向到 www.showzeng.cn/zhihu/ ,起初我是接受不了的,那一 / 看起來太難受了,但是只要一想到要一個一個 location 字段去匹配,我一下子就接受了。不知道你怎么看,反正我是接受了。

Nginx 啟動運行

$ sudo nginx -s reload

使用 reload 方法不用重啟服務,直接重新加載配置文件,客戶端感覺不到服務異常,實現平滑切換。當然你也可以重新啟動 nginx 服務。

$ sudo service nginx restart

Nginx 停止運行

$ sudo nginx -s stop

參考資料

Nginx 入門指南

Nginx for Developers: An Introduction (譯文)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91久久久久| 欧美性高跟鞋xxxxhd| 亚洲欧美激情四射在线日| 中文字幕av一区二区| 91久久精品视频| 精品视频中文字幕| 国产精品免费一区豆花| 亚洲精品久久久久久久久| 日韩一区二区久久久| 日本一本a高清免费不卡| 欧美综合一区第一页| 亚洲片av在线| 亚洲免费精彩视频| 成人免费xxxxx在线观看| 欧美美最猛性xxxxxx| 亚洲国产美女久久久久| 亚洲一区二区在线| 国产精品老女人精品视频| 亚洲人精品午夜在线观看| 成人妇女淫片aaaa视频| 成人444kkkk在线观看| 欧美日韩国产二区| 精品久久久久久久中文字幕| 欧美极品少妇xxxxx| 欧美激情精品久久久久久变态| 国产精品久久久久一区二区| 亚洲精品电影网| 欧美在线观看网站| 久久精品国产2020观看福利| 久久人人爽人人爽爽久久| 欧美激情精品久久久久久久变态| 88xx成人精品| 2019国产精品自在线拍国产不卡| 亚洲国产高清福利视频| 中文字幕亚洲无线码在线一区| 亚洲福利视频网站| 精品一区电影国产| 久久色免费在线视频| 成人444kkkk在线观看| 国产精品无码专区在线观看| 欧美精品情趣视频| 在线观看国产精品91| 亚洲最大的av网站| 日韩精品久久久久| 中文字幕在线精品| 亚洲欧美日韩久久久久久| 国产成人一区二区三区电影| 中日韩美女免费视频网站在线观看| 国产欧美日韩专区发布| 久久频这里精品99香蕉| 亚洲国产精品电影| 国产精品欧美一区二区三区奶水| 亚洲福利视频免费观看| 亚洲图片欧美午夜| 亚洲精品一区在线观看香蕉| 亚洲精品国产拍免费91在线| 日韩中文字幕在线| 久久男人资源视频| 亚洲精品中文字幕有码专区| 日韩精品免费在线播放| 精品人伦一区二区三区蜜桃免费| 亚洲成年人在线| 国产精品亚洲欧美导航| 一本色道久久88精品综合| 日韩精品极品在线观看播放免费视频| 一夜七次郎国产精品亚洲| 久久av在线看| 欧美日韩第一视频| 国产一区二区三区视频免费| 欧美一级免费视频| 亚洲美女在线看| 一区二区三区回区在观看免费视频| 日韩av在线免费观看一区| 最新国产成人av网站网址麻豆| 国内自拍欧美激情| 成人免费网站在线| 欧美久久久精品| 中文字幕亚洲无线码在线一区| 欧美久久精品一级黑人c片| 日韩欧美国产高清91| 国内精品久久久久久影视8| 欧美日韩亚洲天堂| 国产一区二区三区四区福利| 国产精品国产三级国产aⅴ9色| 91精品视频免费| 国产69精品99久久久久久宅男| 国产精品海角社区在线观看| 亚洲free性xxxx护士hd| 成人做爽爽免费视频| 成人黄色在线播放| 狠狠躁夜夜躁人人爽天天天天97| 午夜精品一区二区三区在线视频| 亚洲第一视频在线观看| 国产精品高潮粉嫩av| 日本久久久久久| 国产精品午夜一区二区欲梦| 欧美老女人bb| 久久这里只有精品视频首页| 久久精品国产精品| 国产激情综合五月久久| 狠狠色狠狠色综合日日五| 国产精品成人观看视频国产奇米| 伊人伊人伊人久久| 亚洲乱亚洲乱妇无码| 国产精品天天狠天天看| 亚洲欧美激情在线视频| 久久影视电视剧凤归四时歌| 欧美日韩亚洲成人| 亚洲欧美日韩一区二区三区在线| 国产美女精品视频免费观看| 久久精品电影网站| 亚洲成av人影院在线观看| 国产女人18毛片水18精品| 欧美大片欧美激情性色a∨久久| 红桃av永久久久| 亚洲aa在线观看| 久久精品亚洲精品| 日韩免费高清在线观看| 91性高湖久久久久久久久_久久99| 91精品免费看| 韩国国内大量揄拍精品视频| 狠狠做深爱婷婷久久综合一区| 91麻豆国产语对白在线观看| 亚洲成年网站在线观看| 欧美精品中文字幕一区| 97在线视频免费看| 黑人与娇小精品av专区| 深夜福利91大全| 亚洲字幕在线观看| 中文字幕日韩电影| 国产精品欧美激情在线播放| 日韩精品免费电影| 欧美电影在线观看| 91亚洲精品视频| 日韩有码片在线观看| 69av视频在线播放| 国产99视频精品免视看7| 97久久精品国产| 亚洲最大福利网| 久久精品久久久久久| 亚洲免费视频网站| 午夜精品久久久久久久99热浪潮| 在线观看欧美日韩国产| 91av在线免费观看| 全亚洲最色的网站在线观看| 日韩中文av在线| 91九色国产视频| 欧美日韩亚洲激情| 国产午夜精品全部视频播放| 国产精品中文字幕在线| 日韩精品在线观看一区二区| 欧美另类极品videosbest最新版本| 98精品国产高清在线xxxx天堂| 日韩一区在线视频| 精品中文字幕在线观看| 中文字幕日韩av| 97精品一区二区三区| 97视频人免费观看| 成人性生交xxxxx网站| 欧美视频一区二区三区…| 91亚洲国产精品| 日韩中文字幕精品| 在线观看日韩欧美| 色黄久久久久久|