摘要:介紹和使用一介紹是一個(gè)十分輕量級(jí)并且高性能和反向代理服務(wù)器,同樣也是一個(gè)代理服務(wù)器。如果沒(méi)有匹配的正則,則使用前面記錄的最長(zhǎng)匹配前綴字符。使用精確匹配可以提高查找的速度。例如經(jīng)常請(qǐng)求的話,可以使用來(lái)定義。
Nginx介紹和使用 一、介紹
Nginx是一個(gè)十分輕量級(jí)并且高性能HTTP和反向代理服務(wù)器,同樣也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器。
二、特性HTTP服務(wù)器
反向代理服務(wù)器
簡(jiǎn)單的負(fù)載均衡和容錯(cuò)
支持熱部署
三、nginx模塊nginx模塊一般分為三類:
handler:負(fù)責(zé)處理客戶端請(qǐng)求并產(chǎn)生待響應(yīng)內(nèi)容。
filter:負(fù)責(zé)對(duì)輸出的內(nèi)容進(jìn)行處理,可以對(duì)輸出進(jìn)行修改。
upstream:實(shí)現(xiàn)反向代理功能,將真正的請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器上,并從后端服務(wù)器上讀取響應(yīng),發(fā)回客戶端。upstream模塊是一種特殊的handler,只不過(guò)響應(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:存放日志
通過(guò)這種方式安裝的,會(huì)自動(dòng)創(chuàng)建服務(wù),會(huì)自動(dòng)在/etc/init.d/nginx新建服務(wù)腳本,然后就可以使用sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}的命令啟動(dòng)。
可以再/var/log/nginx/下查看日志,如果端口80被占用,就更改/etc/nginx/sites-enabled/default文件,將下面的兩個(gè)80改成你想要的的端口,然后重新啟動(dòng)。
19 20 server { 21 listen 80 default_server; 22 listen [::]:80 default_server ipv6only=on;五、配置nginx作為http服務(wù)器 1. 配置項(xiàng)目的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. 通過(guò)瀏覽器訪問(wèn)http://bonnenuit.vip:8080/ 如果顯示正常,則說(shuō)明配置成功。
3. 遇到的問(wèn)題1. 報(bào)錯(cuò)"server" directive is not allowed here in /etc/nginx/myconf/timeline.conf:3
出現(xiàn)這個(gè)錯(cuò)誤的原因是include /etc/nginx/xxx/*.conf;沒(méi)有寫在http標(biāo)簽下,因?yàn)閟erver只能出現(xiàn)在http下面。
2. 訪問(wèn)url的時(shí)候報(bào)錯(cuò)403 forbidden
查詢/var/log/nginx/error.log,具體的報(bào)錯(cuò)日志為:
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)這個(gè)原因是因?yàn)閚ginx的worker進(jìn)程無(wú)法訪問(wèn)靜態(tài)資源文件,因?yàn)閣orker進(jìn)程的用戶和資源的所有者是不一樣的,我們需要更改配置文件nginx.conf:
# user 用戶 用戶組 user wangjun wangjun;
然后重啟nginx就可以解決。
六、配置nginx作為反向代理服務(wù)器 1. 配置conf文件在conf.d目錄下timeline.conf中,新增配置內(nèi)容:
# HTTP Server # 反向代理服務(wù)器+負(fù)載均衡 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; #兩臺(tái)機(jī)器可以做負(fù)載均衡,目前只有一臺(tái)機(jī)器,因此ip:port一樣,一臺(tái)模擬兩臺(tái) keepalive 16; } server { listen 8080; server_name bonnenuit.vip www.bonnenuit.vip; #server_name是為了區(qū)別多個(gè)server時(shí),匹配域名來(lái)決定進(jìn)入哪個(gè)server,當(dāng)都不匹配時(shí),進(jìn)入配置的第一個(gè)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. 通過(guò)瀏覽器訪問(wèn)
http://bonnenuit.vip:8080/proxy/ 如果顯示正常,則說(shuō)明配置成功。
七、location匹配url規(guī)則看下location的語(yǔ)法:
location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... }
location 后面跟可選的修飾符,后面就是要匹配的字符,花括號(hào)是對(duì)應(yīng)的配置。
修飾符含義:
= | 表示精確匹配,只有請(qǐng)求的url路徑與后面的字符串完全相等時(shí),才會(huì)命中。 |
---|---|
~ | 表示該規(guī)則是使用正則定義的,區(qū)分大小寫 |
~* | 表示該規(guī)則是使用正則定義的,不區(qū)分大小寫 |
^~ | 表示如果該符號(hào)后面的字符是最佳匹配,采用該規(guī)則,不再進(jìn)行后續(xù)的查找 |
具體的匹配過(guò)程如下:
首先先檢查使用前綴字符定義的location,選擇最長(zhǎng)匹配的項(xiàng)并記錄下來(lái)。
如果找到了精確匹配的location,也就是使用了=修飾符的location,結(jié)束查找,使用它的配置。
然后按順序查找使用正則定義的location,如果匹配則停止查找,使用它定義的配置。
如果沒(méi)有匹配的正則location,則使用前面記錄的最長(zhǎng)匹配前綴字符location。
基于以上的匹配過(guò)程,我們可以得到以下兩點(diǎn)啟示:
使用正則定義的location在配置文件中出現(xiàn)的順序很重要。因?yàn)檎业降谝粋€(gè)匹配的正則后,查找就停止了,后面定義的正則就是再匹配也沒(méi)有機(jī)會(huì)了。
使用精確匹配可以提高查找的速度。例如經(jīng)常請(qǐng)求/的話,可以使用=來(lái)定義location。
參考:https://www.cnblogs.com/Eason...
https://www.w3cschool.cn/ngin...
https://segmentfault.com/a/11...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40504.html
摘要:此外,其也能夠提供強(qiáng)大的反向代理功能。是由為俄羅斯訪問(wèn)量第二的站點(diǎn)開(kāi)發(fā)的,第一個(gè)公開(kāi)版本發(fā)布于年月日。 keepalived+nginx 實(shí)現(xiàn)高可用雙機(jī)熱備 + 負(fù)載均衡架構(gòu) 1 準(zhǔn)備4個(gè)ubuntu16.04虛擬機(jī)(啟用網(wǎng)卡二并使用橋接模式):A服務(wù)器:192.168.0.103 主B服務(wù)器:192.168.0.104 主(備) 前端工程師學(xué)習(xí) Nginx ...
摘要:目前在和平臺(tái)下使用最廣泛的免費(fèi)服務(wù)器有和。涉及到普通用戶執(zhí)行命令時(shí)權(quán)限不足的問(wèn)題,可在命令前增加指令解決。是基于二進(jìn)制的線路協(xié)議,與協(xié)議作用相同,但屬于服務(wù)器自有協(xié)議是服務(wù)器,它實(shí)現(xiàn)了協(xié)議等協(xié)議安裝。 前言 瀏覽器上網(wǎng)的過(guò)程簡(jiǎn)單來(lái)說(shuō)即是瀏覽器從服務(wù)器中獲取網(wǎng)站信息,經(jīng)過(guò)渲染后將效果呈現(xiàn)給用戶。這里側(cè)重介紹下在幕后默默工作著的服務(wù)器。Web服務(wù)器是運(yùn)行在物理服務(wù)器上的一個(gè)程序,永久地等待...
摘要:目前在和平臺(tái)下使用最廣泛的免費(fèi)服務(wù)器有和。涉及到普通用戶執(zhí)行命令時(shí)權(quán)限不足的問(wèn)題,可在命令前增加指令解決。是基于二進(jìn)制的線路協(xié)議,與協(xié)議作用相同,但屬于服務(wù)器自有協(xié)議是服務(wù)器,它實(shí)現(xiàn)了協(xié)議等協(xié)議安裝。 前言 瀏覽器上網(wǎng)的過(guò)程簡(jiǎn)單來(lái)說(shuō)即是瀏覽器從服務(wù)器中獲取網(wǎng)站信息,經(jīng)過(guò)渲染后將效果呈現(xiàn)給用戶。這里側(cè)重介紹下在幕后默默工作著的服務(wù)器。Web服務(wù)器是運(yùn)行在物理服務(wù)器上的一個(gè)程序,永久地等待...
閱讀 893·2021-11-23 09:51
閱讀 1107·2021-11-15 17:57
閱讀 1674·2021-09-22 15:24
閱讀 820·2021-09-07 09:59
閱讀 2234·2019-08-29 15:10
閱讀 1857·2019-08-29 12:47
閱讀 760·2019-08-29 12:30
閱讀 3380·2019-08-26 13:51