• Nginx反向代理中文字符乱码


    尝试

    1、Nginx 更改请求标头Referer

    1. location / {
    2. ...
    3.     proxy_set_header Referer "me.example.com";
    4. ...
    5.   }

    2、使用ngx_http_sub_module模块,或者nginx_substitutions_filter
    ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串。这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module 如果已经安装nginx,只需要再添加这个模块就可以了。此模块替换不区分大小写;支持中文替换

    Nginx自身带的module并不多,这也是它为什么性能好,系统开销较小的原因之一,相比apache,它不能动态的加载module,如果之前编译安装了Nginx,这时候就需要重新编译nginx添加模块,并替换掉原先的nginx执行文件。

    3、指定反向代理或nginx的charset(字符编码)

    1. ...
    2. server {
    3. ...
    4. charset utf-8;
    5. location / {
    6. ...
    7. #反向代理规则#
    8. proxy_set_header Accept-Encoding deflate;
    9. #设置反向代理头部,有时候源站响应的是gzip格式,#
    10. #替换的时候会有问题,可通过此项解决#
    11. sub _ilter '123.123.123.123''222.222.222.222';
    12. #替换指定ip,此处将183.251.160.127替换成123.181.128.17#
    13. #替换城市、运营商信息,nginx此替换模块支持中文替换#
    14. sub_filter '移动''电信';
    15. sub_filter ‘您’‘我’;
    16. sub_filter types *;
    17. sub_filter once on;

    基础

    proxy_set_header设置Host为$proxy_host,$host与$local_host的区别

    语法:

    proxy_set_header field value;

    如果想让Host是xxx.xx.x.com,则进行如下设置:

    proxy_set_header Host xxx.xx.x.com;

    如果不想改变请求头“Host”的值,可以这样来设置:

    proxy_set_header Host $http_host;

    但如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。 这种情况下,更好的方式是使用$host变量——它的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名:

    proxy_set_header Host $host;

    此外,服务器名可以和后端服务器的端口一起传送

    proxy_set_header Host $host:$proxy_port;

    如果某个请求头的值为空,那么这个请求头将不会传送给后端服务器:

    proxy_set_header Accept-Encoding "";

    proxy_set_header Host $host。

    proxy_set_header X-Real-IP $remote_addr

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for

    // 变量定义说明
    $host:浏览器请求的ip,代理服务器本身ip
    $http_host:浏览器请求的ip和端口号,不改变请求头的值

    $remote_addr:前一节点的IP,并不一定是用户的真实IP。

    $proxy_host:代理服务器请求的host,即后端服务器/源站的IP,后端服务器有可能还是代理服务器。改变请求头的值

    $proxy_port:代理服务器请求的后端服务器的端口。

    $http_x_real_ip:获取的是前一节点的X-Real-IP的值。

    $http_x_forwarded_for:获取的是前一节点的X-Forwarded-For的值。

  • 相关阅读:
    小白教程系列——C盘满了,将C盘扩容
    【GEE笔记1】Landsat8/9的NDVI计算,并计算区域NDVI平均值
    使用 Tesseract 在 C# 中进行光学字符识别(OCR)
    JavaScript中常用字符串方法总结
    PowerBI - 匹配并从另一个表中获取值
    南昌服务器托管让数据存储更安全
    Centos赛题-DHCP服务
    Fork/Join 框架基本使用和原理
    Oracle-单个PDB迁移升级到19c
    SQL注入
  • 原文地址:https://blog.csdn.net/putongdeyang/article/details/126185240