讓fail2ban重新啟動時不會重設阻擋IP規則

讓fail2ban重新啟動時不會重設阻擋IP規則

在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續去嘗試登入伺服器。

如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則可以參考Vinnie Vedi的作法,修改/etc/init.d/fail2ban 的內容。

修改的指令如下:

Read More Read More

MySQL 複製資料到另一個資料表

MySQL 複製資料到另一個資料表

要把兩個資料表合併成一個很簡單。
INSERT INTO table1 (item1, item2, item3...) SELECT item1, item2, item3... FROM table2
這是把table2的東西塞到table1的狀況,後面也可以用WHERE去做一個資料篩選的動作。

or

CREATE TABLE new_table LIKE my_db.old_table;
然後複製
INSERT new_table SELECT * FROM my_db.old_table;

MySQL Replication Slave 忽略所有錯誤訊息(slave-skip-errors)

MySQL Replication Slave 忽略所有錯誤訊息(slave-skip-errors)

最近設定MySQL Replication同步更新,發現了一些問題,總結一下。
最常導致Slave_SQL_Running = no 的情況:
1.Master主機資料與Slave資料不同
2.Slave資料新增了,但Master並無此資料,導致auto id 重複。
3.Master新資料與Slave舊資料重複,而TB本身欄位設定為唯一,所以出現SQL錯誤。

Read More Read More

MYSQL REPLICATION(MASTER SLAVE負載平衡)

MYSQL REPLICATION(MASTER SLAVE負載平衡)

站長們都知道,DB是SERVER最大的罩門,而DB最重要的就是I/O和備援。
其實這也不算新技術了,透過MySQL內健的功能REPLICATION,即可達到單向同步。

MySQL M/S架構的原理大致如下:
1. 新增(Add)、刪除(delete)、修改(update)的動作必須移至Master
2. Master會針對這些動作的語法自動產生binlog 檔案
3. Master會將binlog檔案同步(Replication)至所有的Slave
4. Slave會執行binlog檔案中的SQL語法

開始實做!

Read More Read More

Amazon 在台灣設立 AWS 新節點

Amazon 在台灣設立 AWS 新節點

我們很高興向各位宣佈,為了服務 Amazon CloudFront和Amazon Route 53 的终端用户,
AWS在台北和巴西里約熱內盧推出新的節點。這是我們首次在台灣設立的第一個節點,里
約熱內盧則是繼聖保羅市之後,巴西的第二個節點。這兩個地點讓全世界的AWS節點總數
高達 51 個。

若您已經是Amazon CloudFront或Amazon Route 53的用戶,您的應用程式不需要做任何的
變更就可以享用這些新的節點服務。來自這些地區终端用户的請求,將會自動被導引而獲
得最佳的性能。

台北和里約熱內盧的新節點支援所有CloudFront與Route 53的功能,其中包括讓您的整個
網站能夠加速(靜態、動態和互動式內容)、直播和隨選串流媒體,提供使用者自訂SSL
認證、私有內容和地理限制等資安保障。

台北新節點的價格與香港、韓國和新加坡是相同的,而里約熱內盧新節點價格則與南美洲
相同。亦即表示著您在這些地區的终端用户將享受更低的延遲時間,而無需支付任何額外
的費用。
————————————————————————————————————
什麼時候Linode也來台灣設節點阿?!

apache / lighttpd / nginx 三大開放WEB伺服器評比

apache / lighttpd / nginx 三大開放WEB伺服器評比

一.Web Serve介紹(apache / lighttpd / nginx)

1. lighttpd
Lighttpd是一個具有非常低的記憶體開銷,cpu佔用率低,效能好,以及豐富的模組等特點。lighttpd是眾多OpenSource羽量級的web server中較為優秀的一個。支援FastCGI, CGI, Auth, 輸出壓縮(output compress), URL重寫, Alias等重要功能。

Lighttpd使用fastcgi方式運行php,它會使用很少的PHP進程回應很大的併發量。
Fastcgi的優點在於:

1)從穩定性上看, fastcgi是以獨立的進程池運行來cgi,單獨一個進程死掉,系統可以很輕易的丟棄,然後重新分配新的進程來運行邏輯.
2)從安全性上看, fastcgi和宿主的server完全獨立, fastcgi怎麼down也不會把server搞垮.
3)從性能上看, fastcgi把動態邏輯的處理從server中分離出來, 大負荷的IO處理還是留給宿主server, 這樣宿主server可以一心一意作IO,對於一個普通的動態網頁來說, 邏輯處理可能只有一小部分, 大量的圖片等靜態IO處理完全不需要邏輯程式的參與.
4)從擴展性上講, fastcgi是一個中立的技術標準, 完全可以支援任何語言寫的處理程式(php,java,python…)

2.apache

apache是世界排名第一的web伺服器, 根據netcraft(http://www.netsraft.co.uk/)所作的調查,世界上百分之五十以上的web伺服器在使用apache.

1995年4月, 最早的apache(0.6.2版)由apache group公佈發行. apache group 是一個完全通過internet進行運作的非盈利機構, 由它來決定apache web伺服器的標準發行版中應該包含哪些內容. 准許任何人修改隱錯, 提供新的特徵和將它移植到新的平臺上, 以及其他的工作. 當新的代碼被提交給apache group時, 該團體審核它的具體內容, 進行測試, 如果認為滿意, 該代碼就會被集成到apache的主要發行版中.

apache 的特性:
1) 幾乎可以運行在所有的電腦平臺上.
2) 支援最新的http/1.1協定
3) 簡單而且強有力的基於檔的配置(httpd.conf).
4) 支援通用閘道介面(cgi)
5) 支援虛擬主機.
6) 支持http認證.
7) 集成perl.
8) 集成的代理伺服器
9) 可以通過web流覽器監視伺服器的狀態, 可以自定義日誌.
10) 支援伺服器端包含命令(ssi).
11) 支持安全socket層(ssl).
12) 具有用戶會話過程的跟蹤能力.
13) 支持fastcgi
14) 支持java servlets

3.nginx

Nginx是俄羅斯人編寫的十分羽量級的HTTP伺服器,Nginx,它的發音為“engine X”, 是一個高性能的HTTP和反向代理伺服器,同時也是一個IMAP/POP3/SMTP 代理伺服器.Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪問量第二的 Rambler.ru站點開發.

Nginx以事件驅動的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負載平衡。其擁有匹配 Lighttpd的性能,同時還沒有Lighttpd的記憶體洩漏問題,而且Lighttpd的mod_proxy也有一些問題並且很久沒有更新。

但是Nginx並不支援cgi方式運行,原因是可以減少因此帶來的一些程式上的漏洞。所以必須使用FastCGI方式來執行PHP程式。

nginx做為HTTP伺服器,有以下幾項基本特性:
1)處理靜態檔,索引檔以及自動索引;打開文件描述符緩衝.
2)無緩存的反向代理加速,簡單的負載均衡和容錯.
3)FastCGI,簡單的負載均衡和容錯.
4)模組化的結構。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其他代理伺服器處理單頁中存在的多個SSI,則這項處理可以並行運行,而不需要相互等待。
5)Nginx專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率。它支援內核Poll模型,能經受高負載的考驗,有報告表明能支持高達 50,000個併發連接數。
6)Nginx具有很高的穩定性。其他HTTP伺服器,當遇到訪問的峰值,或者有人惡意發起慢速連接時,也很可能會導致伺服器實體記憶體耗盡頻繁交換,失去回應,只能重啟伺服器。例如當前apache一旦上到200個以上進程,web回應速度就明顯非常緩慢了。而Nginx採取了分階段資源分配技術,使得它的CPU與記憶體佔用率非常低。nginx官方表示保持10,000個沒有活動的連接,它只占2.5M記憶體,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。
7)Nginx支持熱部署。它的啟動特別容易, 並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟體版本進行進行升級。

server

Apache

Nginx     

Lighttpd

Proxy代理

非常好 非常好 一般

Rewriter

非常好 一般

Fcgi

不好 非常好
熱部署 不支持 支持 不支持
系統壓力比較 很大 很小 比較小
穩定性 非常好 不好
安全性 一般 一般
技術支援 非常好 很少 一般
靜態檔處理 一般 非常好

Vhosts虛擬主機

支持 不支持 支持
反向代理 一般 非常好 一般

Session sticky

支持 不支持 不支持

建議方案—-
Apache:後臺伺服器(主要處理php及一些功能請求 如:中文url)
Nginx:前端伺服器(利用它佔用系統資源少得優勢來處理靜態頁面大量請求)
Lighttpd:圖片伺服器

 

nginx 的模組

整體採用模組化設計是nginx的一個重大特點,甚至http伺服器核心功能也是一個模組。要注意的是:nginx的模組是靜態的,添加和刪除模組都要對nginx進行重新編譯,這一點與Apache的動態模組完全不同。
與PHP的整合

目前使用FastCGI+Nginx執行PHP應用時如果配置檔案設定不合理,並不是十分可靠。建議使用NAMP架構(Nginx+Apache+Mysql+PHP),即使用Nginx處理靜態請求,並將動態請求反向代理給Apache處理。

CENTOS 6 (RHEL 6) KVM Bridged Networking KVM的橋接功能

CENTOS 6 (RHEL 6) KVM Bridged Networking KVM的橋接功能

1470351_762900407058930_626141768_n

作業系統 CentOS 6.4
網路上很多關於KVM Bridged的教學,原則上都沒有錯。
但試了近兩天,看了N篇文章,仍然失敗? 為何?
我發現最重要的原因就是:NetworkManager 在作怪!!!
所以請先把NetworkManager 關閉。或是透過ntsysv 把他服務關掉後重開。接著再繼續你所查到的教學。

以下簡短說明:
先檢查相關服務有沒有關
chkconfig NetworkManager off
chkconfig network on
service NetworkManager stop
service network start

先把網卡停用
ifdown eth0

修改網卡內容,設定檔位置 /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
NM_CONTROLLED="yes"
ONBOOT="yes"
BRIDGE="bridge0" ←主要是加上這行 讓網卡開啟Bridge

新增一個Bridged的網址卡
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
ONBOOT="yes"
DELAY=0
BOOTPROTO="static" (因為我是用固定IP,如果非固IP 這行改為dhcp後 以下不用再寫入)
IPADDR=192.168.1.5
GATEWAY=192.168.1.1
DNS1=192.168.1.1

以上到這邊就完成Bridged了

啟用網卡
ifup eth0
ifup br0

這時在KVM中 新增虛擬機時 網路選項就能選 Bridged了。

=============心得補充==================

一但啟用Bridged功能後,原本eth0網卡將失效!

而是被br0給取代,所以這時假設你的電腦(HOST)是固定IP,則應該把HOST原本固定IP的相關資訊寫到br0中!

例如HOST(Linux) IP是 140.112.0.1 , Guset(Windows) 主機想要給他IP是 140.112.0.2,

這時必須在br0內把140.112.0.1 的實際IP寫入(若你本身是用DHCP上網 ,這邊就直接設定DHCP)。接著進入GUEST(Windows)再把140.112.0.2寫到網路卡設定中。

php4 連接 mysql5.1 會遇到的問題

php4 連接 mysql5.1 會遇到的問題

如果確定PORT 、防火牆、帳號都開了,仍然找不出連不上的原因,那很有可能就是 密碼設定錯誤!!!
php4 若要連接 mysql5.1 在設定密碼權限的時候要用OLD_PASSWORD方式。

請試著將下面的語法輸入到你的SQL中
SET PASSWORD FOR  ‘username’@’host’ = OLD_PASSWORD(‘your_password’);

之後就可以正常連接了!
賀一個。

linux下使用SMART工具測試硬碟得到的相關數據

linux下使用SMART工具測試硬碟得到的相關數據

1. smartctl -H /dev/sda

smartctl 5.40 2010-10-16 r3189 [i386-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
結論:PASS表式硬碟狀態良好

2. smartctl -A /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.18-348.16.1.el5xen] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always – 0
3 Spin_Up_Time 0x0027 139 138 021 Pre-fail Always – 4016
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always – 38
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always – 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always – 0
9 Power_On_Hours 0x0032 068 068 000 Old_age Always – 23958
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always – 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always – 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always – 35
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always – 18
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always – 19
194 Temperature_Celsius 0x0022 111 098 000 Old_age Always – 32
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always – 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always – 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline – 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always – 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline – 0
結論:WHEN_FAILED 是空的表示硬碟沒壞軌