做的项目需要二级等保测试,各种奇葩的安全要求,基本都是在nginx实现的。特此记录下。

#user  nobody;
worker_processes  1;

pid       /var/log/nginx/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 2048M;

sendfile        on;
 
    keepalive_timeout  65;
        server_tokens off;

server {
        listen      80;
        server_name  192.168.**.**;
  
         if ($request_method !~* GET|POST) {     #拦截除GET和POST外的所有请求
            return 403;
          }
    if ($http_Host !~* ^192.168.**.**$)    #拦截除192.168.**.**外的所有请求的host
          {
             return 400;
           }

if ($request_uri ~ '\.\.\/'){   #请求的URL不能包含../,测试burp拦截路径并加上../也能请求成功。
            return 400;
           }

valid_referers none blocked 192.168.**.**;
     if ($invalid_referer) {   #拦截除192.168.**.**以外的所有请求的referer,
           return 400;
       }

set $origin_flag 0;
    if ( $http_origin ~ http://192.168.**.**){   
            set $origin_flag "${origin_flag}1";
      }
      if ( $http_origin = ''){
            set $origin_flag "${origin_flag}1";
      }
      if ($origin_flag != "01"){    #拦截除192.168.**.**以外的所有请求的Origin
                  return 400;
        }

location /{
              root   /usr/share/nginx/html;
                index  index.html index.htm;
         try_files $uri $uri/ /index.html;
           }

location /static{
            set $flag 0;
                  if ($request_uri ~ \.(js|png)$ ){   #禁止把拦截到的JS文件和PNG文件用浏览器打开
                             set $flag "${flag}1";   
                   }                             
                 if ($http_referer = ''){
                                   set $flag "${flag}1";
                              }
                            if ($flag = "011"){
                                 return 403;
                              }

root   /usr/share/nginx/html;
                index  index.html index.htm;
       
           }
    location /abc {
            proxy_pass   http://192.168.**.**:8888/;
        proxy_set_header        X-Real-IP       $remote_addr;
                }
    location /sgcc/aaa {
              proxy_pass   http://192.168.**.**:88888/aaa;
        proxy_set_header        X-Real-IP       $remote_addr;
             }
    location /abc/bbb {
                proxy_pass   http://192.168.**.**:8888/bbb ;
        proxy_set_header        X-Real-IP       $remote_addr;
              }

location /abc/ccc{
                proxy_pass   http://192.168.**.**:8888/ccc;
              proxy_set_header        X-Real-IP       $remote_addr;
        proxy_intercept_errors on;
        error_page   500 /50x.html;
        
              }

location /abc/ddd {
                proxy_pass   http://192.168.**.**:8888/ddd ;
              proxy_set_header        X-Real-IP       $remote_addr;

}

error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

}

}

nginx.conf配置文件做各种拦截相关推荐

  1. nginx.conf 配置文件详解

    本文来说下nginx.conf 配置文件详解 文章目录 Nginx 配置文件概述 nginx.conf 配置文件 通用(这里是 windows 系统系 nginx1.14.2 下 nginx.conf ...

  2. 深入了解nginx.conf配置文件

    前言: Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/S ...

  3. nginx.conf配置文件简单说明

    nginx.conf配置文件简单说明 一,nginx主要部分介绍 二,nginx通用配置文件 常用指令说明 1,main全局配置: 2,http服务器: 3,模块http_proxy: 4,模块htt ...

  4. Nginx之nginx.conf 配置文件(二)

    上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...

  5. Nginx(二)------nginx.conf 配置文件

    上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...

  6. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一

    搭建nginx服务器时,主要的配置文件 nginx.conf 是部署和维护服务器人员经常要使用到的文件, 里面进行了许多服务器参数的设置.那么nginx 以模块 module为骨架的设计下是如何运用模 ...

  7. 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置

     1.下载Nginx,进入Nginx下载地址:http://nginx.org/ 点击nginx-1.8.0,进入:http://nginx.org/en/download.html,下载文件: ...

  8. nginx.conf配置文件说明

    今天拔了个牙,脑子有点涨不自己写了,转载点之前收藏的东西 nginx开发时常用到的,找哪些设置基本都在下面找挺全的,流传也很广了 隔壁老梁-博客园 #nginx进程,一般设置为和cpu核数一样 wor ...

  9. Nginx的nginx.conf配置文件中文注释说明

    #运行用户     user www-data;         #启动进程,通常设置成和cpu的数量相等     worker_processes  1;     #全局错误日志及PID文件     ...

最新文章

  1. 一些对制作网站有帮助的站点
  2. Setting composer minimum stability for your application
  3. 数据可视化实现技术(canvas/svg/webGL)
  4. Oracle 10g 问题集锦
  5. matlab axis 用法,MATLAB中regionprops的用法
  6. python获取excel数据进行判断输出结果到excel,如何使用python xlrd/xlwt从一个excel工作簿提取数据并输出到另一个excel工作簿?...
  7. php和ajax实现聊天功能,怎么在PHP项目中使用jquery与ajax实现一个即时聊天功能
  8. system v 消息队列(二)
  9. 如何在 Mac 上的“终端”中执行命令和运行工具?
  10. x61 linux 驱动下载,ThinkPad T61/X61换XP系统及驱动下载
  11. 【板栗糖GIS】GIS如何导出obj格式的建筑白膜数据
  12. cdrx4自动排版步骤_coreldraw x4怎么排版 coreldraw书册杂志的排版方法 - 电脑常识 - 服务器之家...
  13. ps安装了可以打开但开始里面找不到_PS CC2017安装教程【64/32位】
  14. ecshop微信登录php代码,Ecshop实现微信第三方授权扫码登录
  15. 虚拟机安装专用win7系统教程简单易懂
  16. 计算机专业的求职信英文版带翻译,[求职信英语作文带翻译]求职信的英语作文4篇...
  17. 中译英提升:准译员如何“假装”自己很地道?丨打死个翻译官2.4
  18. md魂斗罗机器人c弹锁定_史上最细节机器人勾C/防勾指南
  19. iOS开发者账户密码修改流程
  20. mybatis-plus报错There is no getter for property named ‘null‘ in ‘xx‘和Could not set property ‘XXX‘ of ‘

热门文章

  1. struts2+ibatis+spring框架整合(二)
  2. 实业落地的区块链车联网-纷享车链AutoChain项目非官方解读
  3. 每天有两三个小时空闲时间,做什么兼职赚钱比较好呢?
  4. Simpleperf分析之Android系统篇
  5. 别太把技术当回事 也别不把技术当回事
  6. StringUtils工具类安装及使用
  7. [1]心之所向,素履以往
  8. FOJ有奖月赛-2016年8月(daxia专场之过四题方有奖)
  9. 牛客网 机器学习题目
  10. Qt Button控件的属性说明