2019-05-11 Nginx Web應(yīng)用深入

Day45

作者:方
歸檔:筆記
時(shí)間:2019/5/5

Nginx Web應(yīng)用深入

image.png
image.png
image.png

Nginx功能模塊化:

模塊化是為了耦合度更低,易于管理念祭!工作中做事學(xué)會(huì)低耦合。

SQA架構(gòu)碍侦。RPC服務(wù)都屬于低耦合的技術(shù)模式粱坤。

image.png
image.png
image.png
image.png

配置文件了信息詳情:cat -n nginx.conf

image.png
image.png

實(shí)踐基于域名的虛擬主機(jī):

 第一步:過濾空行生成新的配置文件     

egrep -v "^$|#" nginx.conf.default >nginx.conf

image.png
第二步:vim nginx.conf   后四行干掉
image.png
第三步:創(chuàng)建站點(diǎn)目錄文件index.html,把域名輸入進(jìn)去

mkdir ../html/www

echo "www.etiantian.org" >../html/www/index.html

cat ../html/www/index.html

image.png
第四步:把域名和IP追加到 /etc/hosts

echo "10.0.0.8 www.etiantian.org" >>/etc/hosts

image.png

第五步:ping 域名祝钢,驗(yàn)證

tail -1 /etc/hosts

ping www.etiantian.org

image.png

配置變量:

echo 'PATH="/application/nginx/sbin:$PATH"' >>/etc/profile

. /etc/profile

echo $PATH

nginx 檢查語法:

nginx -t

nginx 平滑重啟:

nginx -s reload

驗(yàn)證成功:

curl www.etiantian.org

image.png

WINDOWS下測(cè)試:

C:\Windows\System32\drivers\etc\hosts

10.0.0.8 www.etiantian.org

image.png
往配置文件里面添加server標(biāo)簽:
image.png
創(chuàng)建站點(diǎn)目錄文件比规,把域名和IP信息追加到/etc/hosts
image.png
nginx檢查語法,平滑重啟拦英,curl驗(yàn)證
image.png

基于域名的虛擬主機(jī)通信原理介紹

image.png

基于端口的虛擬主機(jī)實(shí)踐:

1.備份:
image.png
2.修改配置文件內(nèi)的端口即可
image.png
3.檢查語法蜒什,沒問題平滑重啟
image.png
4.檢查端口,驗(yàn)證配置結(jié)果(結(jié)尾需加端口)
image.png

基于IP的虛擬主機(jī):(了解即可)

第一步:配置網(wǎng)卡
image.png
第二步:檢查ping
image.png
第三步:修改配置文件
image.png
image.png

防止網(wǎng)站被惡意解析疤估,設(shè)置配置文件:

在配置里灾常,第一個(gè)標(biāo)簽添加:

image.png
image.png

實(shí)踐優(yōu)化nginx文件:

image.png
image.png

優(yōu)化nginx配置文件:

[root@web02 /application/nginx/conf]# mkdir extra

[root@web02 /application/nginx/conf]# sed -n '10,17p' nginx.conf

打印www.etiantian.org虛擬主機(jī)配置文件 server {
listen 80;
server_name www.etiantian.org;
location / {
root html/www;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf]#
sed -n '10,17p' nginx.conf >extra/01_www.conf

[root@web02 /application/nginx/conf]# sed -n '18,25p' nginx.conf
server {
listen 80;
server_name bbs.etiantian.org;
location / {
root html/bbs;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf]#
sed -n '18,25p' nginx.conf >extra/02_bbs.conf

[root@web02 /application/nginx/conf]# sed -n '26,33p' nginx.conf
server {
listen 80;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf]#
sed -n '26,33p' nginx.conf** >extra/03_blog.conf

[root@web02 /application/nginx/conf]# cd extra/

[root@web02 /application/nginx/conf/extra]# cat 01_www.conf
server {
listen 80;
server_name www.etiantian.org;
location / {
root html/www;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf/extra]# cat 02_bbs.conf
server {
listen 80;
server_name bbs.etiantian.org;
location / {
root html/bbs;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf/extra]# cat 03_blog.conf
server {
listen 80;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf/extra]# cd ../

[root@web02 /application/nginx/conf]# sed -n '10,33p' nginx.conf
server {
listen 80;
server_name www.etiantian.org;
location / {
root html/www;
index index.html index.htm;
}
}
server {
listen 80;
server_name bbs.etiantian.org;
location / {
root html/bbs;
index index.html index.htm;
}
}
server {
listen 80;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.html index.htm;
}
}

[root@web02 /application/nginx/conf]# sed -i '10,33d' nginx.conf **

[root@web02 /application/nginx/conf]#
sed -i '10 i include extra/01_www.conf;\ninclude extra/02_bbs.conf;\ninclude extra/03_blog.conf;' nginx.conf

[root@web02 /application/nginx/conf]# cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include extra/01_www.conf;
include extra/02_bbs.conf;
include extra/03_blog.conf;
}

[root@web02 /application/nginx/conf]# nginx -t
nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful

[root@web02 /application/nginx/conf]# nginx -s reload

[root@web02 /application/nginx/conf]# curl www.etiantian.org
www.etiantian.org

[root@web02 /application/nginx/conf]# curl bbs.etiantian.org
bbs.etiantian.org

[root@web02 /application/nginx/conf]# curl blog.etiantian.org
blog.etiantian.org

別名:一個(gè)名字另外一個(gè)名字

兩個(gè)域名都可以訪問到相同的內(nèi)容。

image.png
image.png
image.png
配置server標(biāo)簽:
image.png
配置完成后進(jìn)行本機(jī)/etc/hosts解析铃拇。
image.png
image.png
image.png
image.png
image.png
image.png
image.png

#log_format main 'remote_addr -remote_user [time_local] "request" '

**#                  '$status $body_bytes_sent "$http_referer" '**

**#                  '"$http_user_agent" "$http_x_forwarded_for"';**
image.png

腳本日志切割

image.png
image.png

if uri then 相當(dāng)于一個(gè)判斷句

image.png
image.png
image.png
image.png

下面是官方給出的的location示例钞瀑,我們通過實(shí)例來驗(yàn)證不同的location標(biāo)簽生效的順序,Nginx的配置文件為:
[root@web01 conf]# cp extra/01_www.conf{,.ori}

[root@web01 conf]# cat extra/01_www.conf
server {
listen 80;
server_name www.etiantian.org etiantian.org;
root html/www;
location / {
return 401;
}
location = / {
return 402;
}
location /documents/ {
return 403;
}
location ^~ /images/ {
return 404;

匹配任何以/images/開頭的任何查詢并且停止搜索慷荔。任何正則表達(dá)式匹配將不會(huì)被檢查雕什。
"^~" 這個(gè)前綴的作用:在常規(guī)的字符串匹配檢查之后,不做正則表達(dá)式的檢查,即如果最明確的那個(gè)字符串匹配的location配置中有此前綴,那么不會(huì)做正則表達(dá)式的檢查。
}
}
location ~* .(gif|jpg|jpeg)$ {
#匹配任何以 gif贷岸、jpg 或 jpeg 結(jié)尾的請(qǐng)求壹士。
return 500;
}
access_log logs/access_www.log main gzip buffer=32k flush=5s;
}

檢查語法并使得修改的配置生效:

[root@web01 conf]# nginx -t

[root@web01 conf]# nginx -s reload

然后以Linux客戶端為例對(duì)上述location匹配進(jìn)行真實(shí)測(cè)試,配置hosts文件如下偿警。
[root@web01 conf]# tail -1 /etc/hosts
10.0.0.7 www.etiantian.org bbs.etiantian.org blog.etiantian.org etiantian.org

實(shí)驗(yàn)結(jié)果如下:
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org
402
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/
402
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/index.html
401
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/documents/document.html
403
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/images/1.gif
404
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/documents/1.jpg
500
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/oldboy/
401
[root@web01 conf]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/abc/
401

image.png

rewrite實(shí)現(xiàn)偽靜態(tài)功能

image.png

301跳轉(zhuǎn):

[root@web02 /application/nginx/conf/extra]# cat 01_www.conf
server {
listen 80;
server_name etiantian.org;
rewrite ^/(.*) http://www.etiantian.org/$1 permanent;
}

server {
    listen      80;
    server_name www.etiantian.org;
    location / {
        root   html/www;
        index  index.html index.htm;
    }

access_log logs/access_www.log main;
}

access_log logs/access_www.log main;

image.png
image.png
image.png

出現(xiàn)403的原因:

1躏救、 沒有首頁文件,index.xxxx

2螟蒸、 站點(diǎn)目錄權(quán)限太低 755

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盒使,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子七嫌,更是在濱河造成了極大的恐慌少办,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诵原,死亡現(xiàn)場(chǎng)離奇詭異凡泣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)皮假,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門鞋拟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惹资,你說我怎么就攤上這事贺纲。” “怎么了褪测?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵猴誊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我侮措,道長(zhǎng)懈叹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任分扎,我火速辦了婚禮澄成,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畏吓。我一直安慰自己墨状,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布菲饼。 她就那樣靜靜地躺著肾砂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宏悦。 梳的紋絲不亂的頭發(fā)上镐确,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天包吝,我揣著相機(jī)與錄音,去河邊找鬼源葫。 笑死漏策,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的臼氨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼芭届,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼储矩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褂乍,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤持隧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后逃片,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屡拨,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年褥实,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呀狼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡损离,死狀恐怖哥艇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情僻澎,我是刑警寧澤貌踏,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站窟勃,受9級(jí)特大地震影響祖乳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秉氧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一试和、第九天 我趴在偏房一處隱蔽的房頂上張望帮辟。 院中可真熱鬧,春花似錦、人聲如沸纯续。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乌奇。三九已至,卻和暖如春轰驳,著一層夾襖步出監(jiān)牢的瞬間厚掷,已是汗流浹背弟灼。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冒黑,地道東北人田绑。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抡爹,于是被迫代替她去往敵國(guó)和親掩驱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • nginx 配置文件 Day44: 2.Nginx3大主要功能 1)網(wǎng)頁服務(wù):自身是靜態(tài)Web服務(wù)冬竟, apache...
    山有木兮_8adb閱讀 167評(píng)論 0 0
  • LNMP Web服務(wù)搭建 mysql與php安裝 1欧穴、JAVA Web環(huán)境(企業(yè)更多) [tomcat(jvm)]...
    高博666閱讀 593評(píng)論 0 0
  • 每日媒介轉(zhuǎn)化量及轉(zhuǎn)化成本分析 需要數(shù)據(jù)來源如下 廣告端:分日關(guān)鍵詞表、賬戶結(jié)構(gòu) 業(yè)務(wù)端:轉(zhuǎn)化分日表泵殴、日期表 ---...
    拓拓熊閱讀 775評(píng)論 0 0
  • 昨天參加公司年會(huì)涮帘,同時(shí)參加的還有我的老大,我的代理笑诅。我們素萬的女神慧總監(jiān)代表公司出面调缨,給我們講解了素萬2019年的...
    水墨丹青28閱讀 149評(píng)論 0 0
  • 要寫這篇文,才想起來要看一下日期吆你,原來已經(jīng)是這個(gè)月最后一天了弦叶。 前一天加班留下的疲憊還在,可以晚一小時(shí)上班也算一點(diǎn)...
    縛己的顧離閱讀 117評(píng)論 0 0