Nginx配置相关结构划分的技巧

原文来自:http://developer.51cto.com/art/201003/190953.htm Nginx配置需要一定的技巧,我们在不断的使用和维护中就会发现这些,接下来就向大家介绍下有关Nginx配置的相关技巧。我目前的Nginx配置是拆散的,这样可以便于在很多个虚拟主机和目录里重用部分配置。 总体是划分为这样一个结构:

conf/   Nginx.conf   proxy.conf   rewrite.conf   location.conf   port.conf   upstream.conf   servers/   www.sudone.com   www.163.com

Nginx.conf 这就是Nginx配置读取的主文件,没特殊情况是通用的
proxy.conf 代理的选项配置,也是通用的
rewrite.conf 所有主机的根目录公用的rewrite规则,默认是空文件,可以不使用。
location.conf 所有主机都会用到的location目录结构,默认是空文件,可以不使用。
port.conf 配置服务器绑定ip和端口,因为Nginx配置如果各个主机ip端口配置有不同会有bug,所以最好是统一设定。
upstream.conf upstream写在这里面,和业务分开,易于控制。
servers目录 这个目录下面放的是所有的虚拟主机配置,每个虚拟主机一个文件,由Nginx.conf去include,这样处理这些配置变得很灵活。

禁止IP访问

我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了。下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行:

listen 80 default; 

后面的default参数表示这个是默认虚拟主机。

Nginx 禁止IP访问这个设置非常有用。

比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:

server {  listen 80 default;  return 500;  } 

也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:

server {  listen 80 default;  rewrite ^(.*) http://www.mydomain.com permanent;  } 

按照如上设置后,确实不能通过IP访问服务器了,但是在应该用中出现当server_name后跟多个域名时,其中一个域名怎么都无法访问,设置如下:

server  {  listen 80;  server_name www.abc.com abc.com }

没更改之前,通过server_name 中的www.abc.com abc.com均可访问服务器,加入Nginx 禁止IP访问的设置后,通过abc.com无法访问服务器了,www.abc.com可以访问,用 Nginx -t 检测配置文件会提示warning:

 [warn]: conflicting server name “abc.com” on 0.0.0.0:80, ignored  the configuration file /usr/local/webserver/Nginx/conf/Nginx.conf syntax is ok  configuration file /usr/local/webserver/Nginx/conf/Nginx.conf test is successful

最后通过在listen 80 default;后再加server_name _;解决,形式如下:

#禁止IP访问  server  {  listen 80 default;  server_name _;  server_name www.abc.com abc.com return 500; }
 这样,通过abc.com就能访问服务器了。

Nginx配置相关结构划分的技巧和禁止IP访问相关推荐

  1. nginx 防止恶意域名解析_配置nginx只允许域名访问,禁止ip访问【图文教程】

    平凡也就两个字: 懒和惰;成功也就两个字: 苦和勤;优秀也就两个字: 你和我.跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!每一篇文章都是心 ...

  2. nginx配置域名访问/禁止ip访问

    一 背景 为什么要禁止ip访问? 为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 二 解决方法 修改配置文件nginx ...

  3. nginx只允许域名访问,禁止ip访问

    背景: 为什么要禁止ip访问页面呢? 这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法: 这里介绍修改 ...

  4. 常见几个方式禁止IP访问网站(PHP、Nginx、Apache不同设置方法)

    1.PHP禁止IP和IP段访问 <? //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66" ...

  5. SSL 证书购买以及Nginx配置相关问题

    使用https的网站越来越多了,不仅可以增加网络数据传输的安全性,还行增加搜索引擎的友好度.越来越多的个人站长也开始使用https,我们要赶得上趋势啊. 使用https的第一个问题就是要有CA证书,使 ...

  6. Nginx 多域名多网站绑定及禁止IP访问

    lnmp 服务器架设好,配置nginx,实现多个网站分别绑定各个域名 这里以域名:www.mysite.com为例 1.在/usr/local/nginx/conf/vhost文件夹中创建mysite ...

  7. nginx 配置静态资源缓存。解决web静态资源访问过慢

    Nginx文件结构 1.全局块:配置影响nginx全局的指令.一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等. ...

  8. nginx配置本地地址映射域名以及域名转发指定ip

    首先安装nginx,参加博客:https://www.cnblogs.com/qfb620/p/5508468.html 按照博客写的访问127.0.0.1查看是否访问成功,成功即安装成功. 下一步就 ...

  9. Nginx配置同时支持http和https两种方式访问

    http: https: Nginx的ssl模块安装 进入到目录的sbin目录下,输入 #注意这里是大写的V,小写的只显示版本号 ./nginx -V 如果出现 (configure argument ...

最新文章

  1. 暑期集训1:C++STL 例3:UVA-12100
  2. 2015年第11本:代码整洁之道Clean Code
  3. java redis自增操作_【转载】关于spring boot使用redis的increment()方法自增问题
  4. (oracle)二、创建数据库
  5. 出入口控制系统工程设计规范_【理论冲刺】传说中的隐藏书目——《公园设计规范》...
  6. 字节流写数据的三种方式
  7. #2989. 数列(cdq分治/曼哈顿距离)
  8. hpsocket java代码_HPSocket介绍与使用
  9. python mss_Python实现的连接mssql数据库操作示例
  10. Java 基于javaMail的邮件发送(支持附件)
  11. WCF服务编程 学习笔记(1)
  12. 自动驾驶_高精地图模型构成
  13. js函数、事件、补充知识
  14. java读取libs下文件_Android开发中libs和jinLibs文件夹的作用详解
  15. 宏批量替换多个word指定文字
  16. kettle 9.1 连接hadoop clusters (CDH 6.2)
  17. 红米k30 android版本,红米K30系列机型众多,傻傻分不清楚?看完这篇你就懂了
  18. 才云 Caicloud 开源 Nirvana:让 API 从对框架的依赖中涅槃重生
  19. 哈佛大学开放课程:《公正:该如何做是好?》6
  20. 网页打印与导出word实现在A4纸上相同效果

热门文章

  1. NET问答: JS 中有 LINQ SelectMany 方法的等价实现吗?
  2. WPF 命中测试HitTest
  3. 这套前端可视化框架,让数据栩栩如生!
  4. 一个小技巧助您减少if语句的状态判断
  5. Java 生态碎片化 和 .NET生态的一致性
  6. 为什么我们总是「习惯性辩解」?
  7. 在微服务框架Demo.MicroServer中添加SkyWalking+SkyApm-dotnet分布式链路追踪系统
  8. 五分钟了解Consul
  9. 机器学习 ML.NET 发布 1.0 RC
  10. .NET Core实战项目之CMS 第十七章 CMS网站系统的部署