特碼的,谷歌又用不了了。
吐槽完畢,正文如下:
caddy是一個用go語言開發的服務器,可用作web端。
caddy本身支持 -conf caddyfile的配置
在命令行中的體現: caddy -conf caddyfile
caddy是自定義的命令別名,-conf參數代表是對命令行中配置文件的讀取,caddyfile就是配置文件。
其中caddyfile是文件名,這個名字的定義,自己就隨意了。
fastcgi path endpoint [preset] {
root directory
ext extension
split splitval
index indexfile
env key value
except ignored_paths...
pool pool_size
upstream endpoint
connect_timeout duration
read_timeout duration
send_timeout duration
}
- 路徑(path)是在請求轉發之前匹配的基本路徑。
- 端點(endpoint)是FastCGI服務器的地址或Unix套接字。
- 預設(preset)是可選的預設名稱(見下文)。使用預設時,不需要重復預設的各個設置。
- root指定FastCGI服務器使用的根目錄,如果與虛擬主機的根目錄不同。如果FastCGI服務器位於不同的服務器,chroot-jailed和/或containerized上,這是有用的。
- ext指定擴展名,如果請求URL具有該擴展名,則會將請求代理到FastCGI。
- split指定如何拆分URL; 分割值成為第一部分的結尾,並且URL中的任何內容成為PATH_INFO CGI變量的一部分。
- index指定文件未由URL指定時要嘗試的默認文件。
- env設置一個帶有給定值的名為key的環境變量; 在 ENV屬性可多次使用和值可以使用請求的占位符。
- except是fastcgi處理以外的空格分隔的請求路徑的列表,即使它與基本路徑匹配。
- pool是要重用的持久連接的數量(可以在Windows上的性能很好); 默認值為0。
- upstream指定要使用的附加后端。將執行基本負載平衡。這可以多次指定。
- connect_timeout是連接到后端的時間。必須是持續時間值(例如“10s”)。
- read_timeout是從后端讀取響應的時間。必須是持續時間值。
- send_timeout是允許向后端發送請求的時間。必須是持續時間值。
其中關於端點, endpoint這個東西的配置,官網上的示例為:
fastcgi / 127.0.0.1:9001 {
}
其中的127.0.0.1:9001這個就是endpoint中說的 FastCGI服務器的地址 同時,它只是第一種方法,或:后面還有 Unix套接字, 我使用的是ubuntu,其次環境搭建的是lnmp,我有現成的php-fpm,在php的文件:php/etc/php-fpm.conf(這只是個在php5.4.45中,具體得看自己的機器),監聽的是socket文件為:php-cgi.sock,也就是unix的套接字。
但是網上的配置文件多為安裝好php后復制一份,然后進行配置,該工程堅挺服務器地址。。。話說我只是研究go語言和服務器啊喂,這個搞那么復雜感冒啊喂。
所以將上面的例子改動成
fastcgi / /youPath/php-cgi.sock php {
}
就可以了,服務器就可以解析php了。