nginx 反向代理 utf-8 不工作?

nginx 反向代理 utf-8 不工作?

我已经在 Debian 服务器上安装了 Gitea,并且使用 nginx 作为反向代理并进行 SSL 设置。

当我访问 Gitea 实例时,某些字符无法正确显示。例如复选框内的勾号,以及语言选择菜单中的某些条目。

对我来说,这看起来好像页面没有以 UTF-8 显示。

但是,在我的 nginxhttp块中我已经设置了charset UTF-8;

当我(没有代理)时,它会正确curl -I https://domain.tld显示标题 。content-type: text/html; charset=UTF-8

但是当我curl -I https://git.domain.tld(使用代理)时它不会向我显示该信息。

(但由于某种原因,我有两个x-frame-options标题。SAMEORIGIN 和 DENY。)

在我的 nginx vHost 服务器块中我有这个代理的位置块:

location / {
    proxy_pass http://localhost:3000;
}

我已经尝试过proxy_pass_header Content-Type;charset UTF-8;在位置块内。这也不起作用。

完整的 vHost 配置如下:

server {
    listen 443 ssl http2;

    server_name git.domain.tld;

    access_log /var/log/nginx/gitea-proxy_access.log;
    error_log /var/log/nginx/gitea-proxy_error.log;

    # SSL Certificates
    ssl_certificate /etc/letsencrypt/domain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/domain.tld/key.pem;
    ssl_trusted_certificate /etc/letsencrypt/domain.tld/ca.pem;

    # SSL Configurations
    include /etc/nginx/snippets.d/ssl.conf;

    # Security Headers
    include /etc/nginx/snippets.d/headers.conf;

    location / {
        proxy_pass http://localhost:3000;
    }
}

# Redirect HTTP to HTTPS
server {
    listen 80;
    #listen [::]:80;
    server_name git.domain.tld;
    return 301 https://$server_name$request_uri;

    access_log /var/log/nginx/gitea-proxy_access.log;
    error_log /var/log/nginx/gitea-proxy_error.log;
}

相关内容