Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: Apache

Apache Proxy Timeout

Posted on 2021 年 6 月 27 日2021 年 6 月 27 日 By 日落 在〈Apache Proxy Timeout〉中尚無留言

當 Apache 設置為 reverse proxy 並將 HTTP request 轉給 PHP 時,上傳的檔案會先由 Apache 暫存,上傳完成以後才將檔案丟給 php-fpm。

若檔案很大,php-fpm 儲存檔案會花掉不少時間 (disk I/O),當 response 超過 Apache 預設的等待時間,Apache 會式微 php-fpm timeout:

[Fri Jun 25 22:30:26.848272 2021] [proxy_fcgi:error] [pid 584854:tid 139969302353664] (103)Software caused connection abort: [client 11.11.11.11:1276] AH01075: Error dispatching request to : (reading input brigade), referer: https://my.domain/upload

此時可以加上參數:

Timeout 600
ProxyTimeout 600
Tags:Apache

調整 Apache 2.4 的檔案上傳大小

Posted on 2021 年 6 月 27 日2021 年 6 月 27 日 By 日落 在〈調整 Apache 2.4 的檔案上傳大小〉中尚無留言

可以透過 LimitRequestBody 來限制 HTTP request 的上限:

<Directory "/path/to/upload">
    LimitRequestBody 4294967296    # 4GB in bytes
</Directory>
Tags:Apache

Apache / Nginx 與 PHP 各種搭配方式的效能測試

Posted on 2017 年 8 月 2 日2021 年 3 月 12 日 By 日落 在〈Apache / Nginx 與 PHP 各種搭配方式的效能測試〉中尚無留言

以 PHP 為主的 HTTP server 有很多種架設方式,最傳統的大概就是 Apache + mod_php 來執行 PHP scripts。隨著技術一直在翻新,後來也有了 Nginx + php-fpm 的搭配模式出現,甚至連 PHP 在 5.4.0 都推出了 built-in server。

因公司需要,就順手測試了以下幾種搭配:
  • Apache mpm-prefork + mod_php
  • Apache mpm-worker using mod_proxy + php-fpm
  • Apache mpm-worker using mod_proxy + php-fpm (by unix socket)
  • Nginx + php-fpm
  • Nginx + php-fpm (using unix socket)
  • PHP build-in server
在開始看壓力測試結果之前,先來說一下測試環境:
  • 所有的 HTTP server 除了以上搭配方式之外,其他都使用預設值 (像是不開啟 gzip 壓縮等)
  • 另外壓力測試的 PHP script 內容也很簡單,僅有「phpinfo();」一行
  • 1 core CPU
  • 4 GB RAM
  • 使用 ab (Apache Bench) 做測試
  • ab 中每個 concurrency 固定會發出 1000 個 HTTP request,如 concurrency = 1 時僅有 1000 個 request,concurrency = 100 時,則送出 1000 x 100 個 request。
  • 每次 ab 跑完一次壓力測試,均重新啟動 HTTP server 與 PHP server,以防止使用到 cache。
先簡單做個結論,詳細的壓力測試結果再請大家自行過目:
  • concurrency = 1 時,沒有壓力測試會出現的情況,不過可以把 response time 和伺服器的 CPU、記憶體使用量當作一個基準值作為參考。
  • Apache mpm-prefork 搭配 mod_php 的記憶體使用量最大,畢竟要 fork 一個 Apache instance 出來就要把 Apache 的 module 也 initialize 出來。小型伺服器不推薦這個方案。
  • php-fpm 即使設定「pm.max_children = 50」,也可以輕鬆負荷超過 50 個 concurrency。比較微妙的是從 htop 看不出 php-fpm 有使用 thread 來同時處理 request。
  • php-fpm listen on Unix socket 的效率比 listen TCP (127.0.0.1:9000) 的效率還要高一些,但是在高負荷的情況下會變得很不穩定,猜測和 OS 的 socket 實作、設定有關連。
  • PHP built-in server 遇到在高負載的情況下表現的不錯,唯獨 log 給的資訊太少,不方便做分析。但也可考慮透過 Nginx proxy 給 PHP built-in server,讓 Nginx 來處理 log。
最後做個廣告,Hackmd 真不錯用,筆記寫完最後還以轉換成 HTML 下載,有夠方便的啦!
Tags:Apache, Linux, Nginx, PHP, 資訊學習

隱藏 HTTP Server 資訊

Posted on 2013 年 6 月 15 日2022 年 7 月 16 日 By 日落 在〈隱藏 HTTP Server 資訊〉中尚無留言
隱藏 HTTP Server 資訊

Apache 和 Nginx 預設頁尾都會加上伺服器資訊,像是:

有些環境或許很忌諱出輸出這類的資料,可以修改設定將他隱藏起來。

Apache conf 中調整 ServerTokens 參數,將頁尾伺服器資訊作不同的調整。設定檔路徑可能會不一樣,可以 grep ServerTokens,以下是 Ubuntu 的路徑。

/etc/apache/conf.d/security:

#ServerTokens OS
ServerTokens Prod

Nginx conf 裡面則是用 server_tokens 參數,將其設定為 off 則不會輸出伺服器版本號。

server {
   server_tokens off;

   ...
}
Tags:Apache, Nginx, Web

轉貼:開元中最好的 web 開發資源

Posted on 2011 年 6 月 11 日2021 年 3 月 12 日 By 日落 在〈轉貼:開元中最好的 web 開發資源〉中尚無留言

CoolShell.cn 網站上整理了不少網頁開發相關資源,包括:

  • 學習 HTML5 編成與設計
  • Server 端工具
  • PHP Framework 與工具
  • 資料庫
  • API 與即時資訊處理 (在線數據)
  • 線上軟體開發與媒體工具
  • 程式資源與版本管理工具
  • JavaScript Framework
  • JavaScript 移動與觸摸相關 framework
  • jQuery 外掛與相關資源
  • HTML5 視訊播放器
  • JavaScript 音訊處理與視覺化工具
  • JavaScript 2D、3D 圖形
  • JavaScript 與 HTML5 API (接口?)
  • 其他 JavaScript 工具
  • Client 端工具
  • CSS3 與字型資料
  • 網站樣板
忘了貼網址 XD

开源中最好的Web开发的资源

http://coolshell.cn/articles/4795.html
Tags:Apache, CSS, HTML, JavaScript, MySQL, PHP, 網路架站

文章分頁

1 2 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.