• Nginx获取真实IP


    Nginx获取客户端真实IP

    一: 只有1层转发的情况
    客户端:192.168.10.61
    ng1:192.168.50.221
    web:192.168.50.222

    ng1:配置文件

    # /etc/nginx/nginx.conf
    
        user  nginx;
        worker_processes  1;
    
        error_log  /var/log/nginx/error.log warn;
        pid        /var/run/nginx.pid;
    
        events {
            worker_connections  1024;
        }
    
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
    
            log_format  main  '$http_x_forwarded_for $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" ';
    
            access_log  /var/log/nginx/access.log  main;
    
            sendfile        on;
            #tcp_nopush     on;
    
            keepalive_timeout  65;
    
            #gzip  on;
    
            include /etc/nginx/conf.d/*.conf;
        }
        
    # /etc/nginx/conf.d/proxy.conf
    
        server {
            listen 80;
            server_name www.cc.com;
    
          location / {
            proxy_pass http://192.168.50.222; ###反向代理核心
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header REMOTE-HOST  $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    

    web:配置文件

    # /etc/nginx/nginx.conf
    
        user  nginx;
        worker_processes  1;
    
        error_log  /var/log/nginx/error.log warn;
        pid        /var/run/nginx.pid;
    
        events {
            worker_connections  1024;
        }
    
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
    
            log_format  main  '$http_x_forwarded_for $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" ';
    
            access_log  /var/log/nginx/access.log  main;
    
            sendfile        on;
            #tcp_nopush     on;
    
            keepalive_timeout  65;
    
            #gzip  on;
    
            include /etc/nginx/conf.d/*.conf;
        }
    
    # /etc/nginx/conf.d/www.cc.com.conf
    
        server {
            listen       80;
            server_name  www.cc.com;
    
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
        }
    

    本地访问,查看访问日志

    # tailf /var/log/nginx/access.log
    
        192.168.10.61 - [02/Jul/2019:21:22:40 -0400] "GET / HTTP/1.0" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 
        192.168.10.61 - [02/Jul/2019:21:22:40 -0400] "GET /favicon.ico HTTP/1.0" 404 555 "http://www.cc.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    
    

    二: 多层转发的情况
    客户端:192.168.10.61
    ng1:192.168.50.221
    ng2:192.168.50.222
    web:192.168.50.223

    ng1:配置文件

    # /etc/nginx/nginx.conf
    
        user  nginx;
        worker_processes  1;
    
        error_log  /var/log/nginx/error.log warn;
        pid        /var/run/nginx.pid;
    
        events {
            worker_connections  1024;
        }
    
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
    
            log_format  main  '$http_x_forwarded_for $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" ';
    
            access_log  /var/log/nginx/access.log  main;
    
            sendfile        on;
            #tcp_nopush     on;
    
            keepalive_timeout  65;
    
            #gzip  on;
    
            include /etc/nginx/conf.d/*.conf;
        }
        
    # /etc/nginx/conf.d/proxy.conf
    
        server {
            listen 80;
            server_name www.cc.com;
    
          location / {
            proxy_pass http://192.168.50.222; ###反向代理核心
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header REMOTE-HOST  $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    

    ng2:配置文件

    # /etc/nginx/proxy.conf
    
        server {
            listen 80;
            server_name www.cc.com;
    
          location / {
            proxy_pass http://192.168.50.223; ###反向代理核心指令
    
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forwarded-For $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
          }
          
    # /etc/nginx.nginx.conf
    
        user  nginx;
        worker_processes  1;
    
        error_log  /var/log/nginx/error.log warn;
        pid        /var/run/nginx.pid;
    
        events {
            worker_connections  1024;
        }
    
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
    
            log_format  main  '$http_x_forwarded_for $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" ';
                              
            access_log  /var/log/nginx/access.log  main;
            sendfile        on;
            #tcp_nopush     on;
            keepalive_timeout  65;
            #gzip  on;
            include /etc/nginx/conf.d/*.conf;
        }
    

    web:配置文件

    # /etc/nginx/conf.d/www.cc.cm.conf
    
        server {
            listen       80;
            server_name  www.cc.com;
    
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
    }
    
    # /etc/nginx/nginx.conf
    
        user  nginx;
        worker_processes  1;
    
        error_log  /var/log/nginx/error.log warn;
        pid        /var/run/nginx.pid;
    
        events {
            worker_connections  1024;
        }
    
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
    
            log_format  main  '$http_x_forwarded_for $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" ';
    
            access_log  /var/log/nginx/access.log  main;
            sendfile        on;
            #tcp_nopush     on;
            keepalive_timeout  65;
            #gzip  on;
            include /etc/nginx/conf.d/*.conf;
        }
    

    本地访问,查看访问日志

    # tailf /var/log/nginx/access.log
    
        192.168.10.61 - [02/Jul/2019:21:30:34 -0400] "GET / HTTP/1.0" 200 46 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 
        192.168.10.61 - [02/Jul/2019:21:30:34 -0400] "GET /favicon.ico HTTP/1.0" 404 555 "http://www.cc.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    
    
  • 相关阅读:
    select 1
    使用Word2016发布CSDN博客
    使用word 2013 发布csdn博客
    使用word写CSDN博客文章
    用Word 写csdn blog
    如何使用office2016发布CSDN博客
    用word发CSDN blog
    使用word文档直接发表博客 8 )
    将Word发布到博客园
    Word 2010发布博客文章(修正)
  • 原文地址:https://www.cnblogs.com/moniter/p/12305164.html
Copyright © 2020-2023  润新知