以實際的WebGIS例子探討Nginx的簡單配置

文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/html

1.背景

以實際項目中的一個例子來詳細講解Nginx中的通常配置,其中涉及到部分正則表達式的內容。在這個實際例子中,咱們要作的是使用Nginx爲WebGIS中經常使用的離散瓦片作一個伺服器。關於Nginx的下載、與tomcat的組合配置、測試例子能夠參考個人上一篇博客http://www.cnblogs.com/naaoveGIS/p/5478208.html前端

2.Nginx中的簡單配置

2.1配置通常代理路徑

                       

讓Nginx監聽8010端口,通常狀況下均轉發到localhost:8080端口下。nginx

2.2 配置瓦片資源代理路徑

 

包含GISV14,以png等結尾的請求均在ROOT文件夾下尋找資源。正則表達式

切記,此時須要將全部瓦片也轉移到該文件夾下:編程

 

2.3 增長過濾配置

以上配置對全部png結尾的請求均做了代理轉發地址。可是不少樣式文件中的png圖片也被轉發了,這裏須要作一個過濾進行規避:tomcat

 

即GISV14/library/的請求仍是轉發至localhost:8080下。服務器

2.4檢查Nginx的配置後從新加載

 

正確後,則從新加載配置。微信

 

3.結果展現

下圖爲前端展現效果:cookie

 

其後臺瓦片資源請求以下:編程語言

 

4.Nginx中的常見正則表達式

Linux環境下,要使用nginx提供的正則表達式名字,那麼在編譯安裝nginx時必須首先安裝Perl編程語言正則表達式(PCRE)。

4.1常見規則

~ 區分大小寫匹配。

~* 不區分大小寫匹配。

!~和!~*分別爲區分大小寫不匹配及不區分大小寫不匹配。

^ 以什麼開頭的匹配。

$ 以什麼結尾的匹配。

. 匹配除換行符 \n以外的任何單字符。要匹配 .,請使用 \。

* 匹配前面的子表達式零次或屢次。要匹配 * 字符,請使用 \*。

? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。

+ 匹配前面的子表達式一次或屢次。要匹配 + 字符,請使用 \+。

4.2注意

a.爲了使用正則表達式,在服務器名字開始以前使用一個波浪號字符「~」,不然,就會被做爲準確的名字來對待。

b.若是在表達式中包含一個星號(*),那麼就會被做爲一個通配符名字(最有可能成爲無效的名字)。

c.不要忘記設置錨符號「^」 和「$」,它們不須要在語法,而是在邏輯上。

d.在域名中的點號「.」要使用反斜線進行轉義。

5.location中配置的匹配順序

 

如圖,咱們在config中配置了兩個匹配路徑,那麼當路徑爲/GISV14/library/test.png這種狀況下,哪一個匹配路徑的優先級更高呢?

這裏我先給出匹配順序的規則:

a.標識符「=」的location會最早進行匹配,若是請求uri匹配這個location,將對請求使用這個location的配置。
b.進行字符串匹配,若是匹配到的location有^~這個標識符,匹配中止返回這個location的配置。
c.按照配置文件中定義的順序進行正則表達式匹配。最先匹配的location將返回裏面的配置。
d.若是正則表達式可以匹配到請求的uri,將使用這個正則對應的location,若是沒有,則使用第二條匹配的結果。

根據規則中的b、c兩個規則,都是指向轉發tomcat服務器這個配置。

6.其餘相關知識

6.1 邏輯關鍵字

Nginx中還包含了其餘關鍵字,能夠進行必定的程序化邏輯判斷。好比包含了:if、break、rewrite,redirect等。這裏貼出一個例子:

 

6.2全局變量

$args
$content_length
$content_type
$document_root
$document_uri
$host
$http_user_agent
$http_cookie
$limit_rate
$request_body_file
$request_method
$remote_addr
$remote_port
$remote_user
$request_filename
$request_uri
$query_string
$scheme
$server_protocol
$server_addr
$server_name
$server_port
$uri

 

                                                            -----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

                                                                           若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                        

相關文章
相關標籤/搜索