2019-05-11 Nginx Web应用深入

Day45

作者:方
归档:笔记
时间:2019/5/5

Nginx Web应用深入

image.png
image.png
image.png

Nginx功能模块化:

模块化是为了耦合度更低,易于管理!工作中做事学会低耦合。

SQA架构。RPC服务都属于低耦合的技术模式。

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

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

image.png
image.png

实践基于域名的虚拟主机:

 第一步:过滤空行生成新的配置文件     

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

image.png
第二步:vim nginx.conf   后四行干掉
image.png
第三步:创建站点目录文件index.html,把域名输入进去

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 域名,验证

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

验证成功:

curl www.etiantian.org

image.png

WINDOWS下测试:

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

10.0.0.8 www.etiantian.org

image.png
往配置文件里面添加server标签:
image.png
创建站点目录文件,把域名和IP信息追加到/etc/hosts
image.png
nginx检查语法,平滑重启,curl验证
image.png

基于域名的虚拟主机通信原理介绍

image.png

基于端口的虚拟主机实践:

1.备份:
image.png
2.修改配置文件内的端口即可
image.png
3.检查语法,没问题平滑重启
image.png
4.检查端口,验证配置结果(结尾需加端口)
image.png

基于IP的虚拟主机:(了解即可)

第一步:配置网卡
image.png
第二步:检查ping
image.png
第三步:修改配置文件
image.png
image.png

防止网站被恶意解析,设置配置文件:

在配置里,第一个标签添加:

image.png
image.png

实践优化nginx文件:

image.png
image.png

优化nginx配置文件:

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

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

打印www.etiantian.org虚拟主机配置文件 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

别名:一个名字另外一个名字

两个域名都可以访问到相同的内容。

image.png
image.png
image.png
配置server标签:
image.png
配置完成后进行本机/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 相当于一个判断句

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

下面是官方给出的的location示例,我们通过实例来验证不同的location标签生效的顺序,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/开头的任何查询并且停止搜索。任何正则表达式匹配将不会被检查。
"^~" 这个前缀的作用:在常规的字符串匹配检查之后,不做正则表达式的检查,即如果最明确的那个字符串匹配的location配置中有此前缀,那么不会做正则表达式的检查。
}
}
location ~* .(gif|jpg|jpeg)$ {
#匹配任何以 gif、jpg 或 jpeg 结尾的请求。
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客户端为例对上述location匹配进行真实测试,配置hosts文件如下。
[root@web01 conf]# tail -1 /etc/hosts
10.0.0.7 www.etiantian.org bbs.etiantian.org blog.etiantian.org etiantian.org

实验结果如下:
[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实现伪静态功能

image.png

301跳转:

[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

出现403的原因:

1、 没有首页文件,index.xxxx

2、 站点目录权限太低 755

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • nginx 配置文件 Day44: 2.Nginx3大主要功能 1)网页服务:自身是静态Web服务, apache...
    山有木兮_8adb阅读 164评论 0 0
  • LNMP Web服务搭建 mysql与php安装 1、JAVA Web环境(企业更多) [tomcat(jvm)]...
    高博666阅读 578评论 0 0
  • 每日媒介转化量及转化成本分析 需要数据来源如下 广告端:分日关键词表、账户结构 业务端:转化分日表、日期表 ---...
    拓拓熊阅读 745评论 0 0
  • 昨天参加公司年会,同时参加的还有我的老大,我的代理。我们素万的女神慧总监代表公司出面,给我们讲解了素万2019年的...
    水墨丹青28阅读 145评论 0 0
  • 要写这篇文,才想起来要看一下日期,原来已经是这个月最后一天了。 前一天加班留下的疲惫还在,可以晚一小时上班也算一点...
    缚己的顾离阅读 115评论 0 0