web服務器 IIS、Apache和Ngnix基礎


web服務器 IIS、Apache和Ngnix基礎

導語:人往高處走,水往低處流。技術發展往高層堆疊,技術學習則往底層深處探索。

參考文章:

IIS:https://baike.baidu.com/item/iis/19755079

Apache:https://baike.baidu.com/item/Apache/6265

Nginx:https://baike.baidu.com/item/nginx

2、 博客:https://www.cnblogs.com/vipyoumay/archive/2017/08/31/7455431.html

3、 菜鳥教程:https://www.runoob.com/w3cnote/nginx-setup-intro.html

一、各種web服務器定義及區別聯繫

1.1、為什麼要了解web服務器?

學習是具有主觀能動性的一種行為(學習是需要目的的),為什麼要學習並瞭解web服務器呢?在之前的文章中,我已經能在自己的電腦上開發出簡單的web網站了,但是網站具體是怎麼在電腦上運行的,卻不得而知,如果要把網站發佈給其它的網友看又該怎麼辦呢?這篇文章就是為了嘗試回答這些問題的。

鏈接文章:

a、php基礎知識

b、web客戶端編程基礎-HTML、CSS

c、web客戶端編程基礎-JavaScript

d、數據庫基礎筆記-SQL

e、 web網站開發基礎

1.2、web服務器

1989年,互聯網之父Berners-Lee向其僱主CERN提出了一個新項目,目的是通過使用超文本系統來緩解科學家之間的信息交流。該項目導致Berners-Lee在1990年編寫了兩個方案:

a、一個名為WorldWideWeb的瀏覽器。

b、世界上第一個網絡服務器,後來被稱為CERN httpd,它運行在NeXTSTEP上。在1991年至1994年期間,用於通過萬維網衝浪和交換數據的早期技術的簡單性和有效性有助於將其移植到許多不同的操作系統,並將其用於科學組織和大學,然後傳播到行業。

1994年,Berners-Lee決定組建萬維網聯盟(W3C),通過標準化過程來管理涉及的許多技術(HTTP,HTML等)的進一步發展。

功能定義:

Web服務器的主要功能是存儲,處理和傳遞網頁給客戶。客戶端和服務器之間的通信使用超文本傳輸​​協議(HTTP)進行。交付的頁面最常見的是HTML文檔,除了文本內容之外,還可能包含圖像,樣式表和腳本。

一個用戶代理,通常是web瀏覽器或web爬蟲,通過發起一個HTTP請求以獲取服務器資源,服務器根據請求返回該資源或由於某種原因響應錯誤消息。

雖然主要功能是提供內容,但HTTP的完整實現還包括從客戶端接收內容的方式。此功能用於提交Web表單,包括上傳文件。許多通用Web服務器還支持使用Active Server Pages(ASP),PHP或其他腳本語言的服務器端腳本。這意味著Web服務器的行為可以在單獨的文件中腳本化,而實際的服務器軟件保持不變。通常,此函數用於動態生成HTML文檔(“即時”),而不是返回靜態文檔。前者主要用於從數據庫檢索或修改信息。後者通常快得多,並且更容易被緩存,但不能提供動態內容。

Web服務器不僅用於為萬維網服務。它們也可以被嵌入到諸如打印機,路由器,網絡攝像機等設備中,並且僅服務於本地網絡。然後,web服務器可以用作用於監視或管理所討論的設備的系統的一部分。這通常意味著客戶端計算機上不需要安裝其他軟件,因為只需要一個網絡瀏覽器(現在大多數操作系統都包含在內)。

web服務器工作原理:

HTTP協議基於TCP協議上,是一個應用層協議,用於用戶代理和Web服務器進行通信。Web服務器通常採用一問一答的方式進行工作。

主流web服務器:Apache、IIS、Nginx

1.3、應用服務器

在Web服務器發展的同一個時期,應用服務器已經存在並發展很長一段時間了。一些公司為Unix開發了Tuxedo(面向事務的中間件)、TopEnd、Encina等產品,這些產品都是從類似IMS和CICS的主機應用管理和監控環境衍生而來的。大部分的這些產品都指定了“封閉的”產品專用通信協議來互連胖客戶機(“fat” client)和服務器。在90年代,這些傳統的應用服務器產品開始嵌入HTTP通信功能,剛開始要利用網關來實現。不久後它們之間的界線開始變得模糊了。

同時,web服務器越來越成熟,可以處理更高的負載、更多的併發和擁有更好的特性;應用服務器開始添加越來越多的基於HTTP的通信功能。所有的這些導致了web服務器與應用服務器的界線變得更窄了。

目前,“應用服務器”和“web服務器”之間的界線已經變得模糊不清了。但是人們還把這兩個術語區分開來,作為強調使用。

當有人說到“web服務器”時,你通常要把它認為是以HTTP為核心、web UI為嚮導的應用。當有人說到“應用服務器”時,你可能想到“高負載、企業級特性、事務和隊列、多通道通信(HTTP和更多的協議)”。但現在提供這些需求的基本上都是同一個產品。

1.4、web應用程序容器

那麼什麼是容器呢?

容器是位於應用程序/組件和服務器平臺之間的接口集合,使得應用程序/組件可以方便部署到服務器上運行。

Web服務器的出現的標誌著WWW時代的帶來,世界變得更加平面化。當初嚐到甜頭的開創者們開始不滿足與在互聯網上獲取靜態資源,於是出現了CGI腳本來動態獲取資源。再後來網絡發展方向也是朝著增強Web服務器動態獲取資源的能力前進。代表性的動態技術:CGI(Common Gateway Interface,公用網關接口)、PHP、JSP、ASP

1.5、反向代理服務器

反向代理是代理服務器的一種。它根據客戶端的請求,從後端的服務器(如Web服務器)上獲取資源,然後再將這些資源返回給客戶端。與前向代理不同,前向代理作為一個媒介將互聯網上獲取的資源返回給相關聯的客戶端,而反向代理是在服務器端(如Web服務器)作為代理使用,而不是客戶端。客戶端通過前向代理可以訪問很多不同的資源,而反向代理是很多客戶端都通過它訪問不同後端服務器上的資源,而不需要知道這些後端服務器的存在,而以為所有資源都來自於這個反向代理服務器。

1.6、小結

Web服務器是提供WWW服務的程序;Web容器是提供給開發者的框架;Web應用程序服務器內容豐富得多,既可用各廠商通常遵循一定的工業標準並自定義擴展功能而成,也可以利用開源組件輕量級拼裝打造;反向代理服務器在企業級應用中表現突出,具有解決集中式安全,負載均衡等等優點。

web服務器 IIS、Apache和Ngnix基礎

二、IIS 及其簡單應用

2.1、定義及優劣

IIS(Internet Information Services) 是一個支持HTTP和FTP發佈服務的Web服務器。它是由微軟開發的web服務器,需要收費,主要用來跑asp.net asp php,只能在windows下運行。

在穩定性上來說,IIS在實際使用中經常出現500錯誤,而且有時候會出現莫名其妙的假死現象,用戶需要不定期的重新啟動IIS服務才能保證網站的正常。安全性來說,IIS6以前的版本有安全隱患,之後的版本已經優化。因為IIS是Windows系統的一部分,所以並不開源,但是這好處是對熟悉windows的用戶來說,配置和開啟操作簡單。

2.2、IIS 7.0 的開啟操作

首先,操作系統是windows

Vista開啟IIS 7.0

在Vista中,我們可以看得到新版本的IIS 7.0看上去比6.0有了很大的改進。你可以自由開啟IIS 7.0,並在個人電腦上架設自己的網站。

下面是開啟方法:

1、熱鍵WinKey+R—輸入"cmd.exe" (不帶引號)。

2、輸入下列命令:

start /w pkgmgr.exe /iu:IIS-WebServerRole;IIS-WebServerFeature;IIS-FTPServerFeature

然後,就會自動安裝IIS 7.0。而且,IIS 7.0已經完全組件化,類似於Apache。

Win7開啟IIS 7.0

默認情況下,windows7安裝時是不會自動安裝iis,只能手動安裝,需要有安裝盤。

安裝方法:

開始-控制面板-程序-打開或關閉windows功能-internet信息服務-Web管理工具

如下圖所示:

web服務器 IIS、Apache和Ngnix基礎

2.3、IIS 網站的配置

1、打開IIS管理器,如下圖所示:

web服務器 IIS、Apache和Ngnix基礎

2、新增網站:鼠標右擊“網站”這個文件夾>>點擊“添加網站”,出現如下彈窗:

web服務器 IIS、Apache和Ngnix基礎

網站名稱:這個自定義,是為區分不同網站使用。

物理路徑:網站代碼的位置,html代碼等

綁定:分配IP和端口、解析指定的域名,如果要綁定多個域名,可以在後面“編輯”中操作

3、填寫無誤後,點擊確定,“網站”文件夾下就出現新增的網站了,如下圖所示:

web服務器 IIS、Apache和Ngnix基礎

左側列表是IIS服務器目前所有的網站列表

中間項目是針對某個網站所提供的服務和設置

右側列表是這個網站的操作:

瀏覽:打開網站代碼的根目錄

綁定:IP及端口、域名綁定的設置,新增的彈窗只能設置一個域名,這裡就可以設置多個

基本設置:修改網站名稱、代碼路徑地址

管理網站:對網站服務器的重新啟動、啟動、停止、刪除等操作

瀏覽網站:這裡就可以點擊查看網站代碼運行的對外實際效果

高級設置:略

限制:寬帶等限制

就這麼點點點,IIS就能很快很簡單地把網站部署好了。若中間遇到了什麼不可描述的問題~~就自行google吧。

2.4、IIS 網站的路由尋址配置

很多框架或者網站代碼,是需要在web服務器上配置路由尋址的。IIS的也不是很麻煩:

1、首先,得自己寫好 .htaccess 文件(一般框架都有自帶的),例如:

```

<code>Options +FollowSymLinks
RewriteRule ^(\\w{2})/diy/com/ep365/assets/images/left/tab/(.+).png$ /diy/com/ep365/assets/images/left/tab/$2.png [L]
RewriteRule ^(\\w{2})/diy/fontimage/(.+).png$ /diy/fontimage/$2.png [L]
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .index.php
/<code>

```

2、IIS導入規則,雙擊”URL重寫”>>點擊“導入規則”>>選擇.htaccess文件,確定生成如下圖所示:

web服務器 IIS、Apache和Ngnix基礎

三、Apache及其簡單配置

3.1、apache定義

Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。同時Apache音譯為阿帕奇,是北美印第安人的一個部落,叫阿帕奇族,在美國的西南部。也是一個基金會的名稱、一種武裝直升機等等。

Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。Apache源於NCSAhttpd服務器,經過多次修改,成為世界上最流行的Web服務器軟件之一。

3.2、Apache Web服務器軟件特性

1.支持最新的HTTP/1.1通信協議

2.擁有簡單而強有力的基於文件的配置過程

3.支持通用網關接口

4.支持基於IP和基於域名的虛擬主機

5.支持多種方式的HTTP認證

6.集成Perl處理模塊

7.集成代理服務器模塊

8.支持實時監視服務器狀態和定製服務器日誌

9.支持服務器端包含指令(SSI)

10.支持安全Socket層(SSL)

11.提供用戶會話過程的跟蹤

12.支持FastCGI

13.通過第三方模塊可以支持JavaServlets

3.3、apache配置及優化

“我們在使用Apache作為web服務器的過程中,只有對Apache服務器進行適當的優化配置,才能讓Apache發揮出更好的性能;再反過來說,如果Apache的配置非常糟糕,Apache可能無法正常為我們服務。因此,針對我們的應用需求對Apache服務器的配置進行一定的優化是必不可少的。” --百度百科

目前apache和nginx好像還沒有看到像IIS一樣的可視化配置。在windows和linux上,apache和nginx 都是以編輯配置文件的形式來配置。

1、目錄結構詳解

一般情況下,apache安裝好後,其目錄結構大致如圖(linux也差不多):

web服務器 IIS、Apache和Ngnix基礎

conf #主要存放了配置文件httpd.conf

logs #日誌文件存放的目錄

bin #執行文件存放的目錄,比如:(ab 常用壓測工具),(apachectl 控制apache啟動的,實際調用的httpd),(apxs apache擴展編譯的工具),(htpasswd 為網站設置用戶名密碼),(httpd apache的控制命令程序),(rotatelogs apache的日誌輪詢工具)等

cgi-bin #CGI處理程序的存放目錄

manual #一些幫助及說明文檔

modules #apache加載的module文件存放目錄(缺省配置)

可能還有這麼幾個目錄:

conf.d #裡面存放的是一些額外的參數文檔,比如php.conf,可以自定義設置一定配置參數放置到該目錄

vhost #虛擬主機配置文件存放的目錄,這個也是自定義的—phpstudy則直接把配置放到conf/vhost.conf 這個文件裡,效果是一樣的。

run #PID文件存放的目錄(可以自行更改)

htdocs #apache網站程序文件存放目錄(可以自定義)

2、httpd.conf 主配置文件詳解

```

<code>ServerRoot"D:/phpStudy/PHPTutorial/Apache"// apache安裝目錄
Listen 80//監聽端口
# Example:
# LoadModule foo_module modules/mod_foo.so//拓展加載
<ifmodule>
User daemon//apache運行用戶
Group daemon//apache運行組
/<ifmodule>

ServerAdmin [email protected]//管理員郵箱
ServerName localhost//管理地址-本地根目錄地址
DocumentRoot"D:\\phpStudy\\PHPTutorial\\WWW"//根目錄

<directory>//根目錄配置
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted


<ifmodule>
DirectoryIndex index.html index.php index.htm l.php//站點目錄首頁文件
/<ifmodule>
<files>//防止WEB用戶查看以.ht開頭的隱藏文件
Require all denied
/<files>
ErrorLog "logs/error_log"//錯誤日誌
LogLevel error//錯誤日誌等級
<ifmodule>//錯誤日誌配置
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<ifmodule>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
/<ifmodule>
/<ifmodule>
<ifmodule>//別名設置
#ScriptAlias /cgi-bin/ "H:/adsdv01/php/Apache/cgi-bin/"//CGI別名設置
/<ifmodule>

<ifmodule>
/<ifmodule>
<ifmodule>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
/<ifmodule>
Include conf/extra/httpd-mpm.conf//引入文件
Include conf/extra/httpd-php.conf
Include conf/vhosts.conf//****引入vhosts虛擬機配置文件
SSLSessionCache"shmcb:logs/ssl_scache(512000)"
SSLSessionCacheTimeout300
<ifmodule>//ssl證書配置
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
/<ifmodule>
<ifmodule>
BrowserMatch "MSIE 10.0;" bad_DNT
/<ifmodule>
<ifmodule>
RequestHeader unset DNT env=bad_DNT
/<ifmodule>
/<code>

```

3、vhosts.conf 虛擬機配置文件詳解

先直接上配置:

```

<code><virtualhost>默認localhost根目錄,監聽80端口
DocumentRoot "D:\\phpStudy\\PHPTutorial\\WWW"
<directory>
Options -Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
/<directory>
/<virtualhost>


<virtualhost>
DocumentRoot "D:\\phpStudy\\PHPTutorial\\WWW\\網站代碼根目錄"
ServerName www.域名.com
ServerAlias 服務別名
<directory>
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
/<directory>
/<virtualhost>
/<code>

```

VirtualHost: 表示基於名稱的虛擬主機 *:80表示監聽本機所有IP的80端口上提供HTTP服務,*可以設置為具體IP

DocumentRoot: 網站代碼目錄

ServerName: 解析的域名地址

< Directory > Directory> 配置目錄權限

AllowOverride:禁止用戶對目錄配置文件.htaccess修改,一般為none

DirectoryIndex: 站點目錄首頁文件多個文件用空格隔開

Order和Allow: IP限制

Options:主要作用是控制特定目錄將啟用哪些服務器特性,參數有:All、None、FollowSymLinks、Indexes、MultiViews、SymLinksIfOwnerMatch、ExecCGI、Includes、IncludesNOEXEC。參數說明如下圖:

web服務器 IIS、Apache和Ngnix基礎


四、Nginx 及其簡單配置

4.1、Nginx定義

Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發佈至今,憑藉開源的力量,已經接近成熟與完善。

Nginx功能豐富,可作為HTTP服務器,也可作為反向代理服務器,郵件服務器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。並且支持很多第三方的模塊擴展。

目前apache和nginx好像還沒有看到像IIS一樣的可視化配置。在windows和linux上,apache和nginx 都是以編輯配置文件的形式來配置。

4.2、nginx功能

1、反向代理

正向代理:某些情況下,代理我們用戶去訪問服務器,需要用戶手動的設置代理服務器的ip和端口號。

反向代理:是用來代理服務器的,代理我們要訪問的目標服務器。代理服務器接受請求,然後將請求轉發給內部網絡的服務器(集群化),並將從服務器上得到的結果返回給客戶端,此時代理服務器對外就表現為一個服務器。

2、負載均衡

多在高併發情況下需要使用。其原理就是將數據流量分攤到多個服務器執行,減輕每臺服務器的壓力,多臺服務器(集群)共同完成工作任務,從而提高了數據的吞吐量。

3、動靜分離

Nginx提供的動靜分離是指把動態請求和靜態請求分離開,合適的服務器處理相應的請求,使整個服務器系統的性能、效率更高。

4.3、nginx配置及其優化

1、 目錄結構

相對而言,nginx的目錄結構比較簡單、鬆散。在

conf:文件夾包含了nginx的所有配置文件,在nginx安裝目錄下

log: 包含nginx的訪問日誌和錯誤日誌,可在配置中自定義

html: 網站根目錄地址,可在配置中自定義

sbin: nginx命令的目錄

proxy_temp,scgi_temp,uwsgi_temp,臨時目錄


2、nginx.conf 主配置文件詳解

```

<code>user nginx nginx; #定義Nginx運行的用戶和用戶組
worker_processes 1; #nginx進程數,建議設置為等於CPU總核心數。
events
{
use epoll; #參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
worker_connections 65535;  #單個進程最大連接數(最大連接數=連接數*進程數)
}

error_log /var/log/nginx/error.log info; #全局錯誤日誌定義類型,[ debug | info | notice | warn | error | crit ]
pid /var/run/nginx.pid;  #進程文件
worker_rlimit_nofile 1024; #一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(系統的值ulimit -n)與nginx進程數相除,但是nginx分配請求並不均勻,所以#建議與ulimit -n的值保持一致

http {#HTTP區塊開始
includemime.types;#Nginx支持的媒體類型庫文件
default_typeapplication/octet-stream;#默認的媒體類型
sendfileon;#開啟高效傳輸模式
keepalive_timeout65;#連接超時
server {#第一個Server區塊開始,表示一個獨立的虛擬主機站點
listen80;#提供服務的端口,默認80
server_namelocalhost;#提供服務的域名主機名
location / {#第一個location區塊開始
roothtml;#站點的根目錄,相當於Nginx的安裝目錄

indexindex.html index.htm;#默認的首頁文件,多個用空格分開
}
error_page504/50x.html;#出現對應的http狀態碼時,使用50x.html回應客戶
location = /50x.html {#location區塊開始,訪問50x.html
roothtml; #指定對應的站點目錄為html
}
\t}
\tinclude vhosts.conf;#虛擬機配置引用
}
/<code>

```

3、vhosts.conf 虛擬機配置文件詳解

```

<code>server
{

listen 80; #監聽端口
server_name localhost; #提供服務的域名主機名indexindex.php index.html;#站點目錄首頁文件
root"D:/phpStudy/PHPTutorial/WWW/網站代碼";#網站代碼根目錄
#sslon;#ssl服務開啟
#ssl_certificatecert.pem;#ssl證書
#ssl_certificate_keycert.key;#ssl 證書key
location / { #第一個location區塊開始
root html; #站點的根目錄,相當於Nginx的安裝目錄
index index.html index.htm index.jsp; #默認的首頁文件,多個用空格分開
} #第一個location區塊結果


#charset utf-8; #默認編碼
server_names_hash_bucket_size 128; #服務器名字的hash表大小
client_header_buffer_size 32k; #上傳文件大小限制
large_client_header_buffers 4 64k; #設定請求緩
client_max_body_size 8m; #設定請求緩
sendfile on; #開啟高效文件傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出文件,對於普通應用設為 on,如果用來進行下載等應用磁盤IO重負載應用,可設置為o #ff,以平衡磁盤與網絡I/O處理速度,降低系統的負載。注意:如果圖片顯示不正常把這個改成off。
autoindex on; #開啟目錄列表訪問,合適下載服務器,默認關閉。
tcp_nopush on; #防止網絡阻塞
tcp_nodelay on; #防止網絡阻塞
keepalive_timeout 120; #連接超時,單位是秒

#FastCGI相關參數是為了改善網站的性能:減少資源佔用,提高訪問速度。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

#gzip模塊設置
gzip on; #開啟gzip壓縮輸出
gzip_min_length 1k; #最小壓縮文件大小
gzip_buffers 4 16k; #壓縮緩衝區
gzip_http_version 1.0; #壓縮版本(默認1.1,前端如果是squid2.5請使用1.0)

gzip_comp_level 2; #壓縮等級
gzip_types text/x-javascript text/css application/xml; #壓縮類型,默認就已經包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn。
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m; #開啟限制IP連接數的時候需要使用

#圖片緩存時間設置
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}

#JS和CSS緩存時間設置
location ~ .*\\.(js|css)?$
{
expires 1h;
}

#日誌格式設定
log_format access '$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_$(data+%F -d -1day).log access; #定義本虛擬主機的訪問日誌

location / {#對 "/" 啟用反向代理
proxy_pass http://127.0.0.1:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr; #後端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#以下是一些反向代理的配置,可選
proxy_set_header Host $host;
client_max_body_size 10m; #允許客戶端請求的最大單文件字節數
client_body_buffer_size 128k;#緩衝區代理緩衝用戶端請求的最大字節數,

proxy_connect_timeout 90; #nginx跟後端服務器連接超時時間(代理連接超時)
proxy_send_timeout 90;   #後端服務器數據回傳時間(代理發送超時)
proxy_read_timeout 90; #連接成功後,後端服務器響應時間(代理接收超時)
proxy_buffer_size 4k;   #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
proxy_buffers 4 32k; #proxy_buffers緩衝區,網頁平均在32k以下的設置
proxy_busy_buffers_size 64k; #高負荷下緩衝大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #設定緩存文件夾大小,大於這個值,將從upstream服務器傳
}

#設定查看Nginx狀態的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd; #htpasswd文件的內容可以用apache提供的htpasswd工具來產生。

}

#本地動靜分離反向代理配置
#所有jsp的頁面均交由tomcat或resin處理
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}


#所有靜態文件由nginx直接讀取不經過tomcat或resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$

{ expires 1h; }
}
}
/<code>

```



分享到:


相關文章: