我们在安装一些网站程序的时候,常常会看到文档当中的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% 变量表示的是在国际化域名编码后的形式。这个功能特别有用,对于那些域名中包含不同语言的字符时,可以确保它们可以正确解析并使用。

包含的标签:

教程, HestiaCP

最后更新: September 26, 2024