5.5 課堂筆記

:Nginx web應(yīng)用深入

1)Nginx功能模塊化:

耦合度更低,易于管理。工作中做事學(xué)會(huì)低耦合。

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

2)虛擬主機(jī)分類介紹(省略野崇,看書)

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

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

[root@web02 /application/nginx/conf]# egrep -v "^$|#" nginx.conf.default >nginx.conf

[root@web02 /application/nginx/conf]# cat -n nginx.conf

? ? 1 worker_processes? 1;

? ? 2 events {

? ? 3 ? ? worker_connections? 1024;

? ? 4 }

? ? 5 http {

? ? 6 ? ? include? ? ? mime.types;

? ? 7 ? ? default_type? application/octet-stream;

? ? 8 ? ? sendfile? ? ? ? on;

? ? 9 ? ? keepalive_timeout? 65;

? ? 10 ? ? server {

? ? 11 ? ? ? ? listen? ? ? 80;

? ? 12 ? ? ? ? server_name? localhost;

? ? 13 ? ? ? ? location / {

? ? 14 ? ? ? ? ? ? root? html;

? ? 15 ? ? ? ? ? ? index? index.html index.htm;

? ? 16 ? ? ? ? }

? ? 17 ? ? ? ? error_page? 500 502 503 504? /50x.html;

? ? 18 ? ? ? ? location = /50x.html {

? ? 19 ? ? ? ? ? ? root? html;

? ? 20 ? ? ? ? }

? ? 21 ? ? }

? ? 22 }

[root@web02 /application/nginx/conf]# cat -n nginx.conf

? ? 1 worker_processes? 1;

? ? 2 events {

? ? 3 ? ? worker_connections? 1024;

? ? 4 }

? ? 5 http {

? ? 6 ? ? include? ? ? mime.types;

? ? 7 ? ? default_type? application/octet-stream;

? ? 8 ? ? sendfile? ? ? ? on;

? ? 9 ? ? keepalive_timeout? 65;

? ? 10 ? ? server {

? ? 11 ? ? ? ? listen? ? ? 80;

? ? 12 ? ? ? ? server_name? www.etiantian.org;

? ? 13 ? ? ? ? location / {

? ? 14 ? ? ? ? ? ? root? html/www;

? ? 15 ? ? ? ? ? ? index? index.html index.htm;

? ? 16 ? ? ? ? }

? ? 17 ? ? }

? ? 18 }

[root@web02 /application/nginx/conf]# mkdir ../html/www

[root@web02 /application/nginx/conf]# echo "www.etiantian.org" >../html/www/index.html

[root@web02 /application/nginx/conf]# cat ../html/www/index.html

www.etiantian.org

[root@web02 /application/nginx/conf]# cat /etc/hosts

127.0.0.1? ? localhost localhost.localdomain localhost4 localhost4.localdomain4

::1? ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.5 lb01

172.16.1.6 lb02

172.16.1.7 web01

172.16.1.8 web02

172.16.1.9 web03

172.16.1.31 nfs01

172.16.1.41 backup

172.16.1.51 db01 db01.etiantian.org

172.16.1.61 m01

[root@web02 /application/nginx/conf]# echo "10.0.0.8 www.etiantian.org" >>/etc/hosts

[root@web02 /application/nginx/conf]# tail -1 /etc/hosts

10.0.0.8 www.etiantian.org

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

PING www.etiantian.org (10.0.0.8) 56(84) bytes of data.

64 bytes from www.etiantian.org (10.0.0.8): icmp_seq=1 ttl=64 time=0.050 ms

[root@web02 /application/nginx/conf]# echo 'PATH="/application/nginx/sbin:$PATH"'

>>/etc/profile

[root@web02 /application/nginx/conf]# . /etc/profile

[root@web02 /application/nginx/conf]# echo $PATH

/application/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@web02 /application/nginx/conf]# /application/nginx/sbin/nginx ^C

[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]#

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

www.etiantian.org

WINDOWS下測(cè)試:

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

10.0.0.8 www.etiantian.org

[root@web02 /application/nginx/conf]# cat -n nginx.conf

? ? 1 worker_processes? 1;

? ? 2 events {

? ? 3 ? ? worker_connections? 1024;

? ? 4 }

? ? 5 http {

? ? 6 ? ? include? ? ? mime.types;

? ? 7 ? ? default_type? application/octet-stream;

? ? 8 ? ? sendfile? ? ? ? on;

? ? 9 ? ? keepalive_timeout? 65;

? ? 10 ? ? server {

? ? 11 ? ? ? ? listen? ? ? 80;

? ? 12 ? ? ? ? server_name? www.etiantian.org;

? ? 13 ? ? ? ? location / {

? ? 14 ? ? ? ? ? ? root? html/www;

? ? 15 ? ? ? ? ? ? index? index.html index.htm;

? ? 16 ? ? ? ? }

? ? 17 ? ? }

? ? 18 ? ? server {

? ? 19 ? ? ? ? listen? ? ? 80;

? ? 20 ? ? ? ? server_name? bbs.etiantian.org;

? ? 21 ? ? ? ? location / {

? ? 22 ? ? ? ? ? ? root? html/bbs;

? ? 23 ? ? ? ? ? ? index? index.html index.htm;

? ? 24 ? ? ? ? }

? ? 25 ? ? }

? ? 26 ? ? server {

? ? 27 ? ? ? ? listen? ? ? 80;

? ? 28 ? ? ? ? server_name? blog.etiantian.org;

▽? 29 ? ? ? ? location / {

? ? 30 ? ? ? ? ? ? root? html/blog;

? ? 31 ? ? ? ? ? ? index? index.html index.htm;

? ? 32 ? ? ? ? }

? ? 33 ? ? }

? ? 34 }

[root@web02 /application/nginx/conf]# mkdir ../html/{bbs,blog}

[root@web02 /application/nginx/conf]# echo "bbs.etiantian.org" >../html/bbs/index.html

[root@web02 /application/nginx/conf]# echo "blog.etiantian.org" >../html/blog/index.html

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

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

[root@web02 /application/nginx/conf]# cat ../html/blog/index.html

blog.etiantian.org

[root@web02 /application/nginx/conf]# cat ../html/bbs/index.html

bbs.etiantian.org

[root@web02 /application/nginx/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]#

[root@web02 /application/nginx/conf]# vim /etc/hosts

127.0.0.1? ? localhost localhost.localdomain localhost4 localhost4.localdomain4

::1? ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.5 lb01

172.16.1.6 lb02

172.16.1.7 web01

172.16.1.8 web02

172.16.1.9 web03

172.16.1.31 nfs01

172.16.1.41 backup

172.16.1.51 db01 db01.etiantian.org

172.16.1.61 m01

10.0.0.8 www.etiantian.org bbs.etiantian.org blog.etiantian.org

~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


"/etc/hosts" 12L, 396C 已寫入? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


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

PING www.etiantian.org (10.0.0.8) 56(84) bytes of data.

64 bytes from www.etiantian.org (10.0.0.8): icmp_seq=1 ttl=64 time=0.022 ms

64 bytes from www.etiantian.org (10.0.0.8): icmp_seq=2 ttl=64 time=0.056 ms

^C

--- www.etiantian.org ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.022/0.039/0.056/0.017 ms

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

PING www.etiantian.org (10.0.0.8) 56(84) bytes of data.

64 bytes from www.etiantian.org (10.0.0.8): icmp_seq=1 ttl=64 time=0.228 ms

64 bytes from www.etiantian.org (10.0.0.8): icmp_seq=2 ttl=64 time=0.029 ms

^C

--- www.etiantian.org ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1001ms

rtt min/avg/max/mdev = 0.029/0.128/0.228/0.100 ms

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

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

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

[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

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

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

[root@web02 /application/nginx/conf]# cp nginx.conf{,_BaseName}

[root@web02 /application/nginx/conf]# ls

fastcgi.conf? ? ? ? ? ? index.html? mime.types.default? scgi_params? ? ? ? ? win-utf

fastcgi.conf.default? ? koi-utf? ? nginx.conf? ? ? ? ? scgi_params.default

fastcgi_params? ? ? ? ? koi-win? ? nginx.conf_BaseName? uwsgi_params

fastcgi_params.default? mime.types? nginx.conf.default? uwsgi_params.default

[root@web02 /application/nginx/conf]# vim nginx.conf

[root@web02 /application/nginx/conf]# vim nginx.conf

? ? keepalive_timeout? 65;

? ? server {

? ? ? ? listen? ? ? 80;

? ? ? ? server_name? www.etiantian.org;

? ? ? ? location / {

? ? ? ? ? ? root? html/www;

? ? ? ? ? ? index? index.html index.htm;

? ? ? ? }

? ? }

? ? server {

? ? ? ? listen? ? ? 81;

? ? ? ? server_name? bbs.etiantian.org;

? ? ? ? location / {

? ? ? ? ? ? root? html/bbs;

? ? ? ? ? ? index? index.html index.htm;

? ? ? ? }

? ? }

? ? server {

? ? ? ? listen? ? ? 82;

? ? ? ? server_name? blog.etiantian.org;

"nginx.conf" 34L, 753C 已寫入? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

[root@web02 /application/nginx/conf]# netstat -lntup|grep nginx

tcp? ? ? ? 0? ? ? 0 0.0.0.0:80? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

[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]# netstat -lntup|grep nginx

tcp? ? ? ? 0? ? ? 0 0.0.0.0:80? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

tcp? ? ? ? 0? ? ? 0 0.0.0.0:81? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

tcp? ? ? ? 0? ? ? 0 0.0.0.0:82? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

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

www.etiantian.org

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

bbs.etiantian.org

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

www.etiantian.org

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

blog.etiantian.org

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

www.etiantian.org

1)瀏覽器輸入www.etiantian.org

2)找LDNS-授權(quán)DNS獲取到IP称开。

3)請(qǐng)求服務(wù)器發(fā)起三次握手。

4)建立http請(qǐng)求乓梨。

(10.0.0.8 80)

5)發(fā)起HTTP請(qǐng)求報(bào)文鳖轰。

(4)先匹配請(qǐng)求的端口。

(5)然后匹配Server標(biāo)簽域名

(6)把對(duì)應(yīng)域名下面站點(diǎn)目錄

? ? ? 下的首頁(yè)文件發(fā)給客戶端扶镀。

(7)如果沒(méi)有匹配的域名蕴侣,

? ? ? ? 就把第一個(gè)虛擬機(jī)

? ? ? 主機(jī)發(fā)給客戶端


基于IP的虛擬主機(jī):

[root@web02 ~]# ip addr add 10.0.0.9 dev eth0 label eth0:9

[root@web02 ~]# ip addr add 10.0.0.10 dev eth0 label eth0:10

[root@web02 ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500

? ? ? ? inet 10.0.0.8? netmask 255.255.255.0? broadcast 10.0.0.255

? ? ? ? inet6 fe80::20c:29ff:fe12:170c? prefixlen 64? scopeid 0x20<link>

? ? ? ? ether 00:0c:29:12:17:0c? txqueuelen 1000? (Ethernet)

? ? ? ? RX packets 21765? bytes 18029629 (17.1 MiB)

? ? ? ? RX errors 0? dropped 0? overruns 0? frame 0

? ? ? ? TX packets 12171? bytes 1426129 (1.3 MiB)

? ? ? ? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0

eth0:9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500

? ? ? ? inet 10.0.0.9? netmask 255.255.255.255? broadcast 0.0.0.0

? ? ? ? ether 00:0c:29:12:17:0c? txqueuelen 1000? (Ethernet)

eth0:10: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500

? ? ? ? inet 10.0.0.10? netmask 255.255.255.255? broadcast 0.0.0.0

[root@web02 /application/nginx/conf]# cat -n nginx.conf

? ? 1 worker_processes? 1;

? ? 2 events {

? ? 3 ? ? worker_connections? 1024;

? ? 4 }

? ? 5 http {

? ? 6 ? ? include? ? ? mime.types;

? ? 7 ? ? default_type? application/octet-stream;

? ? 8 ? ? sendfile? ? ? ? on;

? ? 9 ? ? keepalive_timeout? 65;

? ? 10 ? ? server {

? ? 11 ? ? ? ? listen? ? ? 10.0.0.8:80;

? ? 12 ? ? ? ? server_name? www.etiantian.org;

? ? 13 ? ? ? ? location / {

? ? 14 ? ? ? ? ? ? root? html/www;

? ? 15 ? ? ? ? ? ? index? index.html index.htm;

? ? 16 ? ? ? ? }

? ? 17 ? ? }

? ? 18 ? ? server {

? ? 19 ? ? ? ? listen? ? ? 10.0.0.9:80;

? ? 20 ? ? ? ? server_name? bbs.etiantian.org;

? ? 21 ? ? ? ? location / {

? ? 22 ? ? ? ? ? ? root? html/bbs;

? ? 23 ? ? ? ? ? ? index? index.html index.htm;

? ? 24 ? ? ? ? }

? ? 25 ? ? }

? ? 26 ? ? server {

? ? 27 ? ? ? ? listen? ? ? 10.0.0.10:80;

? ? 28 ? ? ? ? server_name? blog.etiantian.org;

? ? 29 ? ? ? ? location / {

? ? 30 ? ? ? ? ? ? root? html/blog;

? ? 31 ? ? ? ? ? ? index? index.html index.htm;

? ? 32 ? ? ? ? }

? ? 33 ? ? }

? ? 34 }

[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]# netstat -lntup|grep nginx

tcp? ? ? ? 0? ? ? 0 0.0.0.0:80? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

tcp? ? ? ? 0? ? ? 0 0.0.0.0:81? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

tcp? ? ? ? 0? ? ? 0 0.0.0.0:82? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14322/nginx:

master

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

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

[root@web02 /application/nginx/conf]# netstat -lntup|grep nginx

tcp? ? ? ? 0? ? ? 0 10.0.0.10:80? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14967/nginx:

master

tcp? ? ? ? 0? ? ? 0 10.0.0.9:80? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14967/nginx:

master

tcp? ? ? ? 0? ? ? 0 10.0.0.8:80? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 14967/nginx:

master

[root@web02 /application/nginx/conf]# curl 10.0.0.8

www.etiantian.org

[root@web02 /application/nginx/conf]# curl 10.0.0.9

bbs.etiantian.org

[root@web02 /application/nginx/conf]# curl 10.0.0.10

blog.etiantian.org

一:什么是惡意域名解析

? ? ? ? 一般情況下,要使域名能訪問(wèn)到網(wǎng)站需要兩步臭觉,第一步睛蛛,將域名解析到網(wǎng)站所在的主機(jī),第二步

胧谈,在web服務(wù)器中將域名與相應(yīng)的網(wǎng)站綁定。但是荸频,如果通過(guò)主機(jī)IP能直接訪問(wèn)某網(wǎng)站菱肖,那么把域名解析到

這個(gè)IP也將能訪問(wèn)到該網(wǎng)站,而無(wú)需在主機(jī)上綁定旭从,也就是說(shuō)任何人將任何域名解析到這個(gè)IP就能訪問(wèn)到

這個(gè)網(wǎng)站稳强。

二:惡意域名解析的危害

? ? ? ? 可能您并不介意通過(guò)別人的域名訪問(wèn)到您的網(wǎng)站,但是如果這個(gè)域名是未備案域名呢和悦?

? ? ? ? 假如那域名是不友善的域名退疫,比如曾經(jīng)指向非法網(wǎng)站,容易引發(fā)搜索引擎懲罰鸽素,連帶IP受到牽連

褒繁。即使域名沒(méi)什么問(wèn)題,但流量也會(huì)被劫持到別的域名馍忽,從而遭到廣告聯(lián)盟的封殺棒坏。

三;如何防止遭笋,配置里第一個(gè)標(biāo)簽如下配置

server{

listen 80;

server_name _default;

return 500;

}

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

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


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

? ? 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]#

[root@web02 /application/nginx/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]#

[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]#

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

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

[root@web02 /application/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è)名字以外的另一名字

張三坝冕、小張

www.etiantian.org

etiantian.org

[root@web02 /application/nginx/conf]# cat extra/01_www.conf

? ? server {

? ? ? ? listen? ? ? 80;

? ? ? ? server_name? www.etiantian.org etiantian.org;

? ? ? ? location / {

? ? ? ? ? ? root? html/www;

? ? ? ? ? ? index? index.html index.htm;

? ? ? ? }

? ? }

[root@web02 /application/nginx/conf]# nginx -v

nginx version: nginx/1.16.0

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

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

[root@web02 /application/nginx/conf]# nginx -V

nginx version: nginx/1.16.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

built with OpenSSL 1.0.2k-fips? 26 Jan 2017

TLS SNI support enabled

configure arguments: --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-

http_stub_status_module --with-http_ssl_module --with-pcre

[root@web02 /application/nginx/conf]# cat extra/04_status.conf

#status

server{

? ? listen? 80;

? ? server_name? status.etiantian.org;

? ? location / {

? ? ? stub_status on;

? ? ? access_log? off;

? ? }

? }


10.0.0.8 www.etiantian.org bbs.etiantian.org blog.etiantian.org status.etiantian.org


==================================================

location

雙重驗(yàn)證技術(shù)

1.谷歌驗(yàn)證器

? 1.1 ssh服務(wù)? ssh? ? root@192.168.1.128

? 1.2 yes? 輸入密碼

? ? ? 123456

? 第二次輸入密碼

? SSH+谷歌驗(yàn)證器實(shí)現(xiàn) 二步驗(yàn)證登錄? Google Authenticator(Google身份驗(yàn)證器)

? 1.3 安全

? ? ? ? |--->行為驗(yàn)證碼

? ? ? ? |---->防 "圖靈"? 12306 圖(PC破解不了 機(jī)器學(xué)習(xí))?

|--->谷歌驗(yàn)證器

location使用的語(yǔ)法例子為:

location [ = | ~ | ~* | ^~ ] uri {

...

}

if uri then

{

...

}

? ? 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@web02 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org

402

[root@web02 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/

402

? ? ? ? location = / {

? ? ? ? ? ? return 402;

? ? ? ? }

[root@web02 ~]# curl -s -o /dev/null -I -w "%{http_code}\n"

http://www.etiantian.org/index.html

401

[root@web02 ~]# curl -s -o /dev/null -I -w "%{http_code}\n"

http://www.etiantian.org/index.html

401

? ? ? ? location / {

? ? ? ? ? return 401;

? ? ? ? }

[root@web02 ~]#? curl -s -o /dev/null -I -w "%{http_code}\n"

http://www.etiantian.org/documents/document.html

403

? ? ? ? location /documents/ {

? ? ? ? ? ? return 403;

? ? ? ? }

[root@web02 ~]# curl -s -o /dev/null -I -w "%{http_code}\n"

http://www.etiantian.org/images/1.gif

404

? ? ? ? location ^~ /images/ {

? ? ? ? ? ? return 404;

? ? #匹配任何以/images/開頭的任何查詢并且停止搜索碗啄。任何正則表達(dá)式匹配將不會(huì)被檢查。

#"^~" 這個(gè)前綴的作用:在常規(guī)的字符串匹配檢查之后,不做正則表達(dá)式的檢查钱贯,即如果最明確的那個(gè)字符

串匹配的location配置中有此前綴,那么不會(huì)做正則表達(dá)式的檢查挫掏。

}

? ? ? ? }

[root@web02 ~]#? curl -s -o /dev/null -I -w "%{http_code}\n"

http://www.etiantian.org/documents/1.jpg

500

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;

? ? }

[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;

? ? ? ? }

? ? ? ? ? ? auth_basic? ? ? ? ? "oldboy training";

? ? ? ? ? ? auth_basic_user_file /application/nginx/conf/htpasswd;

access_log? logs/access_www.log? main;

? ? }

[root@web02 /application/nginx/conf/extra]# 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/extra]# nginx -s reload

yum install httpd-tools -y

[root@web02 /application/nginx/conf/extra]# htpasswd -cb /application/nginx/conf/htpasswd

oldboy 123456

Adding password for user oldboy

[root@web02 /application/nginx/conf/extra]# cat /application/nginx/conf/htpasswd

oldboy:$apr1$ESr9xJ4M$ajbuh4wtRDyRskuXrCp7q/

chmod 400 /application/nginx/conf/htpasswd

chown www /application/nginx/conf/htpasswd

403:

1、沒(méi)有首頁(yè)文件秩命,index.xxx

2尉共、站點(diǎn)目錄權(quán)限太低

3、顯示的禁止

? ? ? ? ? allow 10.0.0.0/24;

? ? ? ? ? deny all;

http://oldboy.blog.51cto.com/2561410/581383弃锐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末袄友,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子霹菊,更是在濱河造成了極大的恐慌剧蚣,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旋廷,死亡現(xiàn)場(chǎng)離奇詭異鸠按,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)饶碘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門目尖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人扎运,你說(shuō)我怎么就攤上這事瑟曲。” “怎么了豪治?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵洞拨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我负拟,道長(zhǎng)烦衣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上矾麻,老公的妹妹穿的比我還像新娘弄喘。我一直安慰自己甩牺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萤皂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天窝爪,我揣著相機(jī)與錄音,去河邊找鬼。 笑死拷恨,一個(gè)胖子當(dāng)著我的面吹牛腕侄,可吹牛的內(nèi)容都是我干的芦疏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼酪穿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼溉潭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起崎页,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鞠绰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后飒焦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜈膨,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年牺荠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翁巍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡休雌,死狀恐怖灶壶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杈曲,我是刑警寧澤例朱,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布孝情,位于F島的核電站,受9級(jí)特大地震影響洒嗤,放射性物質(zhì)發(fā)生泄漏箫荡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一渔隶、第九天 我趴在偏房一處隱蔽的房頂上張望羔挡。 院中可真熱鬧,春花似錦间唉、人聲如沸绞灼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)低矮。三九已至,卻和暖如春被冒,著一層夾襖步出監(jiān)牢的瞬間军掂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工昨悼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝗锥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓率触,卻偏偏與公主長(zhǎng)得像终议,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子葱蝗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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