文档章节

Nginx 禁止恶意IP指向访问 & 二级域名的配置

IamOkay
 IamOkay
发布于 2015/04/26 13:21
字数 687
阅读 179
收藏 1
点赞 1
评论 0

简单来说,我们的nginx服务器配置如下即可,除非要有特定的处理

server {  
    listen        80;  
    server_name   linuxidc.net  www.linuxidc.net;  
    root          /data/www;  
  
    location / {  
        index     index.html  index.php;  
    }  
  
    location ~* \.(gif|jpg|png)$ {  
        expires   30d;  
    }  
  
    location ~ \.php$ {  
        fastcgi_pass   localhost:9000;  
        fastcgi_param  SCRIPT_FILENAME  
                       $document_root$fastcgi_script_name;  
        include        fastcgi_params;  
    }  
}


要防止IP和恶意IP指向访问 ,需要设置默认Server

如果不主动设置默认server,那么第一个server就会被当做默认server

    server  {  
       listen 80 default;  #表示默认匹配的端口(一般不会先匹配,等其他Server配置项无法匹配时自动转移到该处)
       server_name _;      #表示访问网站时,排除其他server项的所有域名和ip地址
       return 500;  
   }

当然改成下面的更好

server {
listen 80 dufault;
server_name _;
rewrite ^(.*) http://www.yourdomain.com permanent;
}

从0.8.21版本开始,使用default_server关键词

default_server

通过这样的方式,我们可以如下配置

server {
    listen 80 dufault;
    server_name _;
    rewrite ^(.*) http://www.domain.com permanent;
}

server
   {
     listen       80;
     server_name  ~^(.+)?\.domain\.com$;
     index index.html;
     if ($host = domain.com){
         rewrite ^ http://www.domain.com permanent;
     }
     root  /data/wwwsite/domain.com/$1/;
   }

站点目录

站点的目录结构应该如下:

/data/wwwsite/domain.com/www/

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

另外一个问题,我们可能需要用ip访问某个目录,但其他目录一切跳转到主目录

server {
listen 80 default_server;
server_name _;
        location /testdir{
            stub_status on;
            access_log  off;
        }
        location /{
            rewrite ^ http://www.nginxs.com$request_uri?;
        }
}


参考博客:

Nginx全局变量 http://www.jb51.net/article/24598.htm

Apache防止恶意指向 http://www.linuxidc.com/Linux/2011-06/37437.htm


------------------------------------------------------------

Nginx配置二级子域名

准备:需要泛域名 domain.com。

主机:www.domain.com 或 domain.com。

思路:将*.domain.com 解析到主机www.domain.com/*/ (*不能为www或空)。

配置:

if ( $host ~* (\b(?!www\b)\w+)\.\w+\.\w+ ) {
	set $subdomain $1;
}
location / {
	root   D:\www\domain.com\$subdomain;
	index  index.html index.htm;
}

具体来说,配置如下也是一种可行的方式

server
   {
     listen       80;
     server_name  ~^(.+)?\.domain\.com$;
     index index.html;
     if ($host = domain.com){
         rewrite ^ http://www.domain.com permanent;
     }
     root  /data/wwwsite/domain.com/$1/;
   }

测试

环境:Window7 + Nginx1.1.15

ToDo:

1、安装Nginx至:D:\nginx-1.1.15;安装后路径

2、修改nginx配置文件,见上;

3、新建web应用目录:D:\www\;

4、新建domain.com项目目录:D:\www\domain.com\;使用tree命令打印项目目录部署如下:

D:\WWW
└─domain.com
    │  index.html (Welcome to www.domain.com!)
    ├─a
    │      index.html (www.domain.com/a/index.html)
    │      test.html (www.domain.com/test.html)
    ├─b
    │      index.html (www.domain.com/b/index.html)

5、修改hosts文件:C:\Windows\System32\drivers\etc\hosts,新增如下行:

127.0.0.1   www.domain.com
127.0.0.1   domain.com
127.0.0.1   a.domain.com

6、启动nginx。

用例

访问:http://www.domain.com/结果:Welcome to www.domain.com!
访问:http://domain.com/ 结果:Welcome to www.domain.com!
访问:http://a.domain.com/ 结果:www.domain.com/a/index.html
结果:http://a.domain.com/test.html结果:www.domain.com/a/test.html

结果:与用例相同!

补充:

请求参数作为二级域名如何处理?
Re:采用urlrewrite或类似url重写的工具实现,步骤如下:
www.domain.com/shop.jsp?shop_key=suning
重写成:
www.domain.com/suning/
注:前提是shop_key唯一。


© 著作权归作者所有

共有 人打赏支持
IamOkay
粉丝 187
博文 458
码字总数 369998
作品 0
海淀
程序员
Nginx多Server反向代理配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。 下面我就来说说server_name的使用吧: server_n...

Aman_li
2014/12/04
0
0
在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面。 官方文档中提供的方法: If you do ...

jing31
2011/01/28
2.2K
0
Nginx 设置未绑定域名禁止访问

默认情况下,Nginx 允许直接以 IP 的方式就能直接访问到网站,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的服务器 IP)。这样容易暴露一些服务器上的网站,那么我们怎么设置...

舆图易稿
05/28
0
0
防止恶意解析——禁止通过IP直接访问网站

一、什么是恶意解析 一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站...

wzlinux
2017/09/19
0
0
我的网站被恶意域名指向了,请教nginx该怎么设置呢?

这几天我在百度搜索我网站关键字的时候发现,有2个网站的内容与我的网站内容一模一样。 后来百度了一下说是被恶意域名指向了,首先是要禁止ip访问和指定域名才能访问我的网站。 看百度中大部...

我不明白
2015/04/26
2.5K
8
Java之品优购部署_day02(4)

Nginx静态网站部署 2.1 静态网站的部署 将我们之前生成的静态页(d:item)上传到服务器的/usr/local/nginx/html 下即可访问 2.2 配置虚拟主机 虚拟主机,也叫“网站空间”,就是把一台运行在...

我是小谷粒
07/13
0
0
apache与nginx的默认虚拟主机的配置及作用

我们在使用lanmp环境搭建网站的时候,通常会有域名和ip,我们可以通过这两个来进行访问,但是这里 有个不安全的因素,就是不论我们的ip解析到那个域名,都可以通过那个域名来访问(比如 在/...

科技探索者
2017/11/13
0
0
Windows下Nginx的安装及配置

一、Nginx简介 1.Nginx是什么 Nginx是一款轻量级Web服务器、也是一款反向代理服务器 2.Nginx能干什么 ①可直接支持Rails和PHP的程序 ②可作为HTTP反向代理服务器 ③作为负载均衡服务器 ④作为...

JS_HCX
03/01
0
0
Nginx 禁止IP访问 只允许域名访问

今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络上搜到以下解决方案: Nginx的默认虚拟主...

神勇小白鼠
2013/10/18
0
1
企业级Nginx服务基础到架构优化详解--25条

1、隐藏nginx header版本号 2、更改源码隐藏软件名称 3、更改nginx默认用户及用户组 4、配置nginx worker进程个数 5、根据CPU核数进行nginx进程优化 6、nginx事件处理模型优化 7、调整Nginx...

MQ_douer
2017/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
12
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部