<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • js獲取客戶端ip地址(獲取當前客戶端IP地址詳解)


    假如有一個客戶端請求經過了nginx代理轉發以后發送給node.js服務器,如果我們想要獲取到客戶端的真實ip地址,而不是nginx服務器的地址的話應該怎么做呢?

    首先在nginx中配置一下被代理服務器接收到的header信息

    proxy_set_header用來配置被代理服務器接收到的header信息。配置語法如下:

    proxy_set_header field value;

    其中,field為要設置的變量名,value為變量的值。

    在這里我們將真實的客戶端ip設置為X-Real-IP,然后傳給被代理服務器,這樣被代理服務器就可以通過header信息來獲取到客戶端真實的ip了。配置如下:

    server {
            listen 80;
            server_name  yuanjingyan.com;
            if ( $host !~* "yuanjingyan.com" ) {
                return 404;
            }
            location / {
                proxy_pass http://ip:port;
                proxy_set_header X-Real-IP $remote_addr;
            }
        }

    然后在node.js中獲取客戶端真實ip

    在node.js中我們可以通過在nginx中配置的變量X-Real-IP來獲取客戶端真實ip,代碼如下:

    var clientIP = context.req.headers['x-real-ip']; //客戶端ip,獲取的是經過nginx代理后的真實請求ip
    if(!clientIP){
      clientIP=context.req.connection.remoteAddress; //客戶端ip,獲取的是沒有經過nginx代理后的真實請求ip
    }

    其中要注意的是headers中的“x-real-ip”要寫成小寫的,不能寫成“X-Real-IP”,否則獲取不到數據。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费