一个问题:nginx能否获得客户端的真实ip。
nginx如果作为后端web服务器,是不需要公网ip的。
如果前端有lvs/nat负载均衡,nginx作为realserver,由lvs nat模式的工作原理可知,后端的nginx收到的请求包的源ip就是客户端的真实ip,所以nginx的$remote_addr变量的ip就是client的真实ip。
但是如果nginx在netscalar nat的后端,nginx后端两个网卡,一个网卡与netscalar内部端口同一个网段,另一个网卡是机房内网网段。
在已安装好的nginx下添加一个未被编译安装的模块:
nginx -V 可以查看原来编译时都带了哪些参数
原来的参数:
--prefix=/app/nginx
添加的参数:
--with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
步骤如下:
1. 使用参数重新配置:
--with-http_ssl_module --with-http_realip_module \
--add-module=../nginx_upstream_hash-0.3.1/ \
--add-module=../gnosek-nginx-upstream-fair-2131c73/
2. 编译:
make
#不要make install,否则就是覆盖安装
3. 替换nginx二进制文件:
cp ./objs/nginx /app/nginx/sbin/
nginx禁止直接以IP访问网站的方法,供大家学习参考。
#在虚拟主机最前面加上如下内容即可,记住一定要作为第一个server(不然不生效)。如下,返回值404,可以修改为403等。
Nginx 0.8.20之前的版本如下:
server {
listen 80;
server_name _; #default
location / {
root html;
return 403;
}
location ~ /\.ht {
deny all;
}
}
Nginx 0.8.20之后的版本如下: (最简版本,如上有的信息可以适当添加)
listen 80 default_server;
server_name _;
return 403;
}
您可能感兴趣的文章:
nginx下禁止直接以IP访问的方法
两个nginx小技巧(禁止以ip方式访问、禁止列出目录)
如何在nginx中配置ip直接访问的默认站点
设置nginx禁止通过IP访问服务器的方法
nginx禁止IP访问及未绑定的域名跳转的配置方法
nginx屏蔽ip直接访问的方法