nginx获取服务器ip
① 如何在两层服务器的第二层Nginx上获取用户IP
如何在两层服务器的第二层Nginx上获取用户IP
一.之前在做nginx的服务器配置的时候遇到了一个问题,在之前服务器有用到一个限制客户端最大并发连接的功能,而且这个功能的实现是依靠在服务器中做
[html] view plain
$remote-addr
这样的配置来达到的。但在增加了前端一层(负载、CDN、防火墙、安全服务)服务器之后,拿到的客户端IP就都变成了前端服务器的IP,而并非真是的用户IP地址。
二.这样的问题下,我又重新看了几次nginx官网的介绍,也发现其中另外一个特别重要的变量
[html] view plain
$proxy_add_x_forwarded_for
这个变量是客户端访问请求中的X-forwarded-for 字段的值,如果请求中不包含这个字段,则自动用这个变量会等价于remote-addr这个变量。这允许我们获取HTTP请求中通常情况下前端服务器保存的客户真实IP地址的字段,通常就是我们说的X_FORWARDED_FOR字段,然后通过这样的方法,我们就可以实现各种各样的功能了。
三.下面我来实际给大家做一个简单演示。诸多不足,欢迎指正。
首先我们先搭建好Nginx的环境,这里我们使用1.7 系列的最新版本 1.7.9为例,(关于版本的问题参见FAQ 1)
下载、WGET所需地址 http://nginx.org/download/nginx-1.7.9.tar.gz
1. 下载Nginx
[lugt@localhostmysql]$ wget http://nginx.org/download/nginx-1.7.9.tar.gz
2. 解压
[lugt@localhostmysql]$ tar zxvf nginx-1.7.9.tar.gz
3. 直接编译(需要考虑是否需要openssl等插件的支持)
[lugt@localhost mysql]$cd nginx-1.7.9
[lugt@localhost nginx-1.7.9]$ ./configure
[lugt@localhost nginx-1.7.9]$ make
[lugt@localhost nginx-1.7.9]$ su
[[email protected]]$ make install
4. 然后接下来修改nginx.conf配置文件
[lugt@localhost nginx-1.7.9]$ su
[lugt@localhost nginx-1.7.9]$cd /usr/local/nginx
[lugt@localhostnginx]$ vi conf/nginx.conf
② nginx配置了负载均衡的访问ip地址过后,那个ip地址不能访问
报错的url链接是:http://test/,把这个域名调通就能访问了,如果仅仅只是配置php的话,建议配置php支持:
location~.*.(php|php5)?$
{
fastcgi_pass127.0.0.1:9000;//根据自己的fast_cgi监听进行更改
fastcgi_indexindex.php;
includefastcgi.conf;
}
③ 如何隐藏nginx下web服务器真实ip
基于各种原因,有时想隐藏nginx的显示版本号,也为服务器更安全有如下几个方法1 修改主配置文件nginx.conf在http {段加入server_tokens off;保存退出就可以了2 也可以在编译前修改源代码,文件是src/core/nginx.h如果是已经安装的,就可以再编译安装一次就可以
④ nginx 能获取到真实ip吗
http://blog.csdn.net/bigtree_3721/article/details/72820081希望能帮到你
⑤ nginx转跳问题,nginx默认接受所有解析过来的域名,然后转跳到指定的IP
给每个域名配置对应的虚拟主机
然后各自虚拟主机配置段中再配置相应的反向代理
⑥ nginx怎么配置IP和域名都能访问
一个nginx服务器只能有一个虚拟主机允许IP访问
只要在server_name最后面添加一个default,就可以在其他nginx没有定义的域名下,使用当前server解析(例如,其他server都没有定义ip地址作为server_name则用IP访问会被打到default主机上)
⑦ nginx 怎么配置 ip
工具原料:电脑+nginx
nginx 配置 ip方法如下:
一、将a和b两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。
二、配置代码如下:
三、在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。
四、server_name配置还可以过滤有人恶意将某些域名指向主机服务器。
⑧ nginx作前端代理,收取其它服务器邮件时,后端postfix如何获取邮件来源服务器的真实ip
开启ip hash试一下
⑨ nginx配置通过IP访问返回静态页面
如果你以虚拟主机的方式在nginx上跑网站,就把默认的虚拟主机的主机名写成ip地址 ,它的网站目录下放错误信息提示页面的html文件 。默认虚拟主机配置类似:
server {
listen 80;
server_name 192.168.1.12 default;
root D:\ServCode\www;
index index.html;
}
⑩ nginx如何获取自己的ip
nginx这里作一个赋值操作,如下:
proxy_set_header
X-real-ip
$remote_addr;
其中这个X-real-ip是一个自定义的变量名,名字可以随意取,这样做完之后,用户的真实ip就被放在X-real-ip这个变量里了,然后,在web端可以这样获取:
request.getAttribute(“X-real-ip”)