维护由第三方设置的系统时,在 nginx vhost 配置中发现以下内容
server {
listen *:80;
listen *:443 ssl;
ssl_certificate /path/to/cert.crt;
ssl_certificate_key /path/to/cert.key;
server_name <server-name-here>;
root /path/to/vhost/root;
index index.html index.htm index.php index.cgi index.pl index.xhtml;
error_log /var/log/ispconfig/httpd/domain-name/error.log;
access_log /var/log/ispconfig/httpd/domain-name/access.log combined;
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location /stats/ {
index index.html index.php;
auth_basic "Members Only";
auth_basic_user_file /path/to/passwd/file;
}
location ^~ /awstats-icon {
alias /usr/share/awstats/icon;
}
location ~ \.php$ {
try_files /0816f18c2383162111fc93fe015c1607.htm @php;
}
location @php {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9010;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_read_timeout 300;
}
client_max_body_size 24M;
location / {
try_files $uri $uri/ /index.php?$args;
add_header 'Access-Control-Allow-Origin' '*.domain.name';
add_header 'Access-Control-Allow-Methods' 'GET, POST';
satisfy any;
allow <white-listed-IPs>;
deny all;
auth_basic "Members Only";
auth_basic_user_file /path/to/passwd/file;
location ~ \.php$ {
try_files /0816f18c2383162111fc93fe015c1607.htm @php;
}
}
location ~* ^.+.(css|js|jpg|jpeg|png|gif|ico|woff|ttf|otf|eot|svg|pdf)$ {
access_log off;
expires 1h;
}
}
除了这个语句之外,对我来说这看起来相当简单try_files /0816f18c2383162111fc93fe015c1607.htm @php;
。磁盘上没有这个名字的文件。显然这是用于监控或关闭虚拟主机的某种魔法,很难在 Google 上找到它,因为文件名是完全随机的字符串。
知道它是用来做什么的吗?
PS 我们讨论的是 Linux 机器,它也安装了 ISPConfig,不确定这是否重要。Nginx 版本是1.2.0
我接管机器时使用的。
答案1
此条目的一个合法用途try_files
是使网站轻松进入维护模式。在 Web 服务器上创建此文件后,不会执行任何 PHP 脚本,只会.htm
显示该特定文件。
在维护期间,可以更轻松地执行复杂的更新,而不会以意外的方式导致站点中断。
选择此文件名是为了避免与.htm
网站上的任何其他文件冲突。
然而,这种实现维护模式的方式会在维护期间破坏所有其他非 HTML 内容页面,如 RSS 提要、站点地图和 JSON API。