nginx代理过程中修改user_agent


关于User_agent是啥,就不多介绍了,简单说就是客户端的标识,比如chrome浏览器有chrome浏览器的标识,手机客户端也有手机客户端的标识。

有些特殊场景需要指定一个固定的user_agent,来模拟某个客户端。这时候,就可以借助Nginx的反向代理来实现。Nginx配置文件如下:

server {
    listen 8000;
    server_name localhost;
    access_log  log/access-8000.log;
    error_log  log/error-8000.log;

    location / {
        set $ua "lalallalalla x33xx33";
        proxy_pass   http://127.0.0.1:8081/;
        proxy_set_header User-Agent $ua;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

再来看看访问日志:

127.0.0.1 - - [19/Nov/2020:11:56:55 +0800] "GET /build/framework/js/7eaf6.chunk.js HTTP/1.0" 200 42870 "http://192.168.0.62:8000/" "lalallalalla x33xx33"
127.0.0.1 - - [19/Nov/2020:11:56:55 +0800] "GET /uusafe/gloab/rest/saas/all HTTP/1.0" 200 536 "http://192.168.0.62:8000/" "lalallalalla x33xx33"

已经将user_agent修改为了自定义的了。