管理實務

本頁用來記錄一些使用 Pixmicat! 架設板面時的參考資料。

config.php 建議設定

memory_limit

memory_limit 這個值是限制 PHP 所能使用的記憶體量。如果版面經常上傳尺寸大的圖片,則預設值將會不夠。

建議視伺服器所能承擔的負荷,酌量加大用量限制。但注意太大也可能會壓縮到其他程式的記憶體使用量。

STATIC_HTML_UNTIL

STATIC_HTML_UNTIL 這個值是每次版面文章變更時,重新產生靜態頁面的數目。如果版面有 100 頁意味者每次都要重新生成 100 個檔案,十分吃 CPU Time。

建議此值可設為一正整數,讓程式只生成前幾頁,後面比較少人看的頁面再使用動態生成產出,節省資源。

搭配 Apache 使用之進階設定

注意:以下內容均假設伺服端空間有開放使用 .htaccess 檔修改伺服器組態之功能,並有安裝相關的模組。請自行了解您所使用的空間是否支援相關功能。

快取最佳化

由於 Pixmicat! 為一貼圖討論板,運作的流量需求便十分可觀。若能善加利用用戶端至伺服端連線中所可能經過的各種快取(包含使用者的瀏覽器內建快取以及網路上的代理伺服器等),便能以相同的空間配置服務更多使用者。

範例

於 Pixmicat! 架設之空間設定如下的 .htaccess :

ExpiresActive   on

ExpiresByType   text/html               "modification"
ExpiresByType   application/xhtml+xml   "modification"

<FilesMatch "([0-9]{13})s?\.(jpg|png|gif)$">
ExpiresByType   image/jpeg              "modification plus 1 year"
ExpiresByType   image/png               "modification plus 1 year"
ExpiresByType   image/gif               "modification plus 1 year"
</FilesMatch>

如上的設定使用了 mod_expires 的功能,可以將 (X)HTML 頁面設定為馬上過期,下次瀏覽時瀏覽器會自動檢查頁面是否有更新。對於頁面中所張貼的圖檔,則將其過期時間設定在未來;在快取容量足夠的前提下,該些圖檔只需下載一次即不會再被同一用戶端/代理伺服器重複請求下載。

CoralCDN 之應用

在伺服器流量極度受限的場合,可利用 CoralCDN 的分散式快取架構來有效降低流量。然需注意用戶端開啟圖檔時的顯示速度會嚴重受限,因此不建議完全強制使用。

範例

於 Pixmicat! 架設之空間設定如下的 .htaccess :

RewriteEngine   on

RewriteCond     %{REQUEST_URI}          ^/(.+)/(src|thumb)/(.+)
RewriteCond     %{HTTP_USER_AGENT}      !^CoralWebPrx
RewriteCond     %{QUERY_STRING}         !(^|&)coral-no-serve$
RewriteRule     ^(.+)   http://%{HTTP_HOST}.nyud.net:8080/$1    [R,L]

如上的設定是使用 mod_rewrite 之功能,將所有圖檔(包含大圖和縮圖)均重導為使用 CoralCDN 之連結。

防盜連

討論板上之附圖,可能會遭人直接轉貼連結至其他地方,甚至亦有不肖使用者會故意將貼圖討論板作為外連存圖空間使用。為避免伺服器資源遭不當濫用,可參考使用防盜連設定。

範例

於 Pixmicat! 架設之空間設定如下的 .htaccess :

RewriteEngine   on

RewriteCond     %{REQUEST_URI}          ^/(.+)/src/(.+)
RewriteCond     %{HTTP_REFERER}         !^http://%{HTTP_HOST}(.nyud.net:8080)?/(.+)/
RewriteCond     %{HTTP_USER_AGENT}      !^CoralWebPrx
RewriteRule     ^(.+)                   -                       [F,L]

需注意原圖連結被轉載至 Telnet bbs 上,而後有使用者自 Telnet 軟體點選連結之情況,亦會被以上設定判定為盜連。若您可以接受如此的討論方式,請不要套用以上防盜連設定。加上RewriteCond %{HTTP_REFERER} !^$ 在 RewriteRule 一行之上。

參見

討論

新增一則回應
登入為 Wikidot 使用者
(將不會發佈)
- +
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.