目前,我使用两个listen
指令为nginx配置了一个同时为HTTP和HTTPS提供服务的站点:
listen 80 default_server;
listen 443 ssl;
我想对网站内的所有位置使用此配置;但是只有我想要HTTPS的位置。
location / {
// Both HTTP and HTTPS
}
location /admin {
// Require HTTPS
}
我该怎么做呢?是否需要单独的HTTP和HTTPS服务器配置?
答案 0 :(得分:0)
我将它们拆分为2台服务器
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
}
}
您可以将公共配置拆分为单独的文件,并将它们包含在两个服务器中,而不是每次更改任何内容时重写它们