Skip to content

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_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 。代理设置还包括一些用于正确处理转发请求的标头,如 HostX-Real-IPX-Forwarded-ForX-Forwarded-ProtoUpgradeConnection

Released under the AGPL-3.0 License. (392cac41)