# Nginx 反向代理示例

在本指南中，我们将引导您配置 Nginx 服务器以将 HTTP 流量重定向到 HTTPS，并为监听在 `http://127.0.0.1:9000/` 上的 Nginx UI
设置反向代理。

```nginx
server {
    listen          80;
    listen          [::]:80;

    server_name     <your_server_name>;
    rewrite ^(.*)$  https://$host$1 permanent;
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen  443       ssl;
    listen  [::]:443  ssl;
    http2   on;

    server_name         <your_server_name>;

    ssl_certificate     /path/to/ssl_cert;
    ssl_certificate_key /path/to/ssl_cert_key;

    location / {
        proxy_set_header    Host                $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;
        proxy_set_header    X-Forwarded-Host    $http_host;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          $connection_upgrade;
        proxy_pass          http://127.0.0.1:9000/;
    }
}
```

配置文件包括两个 Nginx 服务器块。第一个服务器块侦听 80 端口（HTTP），并将所有传入的 HTTP 请求重定向到 HTTPS。它还监听 IPv6
地址。将 `<your_server_name>` 替换为您的服务器名称。

第二个服务器块监听 443 端口（HTTPS）以及 HTTP/2 协议。同样，它也监听 IPv6 地址。将 `<your_server_name>` 替换为您的服务器名称，并将
SSL 证书和密钥的路径替换为 `/path/to/ssl_cert` 和 `/path/to/ssl_cert_key`。

此外，配置包括一个 `map` 指令，用于根据 `$http_upgrade` 变量设置 `$connection_upgrade` 变量的值，该变量用于 WebSocket 连接。

在第二个服务器块中，`location /` 部分包含代理设置，将请求转发到本地端口 `9000`
。代理设置还包括一些用于正确处理转发请求的标头，如 `Host`、`X-Real-IP`、`X-Forwarded-For`、`X-Forwarded-Proto`、`X-Forwarded-Host`、`Upgrade`
和 `Connection`。
