网站拒绝访问_Linux Nginx网站服务——3

  • nginx虚拟主机配置(利用server模块)

基于域名的虚拟主机配置(企业级使用)

基于端口的虚拟主机配置

说明:结合OSI7层模型,熟悉虚拟主机访问原理

基于ip地址的虚拟主机配置

说明:只要nginx配置文件中涉及ip地址信息修改,都要重新启动 而不是平滑重启

  • nginx企业扩展应用

虚拟主信息规范配置

将多个server区块信息,单独放置在一个文件夹中

在nginx主配置文件中,利用include参数调用虚拟主机配置文件

配置了虚拟主机别名功能

nginx状态模块功能配置

stub_status on;

作用说明:主要是为了监控访问web服务情况

  • nginx相关日志信息

日志配置

nginx的访问日志配置

说明:日志切割方法(利用脚本结合定时任务进行切割 利用logrotate服务软件进行日志切割)

重要:nginx必须掌握的基础服务 MySQL数据库 shell脚本 zabbix监控 缓存服务

Nginx服务location区块说明

搭建测试环境

搭建好一台nginx的web服务器。配置好内网卡地址与外网卡地址

 web服务的网站域名为www.wangke.com,站点目录为html/www

 要求内网用户可以访问网站http://www.wangke.com/AV.jpg资源信息(福利)

 要求外网用户禁止访问网站www.wangke.com/AV.jpg资源信息(不让外网看福利)

  • 利用相应nginx技术手段,将访问信息锁定在AV.jpg上

location /AV.jpg {

allow 172.16.1.0/24;

deny all;

}

deny all :拒绝所有,全部拒绝。以上信息代表除了内网段172.16.1.0/24,其他全部拒绝访问/AV资源

  • 利用相应nginx技术手段,实现访问策略控制

location / {

allow 172.16.1.0/24;

deny all;

}

以上信息代表除了内网段172.16.1.0/24,其他全部拒绝访问站点目录

测试:

55d7a09cc6741401667fd6403c05d324.png
71cfc191feccf7634cbfa0a16ebd470a.png

因规则为只准许内网段172.16.1.0/24访问/AV站点目录,拒绝访问

location区块官方说明

Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }

location @name { ... }

Default: —

Context: server, location

官方参考链接:http://nginx.org/en/docs/http/ngx_http_core_module.html#location

  • location区块其实相当于 == shell if语句

“~” 用于区分大小写(大小写敏感)的匹配;

“~*” 用于不区分大小写的匹配。 grep -i find -iname

“=” 表示精确匹配

”^~“ 让匹配的优先级更高,优先匹配

作用是在进行常规的字符串匹配检查之后,不做正则表达式的检查,

即如果最明确的那个字符串匹配的location配置中有此前缀,那么不做正则表达式的检查

还可以用逻辑操作符“!”对上面的匹配取反,即“!~”和“!~*”。

  • 通过实践配置信息,了解location匹配符号优先级

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;

}

location ~* .(gif|jpg|jpeg)$ {

return 500;

}

}

利用curl命令访问测试:匹配优先级为

= 精确匹配,所以匹配优先级最高

^~ 第二优先级

/documents/ ~* ~ 第三优先

/ 默认匹配 优先级最低

例外:取出 报错号

curl -s -I www.etiantian.org/oldboy.html|awk 'NR==1{print $2}'

curl -s -o /dev/null -I -w "%{http_code}" http://www.etiantian.org

curl -s -I www.etiantian.org/oldboy.html -w '%{http_code}' -o /dev/null

说明:通过以上命令可以实现对网站页面的监控

nginx的rewirte作用说明

nginx 的rewite重写模块说明:

http://www.wangke.com/day1&study

http://www.wangke.com/day1-study

  • rewrite模块两个功能

1. 实现网站地址信息跳转

2. 实现伪静态

rewrite语法格式:rewrite regex replacement [flag] == s#regex#replacement#g

rewrite应用标签:server、location、if

官方参考链接:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite

练习1:

server {

listen 80;

server_name www.etiantian.org;

rewrite ^/(.*) http://www.etiantian.org/$1 permanent;

location / {

root html/www;

index index.html index.htm;

}

access_log logs/access_www.log main;

}

permanent:永久的

以上配置可能会存在问题

[root@web02 conf]# curl etiantian.org

301 Moved Permanently

301 Moved Permanently


nginx/1.10.2

[root@web02 conf]# curl -L etiantian.org

curl: (47) Maximum (50) redirects followed

  • 命令知识扩充:curl命令参数说明

curl -Lv

-L表示:-L/--location Follow Location: hints (H);表示追踪访问的过程,跟踪Location信息;示意信息(H)

-v表示: 显示追踪的

  • 避免无限跳转的第一种方法

if ($host ~* "^etiantian.org$") {

rewrite ^/(.*) http://www.etiantian.org/$1 permanent;

}

  • 避免无线跳转的第二种方法

server { <== 添加了一个server标签,在www.etiantian.org标签之上

server_name etiantian.org;

rewrite ^/(.*) http://www.etiantian.org/$1 permanent;

}

flag标记符号 说明

last 本条规则匹配完后,继续向下匹配新的location URL规律

break 本条规则匹配完即终止,不再匹配后面的任何规则

redirect 返回302临时重定向,浏览器会显示跳转后的URL地址

permanent 返回301永久重定向,浏览器会显示跳转后的URL地址

注意:这个地方的知识点最难理解,写的有点少,还望谅解。有时间我自己钻研下,对于匹配哪个location模块还是很模糊。有大神了解的可以给我留言下。实在没搞明白哪个location的匹配定位到站点目录怎么去匹配···········

本次完,谢谢大家支持——ke.ke

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值