摘要:介紹和使用一介紹是一個十分輕量級并且高性能和反向代理服務(wù)器,同樣也是一個代理服務(wù)器。如果沒有匹配的正則,則使用前面記錄的最長匹配前綴字符。使用精確匹配可以提高查找的速度。例如經(jīng)常請求的話,可以使用來定義。
Nginx介紹和使用 一、介紹
Nginx是一個十分輕量級并且高性能HTTP和反向代理服務(wù)器,同樣也是一個IMAP/POP3/SMTP代理服務(wù)器。
二、特性HTTP服務(wù)器
反向代理服務(wù)器
簡單的負載均衡和容錯
支持熱部署
三、nginx模塊nginx模塊一般分為三類:
handler:負責(zé)處理客戶端請求并產(chǎn)生待響應(yīng)內(nèi)容。
filter:負責(zé)對輸出的內(nèi)容進行處理,可以對輸出進行修改。
upstream:實現(xiàn)反向代理功能,將真正的請求轉(zhuǎn)發(fā)到后端服務(wù)器上,并從后端服務(wù)器上讀取響應(yīng),發(fā)回客戶端。upstream模塊是一種特殊的handler,只不過響應(yīng)內(nèi)容不是真正由自己產(chǎn)生的,而是從后端服務(wù)器上讀取的。
四、ubuntu安裝nginxsudo apt-get install nginx
這種方式安裝的文件位置:
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放靜態(tài)文件
/var/log/nginx:存放日志
通過這種方式安裝的,會自動創(chuàng)建服務(wù),會自動在/etc/init.d/nginx新建服務(wù)腳本,然后就可以使用sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}的命令啟動。
可以再/var/log/nginx/下查看日志,如果端口80被占用,就更改/etc/nginx/sites-enabled/default文件,將下面的兩個80改成你想要的的端口,然后重新啟動。
19 20 server { 21 listen 80 default_server; 22 listen [::]:80 default_server ipv6only=on;五、配置nginx作為http服務(wù)器 1. 配置項目的conf文件
在/etc/nginx/nginx.conf中可以看到自定義配置文件的路徑:
71 include /etc/nginx/conf.d/*.conf; 72 include /etc/nginx/sites-enabled/*; 73 }
在conf.d目錄下新建文件timeline.conf,寫入配置內(nèi)容
# HTTP Server server { listen 8080; server_name bonnenuit.vip www.bonnenuit.vip; location / { alias /home/wangjun/tomcat8/webapps/timeline/pages/; index index.html; } }
重啟nginxsudo service nginx restart
2. 通過瀏覽器訪問http://bonnenuit.vip:8080/ 如果顯示正常,則說明配置成功。
3. 遇到的問題1. 報錯"server" directive is not allowed here in /etc/nginx/myconf/timeline.conf:3
出現(xiàn)這個錯誤的原因是include /etc/nginx/xxx/*.conf;沒有寫在http標簽下,因為server只能出現(xiàn)在http下面。
2. 訪問url的時候報錯403 forbidden
查詢/var/log/nginx/error.log,具體的報錯日志為:
2019/07/03 10:21:25 [error] 1523#0: *1 open() "/home/wangjun/tomcat8/webapps/timeline/pages/timeline/pages/index.html" failed (13: Permission denied), client: 106.39.75.134, server: bonnenuit.vip, request: "GET /timeline/pages/index.html HTTP/1.1", host: "bonnenuit.vip:8080"
出現(xiàn)這個原因是因為nginx的worker進程無法訪問靜態(tài)資源文件,因為worker進程的用戶和資源的所有者是不一樣的,我們需要更改配置文件nginx.conf:
# user 用戶 用戶組 user wangjun wangjun;
然后重啟nginx就可以解決。
六、配置nginx作為反向代理服務(wù)器 1. 配置conf文件在conf.d目錄下timeline.conf中,新增配置內(nèi)容:
# HTTP Server # 反向代理服務(wù)器+負載均衡 upstream test_reverse_proxy { server 120.25.245.241:8080 weight=1 max_fails=2 fail_timeout=10s; server 120.25.245.241:8080 weight=1 max_fails=2 fail_timeout=10s; #兩臺機器可以做負載均衡,目前只有一臺機器,因此ip:port一樣,一臺模擬兩臺 keepalive 16; } server { listen 8080; server_name bonnenuit.vip www.bonnenuit.vip; #server_name是為了區(qū)別多個server時,匹配域名來決定進入哪個server,當(dāng)都不匹配時,進入配置的第一個server location / { alias /home/wangjun/tomcat8/webapps/timeline/pages/; index index.html; } location ^~ /proxy/ { proxy_set_header Host $host; proxy_pass http://test_reverse_proxy/; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_redirect off; proxy_intercept_errors on; client_max_body_size 10m; } }2. 通過瀏覽器訪問
http://bonnenuit.vip:8080/proxy/ 如果顯示正常,則說明配置成功。
七、location匹配url規(guī)則看下location的語法:
location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... }
location 后面跟可選的修飾符,后面就是要匹配的字符,花括號是對應(yīng)的配置。
修飾符含義:
= | 表示精確匹配,只有請求的url路徑與后面的字符串完全相等時,才會命中。 |
---|---|
~ | 表示該規(guī)則是使用正則定義的,區(qū)分大小寫 |
~* | 表示該規(guī)則是使用正則定義的,不區(qū)分大小寫 |
^~ | 表示如果該符號后面的字符是最佳匹配,采用該規(guī)則,不再進行后續(xù)的查找 |
具體的匹配過程如下:
首先先檢查使用前綴字符定義的location,選擇最長匹配的項并記錄下來。
如果找到了精確匹配的location,也就是使用了=修飾符的location,結(jié)束查找,使用它的配置。
然后按順序查找使用正則定義的location,如果匹配則停止查找,使用它定義的配置。
如果沒有匹配的正則location,則使用前面記錄的最長匹配前綴字符location。
基于以上的匹配過程,我們可以得到以下兩點啟示:
使用正則定義的location在配置文件中出現(xiàn)的順序很重要。因為找到第一個匹配的正則后,查找就停止了,后面定義的正則就是再匹配也沒有機會了。
使用精確匹配可以提高查找的速度。例如經(jīng)常請求/的話,可以使用=來定義location。
參考:https://www.cnblogs.com/Eason...
https://www.w3cschool.cn/ngin...
https://segmentfault.com/a/11...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40504.html
摘要:目前在和平臺下使用最廣泛的免費服務(wù)器有和。涉及到普通用戶執(zhí)行命令時權(quán)限不足的問題,可在命令前增加指令解決。是基于二進制的線路協(xié)議,與協(xié)議作用相同,但屬于服務(wù)器自有協(xié)議是服務(wù)器,它實現(xiàn)了協(xié)議等協(xié)議安裝。 前言 瀏覽器上網(wǎng)的過程簡單來說即是瀏覽器從服務(wù)器中獲取網(wǎng)站信息,經(jīng)過渲染后將效果呈現(xiàn)給用戶。這里側(cè)重介紹下在幕后默默工作著的服務(wù)器。Web服務(wù)器是運行在物理服務(wù)器上的一個程序,永久地等待...
摘要:目前在和平臺下使用最廣泛的免費服務(wù)器有和。涉及到普通用戶執(zhí)行命令時權(quán)限不足的問題,可在命令前增加指令解決。是基于二進制的線路協(xié)議,與協(xié)議作用相同,但屬于服務(wù)器自有協(xié)議是服務(wù)器,它實現(xiàn)了協(xié)議等協(xié)議安裝。 前言 瀏覽器上網(wǎng)的過程簡單來說即是瀏覽器從服務(wù)器中獲取網(wǎng)站信息,經(jīng)過渲染后將效果呈現(xiàn)給用戶。這里側(cè)重介紹下在幕后默默工作著的服務(wù)器。Web服務(wù)器是運行在物理服務(wù)器上的一個程序,永久地等待...
閱讀 881·2021-11-23 09:51
閱讀 1088·2021-11-15 17:57
閱讀 1667·2021-09-22 15:24
閱讀 812·2021-09-07 09:59
閱讀 2221·2019-08-29 15:10
閱讀 1848·2019-08-29 12:47
閱讀 751·2019-08-29 12:30
閱讀 3368·2019-08-26 13:51