Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

解决 Nginx 代理无法获取本地真实IP地址具体步骤如下:

1.在 Linux 系统中查找 Nginx 配置文件 Nginx.conf ,执行命令如下:

[root@iZ256w2hluuZ ~]# find / -name nginx.conf
/etc/nginx/nginx.conf

2.执行 cd 命令进入 /etc/nginx 目录下,编辑 nginx.conf 文件,本人配置如下:

server {  
         listen       80  default_server;  
         server_name  _;  
         rewrite ^ http://www.yoodb.com$request_uri?;
     }
server {
        listen       80;
        server_name  www.yoodb.com;
        charset gbk;
        location / {
             root /usr/local/apache-tomcat-7.0.56/webapps/ROOT;
        }
        location ~ .*$ {  
proxy_pass http://123.57.47.154:89;
        }
    }

此时 Nginx 代理无法获取本地真实IP地址,需要增加配置内容如下:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

在 Nginx.conf 文件中增加配置内容之后如下:

server {  
         listen       80  default_server;  
         server_name  _;  
         rewrite ^ http://www.yoodb.com$request_uri?;
     }
server {
        listen       80;
        server_name  www.yoodb.com;
        charset gbk;
        location / {
             root /usr/local/apache-tomcat-7.0.56/webapps/ROOT;
        }
        location ~ .*$ { 
proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_pass http://123.57.47.154:89;
        }
    }

3.保存文件,执行命令重启 Nginx 服务器,命令了如下:

[root@iZ256w2hluuZ ~]# service nginx restart
你可能感兴趣的内容
Nginx 中 upstream 机制的实现 收藏,6579 浏览
0条评论

dexcoder

这家伙太懒了 <( ̄ ﹌  ̄)>
Owner