前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx反向代理中文字符乱码

Nginx反向代理中文字符乱码

作者头像
无刺鱼
发布2022-08-07 12:49:57
2.5K0
发布2022-08-07 12:49:57
举报
文章被收录于专栏:许唯宇许唯宇

尝试

1、Nginx 更改请求标头Referer

代码语言:javascript
复制
location / {
    ...
    proxy_set_header Referer "me.example.com";
    ...
  }

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(字符编码)

代码语言:javascript
复制
...
server {
    ...
    charset utf-8;
    location / {
    ...
    #反向代理规则#
    proxy_set_header Accept-Encoding deflate;
    #设置反向代理头部,有时候源站响应的是gzip格式,#
    #替换的时候会有问题,可通过此项解决#
    sub _ilter '123.123.123.123''222.222.222.222';
    #替换指定ip,此处将183.251.160.127替换成123.181.128.17#
    #替换城市、运营商信息,nginx此替换模块支持中文替换#
    sub_filter '移动''电信';
    sub_filter ‘您’‘我’;
    sub_filter types *;
    sub_filter once on;

基础

proxy_set_header设置Host为proxy_host,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的值。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 尝试
  • 基础
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档