在位置和proxy_pass上使用正则表达式时,在nginx上编码错误

时间:2017-11-06 16:42:07

标签: regex nginx encoding utf-8 amazon-cloudfront

我正在尝试使用nginx的反向代理来显示本地图像,即我在AWS云端的图像。

为此,我为这些文件添加了一个新位置,它正在运行。

问题是当图像具有非ascii字符时。我已将编码设置为utf-8但是,当要求进入cloudfront时,nginx会将特殊字符设为??

这是我的网站conf:

source_charset utf8;
charset utf8;
server {
  listen 80; 
  root /srv/app/;
  server_name _;
  client_max_body_size 50M;
  location ~* "(*UTF8)/content/images/(?<image>.+)$" {
    resolver 8.8.8.8;
    proxy_pass https://my_distribution.cloudfront.net/$image;
  }
}

我已经掌握了en_US.utf-8上的所有内容。

这个nginx在nginx-alpine docker中运行。这是Dockerfile:

ROM nginx:stable-alpine

ENV TERM="xterm"

RUN apk --no-cache add ca-certificates wget && \
    wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-bin-2.25-r0.apk && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-i18n-2.25-r0.apk && \
    apk --no-cache add glibc-bin-2.25-r0.apk glibc-i18n-2.25-r0.apk glibc-2.25-r0.apk

RUN /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8

ENV LANG=en_US.UTF-8 \
    LANGUAGE=en_US.UTF-8

我该如何调试?如何解决这个问题?

谢谢!

0 个答案:

没有答案