黑帽联盟

 找回密码
 会员注册
查看: 1510|回复: 0
打印 上一主题 下一主题

[基础服务] nginx控制指定ip访问网站

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    要求给一台nginx反向代理服务器做ip限制,居然要求在维护时,只要2个ip可以访问网站页面,其他ip只能访问维护页面

       系统:centos 5.5
       环境:nginx反向代理,ip是192.168.10.5
            后端服务器,ip是192.168.10.150

    1.先做好nginx反向代理和后端服务环境
    这里就不说怎么做了,大家自己网上去找nginx反向代理是怎么做的吧.

    2.在反向代理设置
    大家可以看下我的nginx反向代理conf文件:
    1. user  nginx nginx;
    2. worker_processes  1;
    3. #worker_cpu_affinity 00000001 00000010 00000100 00001000 00001001 00001010 00001100 00010000;
    4. worker_rlimit_nofile 65535;

    5. error_log   /var/log/nginx/error.log;

    6. pid        /var/run/nginx.pid;

    7. events {
    8.     use epoll;
    9.     worker_connections  65535;
    10. }

    11. http {
    12.     include       mime.types;
    13.     default_type  application/octet-stream;
    14.     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    15.                       '$status $body_bytes_sent "$http_referer" '
    16.                       '"$http_user_agent" "$http_x_forwarded_for"';

    17.     access_log  /var/log/nginx/access.log  main;

    18.     server_names_hash_bucket_size 128;
    19.     client_header_buffer_size 4k;
    20.     large_client_header_buffers 4 32k;
    21.     client_body_in_file_only clean;
    22.     client_max_body_size 8m;
    23.    
    24.     #open_file_cache max=10240 inactive=20s;
    25.     #open_file_cache_valid 30s;
    26.     #open_file_cache_min_uses 1;

    27.     sendfile        on;
    28.     tcp_nopush      on;

    29.     keepalive_timeout  60;
    30.     tcp_nodelay on;
    31.     server_tokens   off;

    32. #    fastcgi_connect_timeout 300s;
    33. #    fastcgi_send_timeout 300s;
    34. #    fastcgi_read_timeout 300s;
    35. #    fastcgi_buffer_size 128k;
    36. #    fastcgi_buffers 8 128k;#8 128
    37. #    fastcgi_busy_buffers_size 256k;
    38. #    fastcgi_temp_file_write_size 256k;
    39.     fastcgi_intercept_errors on;

    40.     #hiden php version
    41.     fastcgi_hide_header X-Powered-By;

    42.     gzip on;
    43.     gzip_min_length 1k;
    44.     gzip_buffers 16 64k;
    45.     gzip_http_version 1.0;
    46.     #gzip_disable "MSIE [1-5]\.";
    47.     gzip_comp_level 4;
    48.     gzip_types text/plain application/x-javascript text/css application/xml image/gif image/jpg image/jpeg image/png;
    49.     #gzip_vary on;
    50.     proxy_hide_header Vary;

    51.     #limit_zone conlimit $binary_remote_addr  1m;
    52.     #limit_conn conlimit 5;

    53.     upstream  192.168.10.5  {
    54.        server   192.168.10.150:9000;
    55.       }

    56.     server {
    57.         listen       9000;
    58.         server_name  _;
    59.     root /var/www/vhosts/wwwroot;
    60.     error_page 503 /503.html;

    61.        location / {
    62.            proxy_pass        http://192.168.10.5;
    63.            proxy_set_header   Host             $host;
    64.            proxy_set_header   X-Real-IP        $remote_addr;
    65.            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;        
    66.          set $fuck 0;
    67.          if ($remote_addr = '192.168.10.24') {
    68.          set $fuck 1;
    69.          }
    70.          if ($remote_addr = '192.168.10.169') {
    71.          set $fuck 1;
    72.          }
    73.          if ($fuck = 0){
    74.          return 503;
    75.          }         
    76.          }

    77.         error_page 401 403 404  /503.html;

    78.         location = /503.html {
    79.             root   /var/www/vhosts/wwwroot;
    80.         break;
    81.                 }

    82.     error_page   500 502 503 504  /50x.html;
    83.       
    84.     location = /50x.html {
    85.             root   /var/www/vhosts/error;
    86.     }
    87.        }
    88.         include /etc/nginx/conf.d/*.conf;
    89.     }
    复制代码
    可以看到我的反向代理指向的10.150的9000端口,然后去/var/www/vhosts/wwwroot设置503内容:
    cd /var/www/vhosts/wwwroot
    vi 503.html
    the is 503!!

    只让192.168.10.24和192.168.10.169可以访问后端网站,其他ip都访问503.html.

    3.在后端服务器设置
    cd /var/www/vhosts
    vi index.html
    the is 10.150!!

    4.重启nginx进行验证
    service nginx reload
    在192.168.10.24的浏览器上输入http://192.168.10.5:9000/,可以看到是允许访问后端网站的
    1.jpg
    在192.168.10.19的浏览器上输入http://192.168.10.5:9000/,可以看到是不允许访问后端网站的
    2.jpg
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部