这是我的sites-available/default
Nginx 文件。如您所见,它包含我的默认设置以及我的站点设置。
server {
server_name _;
return 301 https://$host$request_uri;
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
}
location / {
try_files $uri $uri/ =404;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
listen [::]:80;
# 443 ssl http2;
# [::]:443 ssl http2;
server_name contfix.co.il www.contfix.co.il;
ssl_certificate /etc/nginx/conf.d/ssl/contfix.co.il.crt;
ssl_certificate_key /etc/nginx/conf.d/ssl/contfix.co.il.key;
ssl_dhparam /etc/nginx/conf.d/ssl/dhparam.pem;
root /var/www/html/contfix.co.il;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff)$ {
expires 365d;
}
location ~* \.(pdf)$ {
expires 30d;
}
}
我觉得好像我有一些代码重复,使我的特定地点服务器块太长而没有充分理由,因此不符合 DRY 标准。
我尝试删除所有在我看来是顶部默认服务器块重复的内容,但每次都只会破坏服务器。
那里真的有重复吗?我可以将哪些内容移至顶部默认服务器块?
我的目的是让特定站点的服务器块尽可能短。
答案1
您误解了默认服务器块的用途_
。它不包含default
所有其他服务器块的设置,它是在没有其他块与客户端发出的服务器请求匹配时使用的块(换句话说,当没有可用的 webapp 或网站时)。您仍然必须单独配置每个服务器块。
您可以使用包含内容,但尽管这使得单个更改更容易,因为您只需对所有服务器块更改一次,但它使得整体配置更加混乱。