老师你好,麻烦你看一下我的配置问题出在哪里?
来源:3-15 Nginx作为代理服务_正向代理配置场景(1)
ovinzhang
2018-07-26
server {
listen 80;
server_name localhost www.ovinzhang.com;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
# if ( $http_x_forwarded_for ~* "^192\.168\.11\.115") {
if ( $http_x_forwarded_for ~* ^192\.168\.11\.115 ) {
return 403;
}
root /opt/app/code;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
我用这台PC,192.168.11.115还是可以访问,请问老师,这个是哪个地方的问题?
2回答
-
Jeson
2018-07-28
你好,如果要生效,不大改动结构的情况下,优先建议你这么做:
在你现在服务端的Nginx中的if的判断语句改用remote_addr的变量来替换http_x_forwarded_for,因为remote_add变量nginx获取到的是直接访问的客户端的IP地址。
另外还有一种方式,稍微麻烦点儿也需要有些基础。
就是再开起一台Nginx作代理用,这台中间中间的代理,通过设置proxy_set_head将x-forward-for变量,将客户端的IP通过这台Nginx的代理写入到x-forward-for中,这样你的服务端就可以不用改动,而实现同样的防空场景了。
00 -
Jeson
2018-07-26
你好,你是用192.168.11.115这台客户端的机器直接访问服务端的吗?
这样的话xforward-for可能为空。所以是可以访问到的
012018-07-27
相似问题