首页 > 其他 > 详细

nginx的常用配置

时间:2021-04-06 12:46:35      阅读:11      评论:0      收藏:0      [点我收藏+]

nginx通用配置

http {
    # nginx负载均衡配置
    upstream dynamic_balance {
        #ip_hash;
        server 192.168.100.123: 8081;
    }
    # 省略其他
    server {
        listen 80;
        server_name localhost;
        #访问工程路径
        root website;
        index index.html index.htm;
        
        #转发把原http请求的Header中的Host字段也放到转发的请求
        proxy_set_header Host $host;
        #获取用户真实IP
        proxy_set_header X - real - ip $remote_addr;
        proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
        
        #接口转发
        location /base/ {
            proxy_pass http: //dynamic_balance; 
        }
        
        #启用history模式( 什么请求都只返回index.html)
        location / {
            try_files $uri $uri / /index.html;
        }
    }
}

nginx配置proxy_set_header Host $host的作用?

没有配置 proxy_set_header Host $host 等参数, 请求总是报 400(bad request).

proxy_set_header Host $host这一行的作用是把原http请求的Header中的Host字段也放到转发的请求里。

如果不加这一行的话,nginx转发的请求header里就不会有Host字段,而服务器是靠这个Host值来区分你请求的是哪个域名的资源的。

问题地址:https://segmentfault.com/q/1010000018619879

使用nginx后如何在web应用中获取用户ip

在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办?

解决方案:在nginx配置中配置proxy_set_header X-real-ip $remote_addr;

其中这个X-real-ip是一个自定义的变量名,名字可以随意取,这样做完之后,用户的真实ip就被放在X-real-ip这个变量里了.web端可以这样获取:request.getAttribute("X-real-ip")

方案二: 配置里面这样设置:

proxy_set_heade  X-Forwarded-For $proxy_add_x_forwarded_for;

 

nginx的常用配置

原文:https://www.cnblogs.com/moqiutao/p/14620243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!