我们在安装一些网站程序的时候,常常会看到文档当中的nginx配置文件会这么写
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
很显然,在hestiacp里不能直接这样引用。
如何为自定义模板启用 FastCGI 缓存
比如现在的nginx配置文件是
location ~ [^/]\.php(/|$) {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
}
我们只需要在这个{}中加入这一行
include %home%/%user%/conf/web/%domain%/nginx.fastcgi_cache.conf*;
这行配置的作用是利用hestiacp自带的可用变量将外部的 FastCGI 缓存配置文件引入到 Nginx 的配置中。
同理,在hestiacp中,你应该使用如下配置来将请求传递给 PHP-FPM:
fastcgi_pass %backend_lsnr%;
HestiaCP 变量参照表
名称 | 描述 | 示例 |
---|---|---|
%ip% | 服务器的 IP 地址 | 123.123.123.123 |
%proxy_port% | 代理端口 | 80 |
%proxy_port_ssl% | 代理端口 (SSL) | 443 |
%web_port% | Web 服务器端口 | 8080 |
%web_ssl_port% | Web 服务器端口 (SSL) | 8443 |
%domain% | 域名 | domain.tld |
%domain_idn% | 域名 (国际化) | domain.tld |
%alias_idn% | 别名域名 (国际化) | alias.domain.tld |
%docroot% | 对应域名的网站根目录 | /home/username/web/public_html/ |
%sdocroot% | 对应域名的私有根目录 | /home/username/web/public_shtml/ |
%ssl_pem% | SSL 证书的位置 | /usr/local/hestia/data/user/username/ssl |
%ssl_key% | SSL 密钥的位置 | /usr/local/hestia/data/user/username/ssl |
%web_system% | 作为 Web 服务器使用的软件 | Nginx |
%home% | 默认主目录 | /home |
%user% | 当前用户的用户名 | username |
%backend_lsnr% | 默认 FPM 服务器 | proxy:fcgi://127.0.0.1:9000 |
%proxy_extentions% | 应该由代理服务器处理的扩展 | 扩展列表 |
国际化域名(IDN,Internationalized Domain Name) 是指包含非 ASCII 字符的域名。例如,某些语言中的字母(如西里尔字母、汉字、阿拉伯字母等)无法直接用传统的 ASCII 字符表示,因此需要将这些字符编码为 Punycode 格式来兼容现有的域名系统。
示例:
- 原始域名(带有非 ASCII 字符):
münchen.de
(带有德文字母 "ü") - 国际化域名(Punycode 编码后的形式):
xn--mnchen-3ya.de
在实际的 DNS 系统中,域名 münchen.de
会被转换为 xn--mnchen-3ya.de
,以保证能在传统的域名解析系统中正常工作。
因此,%domain_idn%
变量表示的是在国际化域名编码后的形式。这个功能特别有用,对于那些域名中包含不同语言的字符时,可以确保它们可以正确解析并使用。