Author Archive codeant

Bycodeant

讓 Apache 具備基本的防 DoS 攻擊能力!

evasive 這個模組可以提供 Apache 基本的防 DoS 能力,注意,這指的是 DoS 而非 DDoS ,因為 evasive 主要就是依同一 IP 的單位時間連線數請求來作為防禦的依據,對於 DDoS 並沒有太大的效用,但是對於 DoS 則是非常不錯了。

在Ubuntu 16.04 LTS 下的安裝指令如下:

sudo apt-get install libapache2-mod-evasive 
sudo mkdir /var/log/mod_evasive 
sudo chown www-data:www-data /var/log/mod_evasive/ 
sudo vim /etc/apache2/mods-available/evasive.conf 
sudo a2enmod evasive sudo service apache2 restart

安裝之後你必須修改  /etc/apache2/mods-available/evasive.conf 設定檔,簡單的設定內容如下:

Read More

Bycodeant

架設網站選用虛擬主機?還是自建主機?先從防 DoS 攻擊能力談起!

首先我們來談談 DoS 跟 DDoS 有什麼不同?不要懷疑,很多人都跟我說是一樣的東西,沒錯!它們是很像,但是不完全一樣,DoS 的全名是Denial-of-Service,就是阻斷服務,而 DDoS 則是 Distributed Denial-of-Service ,多了一字,變成分散式阻斷服務,這2種網路攻擊的基本精神相同,但手法有所變化,而後者不管在防禦上或是判斷上難度都高出許多。

站在網站防禦的角度上,DoS 攻擊可以是一台電腦就達到,例如用ApacheBench這隻測試程式就可以達到攻擊的目的,所以我們可以用 IP 來源+單位時間內的連線數,去做出有效的判斷,進而採取防禦手段;但 DDoS 是分散式的,也就是攻擊的來源是由多個不同的來源 IP 在同一段時間內持續發起連線請求,進而佔據目標網站的大量資源,達到阻斷服務的目的,在判斷上跟防禦上,難度都高很多,舉一個簡單的問題為例,誰是真的訪客?誰又是真的來亂的?這就防禦DDoS的難處。

Read More

Bycodeant

用 PHP 開發的 HTML, CSS, JavaScript Minifier

分享一下在網路上找到,用 PHP 開發的 HTML, CSS, JavaScript minifier,也有人把 minify 稱之為壓縮(compress),我個人認為這並不是真正意義上的”壓縮”,”壓縮”應該是像是 gzip 或是 apache 的 mod_deflate 才是,所以 minify 會是比較好的說法,minify 是一種瘦身工具,去除了不必要的多餘字元,進而達到減少檔案原始 size 的方式,實際測試呢?本站的首頁原始大小約為 20617 bytes,經過這隻程式 minify 之後,網頁瘦身成 19117 bytes,成功減重 7.27%。

Read More

Bycodeant

Joomla 快取模式效能測試

測試環境:

Server : AWS EC2 t2.micro + Ubuntu 16.04 LTS 

測試指令:

ab2 -n 5000 -c 50 http://codeant.cc/

 

沒有快取時:Requests per second:    25.99 [#/sec] (mean)

Read More

Bycodeant

MySQL 資料庫效能調校的好幫手 mysqltuner.pl

除了用 PHPMyAdmin 來進行 MySQL 資料庫的性能優化之外,mysqltuner.pl 這一個用 Perl 寫成的 Script 也是相當實用的小幫手,我都是用來做 double check 用的,安裝跟使用上也是簡易的等級,學習曲線並不高。

Read More

Bycodeant

用PHPMyAdmin幫MySQL資料庫進行效能優化

PHPMyAdmin 這套軟體絕對是使用 LAMP 環境架設網站的必裝套件之一,它的功能還包含 MySQL 資料庫的效能優化,對於網站效能,我們錙銖必較,而資料庫的效能調校,你絕對不能忽視。

Read More

Bycodeant

PHP mail 的簡易測試 Script

提供一下簡單的 PHP EMail Test Script,在執行 PHP mail() 之前,你必須確認 php-mail, sendmail, snmp 這三個套件已經裝上了,才能讓這個 script 發揮效用。

$to      = "bill@codeant.cc"; 
$from    = "john@codeant.cc"; 
$subject = "PHP Email 簡易系統環境測試"; 
$message = "如果你有看到這封 Email ,那就代表 PHP Mail 測試通過了。";  

mail($to, $subject, $message, $from);
printf("PHP Email Test Done!\n");
Bycodeant

如何讓 str_replace 只取代第一個出現的字串?

有需求就會去開發,如果沒有現成的可用的時候,有時候就是會想要只取代第一個出現的目標字串,下面的 PHP 程式碼可以滿足這個功能,你也可指定要取代的次數。

 

function str_replace_count ($search, $replace, $subject, $count = 1)
{
$search = '/'.preg_quote($search, '/').'/';
return preg_replace($search, $replace, $subject, $count);
}

// Test
$subject = "abc123456abc789654abc456abc123";
$search = "abc";
$replace = "xxyyzz";

echo "Replace once : ".str_replace_count($search, $replace, $subject)."\n";
echo "Replace twice: ".str_replace_count($search, $replace, $subject, 2)."\n";

 下面是測試的結果:

Replace once : xxyyzz123456abc789654abc456abc123 
Replace twice: xxyyzz123456xxyyzz789654abc456abc123

Bycodeant

Ubuntu 16.04 LTS 的 LAMP 環境架設

當初是為了開發 Android 系統而開始使用 Ubuntu 12.04,過程中其實也沒有時麼不適應的問題,作為一個開發人員,挑系統也不是一個很正確的行為,也因此讓我變成 CentOS(伺服器),  openSUSE(筆電), Ubuntu(Android 開發) 三刀流。但是在AWS(Amazon Web Services) 的 EC2 上,我其實是選用 Ubuntu 16.04 來作為我的 t2.micro instance 的作業系統。

下面簡單紀錄一下啟動 LAMP 環境的安裝過程:

Read More

Bycodeant

安裝 Webalizer 來觀察網站訪客情況

當你採取自己管理主機來架設網站的時候,你可以使用 Webalizer 來觀察網站的訪問情況,Webalizer 主要是使用 Apache Web Server 的 access.log 來進行分析統計,在安裝上不管是 CentOS  或是 Ubuntu 系統都提供相當方便的方式,下面我們以  Ubuntu 16.04 LTS 來當作例子。

安裝指令:

Read More