1

listen目前,我使用两个指令为 nginx 配置了一个同时提供 HTTP 和 HTTPS 的站点:

listen 80 default_server;
listen 443 ssl;

我想将此配置用于站点内的所有位置;但是只有一个位置我想需要 HTTPS。

location / {
  // Both HTTP and HTTPS
}

location /admin {
  // Require HTTPS
}

我该怎么做呢?是否需要单独的 HTTP 和 HTTPS 服务器配置?

4

1 回答 1

0

我会把它们分成两台服务器

server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        #normal config
    }

    location /admin {
        return 301 https://$http_host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    location / {
        #normal config for frontend
    }

    location /admin {
        #admin settings
    }
}

您可以将通用配置拆分为单独的文件并将它们包含在两个服务器中,而不是每次更改任何内容时都重写

于 2013-10-30T06:00:08.947 回答