2013年12月30日 星期一

IIS 7.5 Web Farm With Loading Balance (Session Problem)


http://serverfault.com/questions/288981/load-balanced-iis-7-5-web-server-asp-net-session-state-problem


A:  open state server to store session (make sure all the farms can access state server via network connection)

B:  synchronize the machine key
http://technet.microsoft.com/en-us/library/cc755177%28WS.10%29.aspx

C:  share IIS configuration ( the Site ID must be equal )
http://www.iis.net/learn/manage/managing-your-configuration-settings/shared-configuration_264

 http://www.iis.net/learn/manage/managing-your-configuration-settings/configuring-a-web-farm-using-iis-shared-configuration


2013年12月27日 星期五

MySQL Connection Tuning (Too Many Connections)

1. Default :

mysql> show global variables like '%timeout%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 50    |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 28800 |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 28800 |
+----------------------------+-------+

mysql> show variables like '%timeout%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 50    |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 28800 |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 28800 |
+----------------------------+-------+

mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 150   |
+-----------------+-------+


2. online setting

set global wait_timeout = 60;
set global interactive_timeout = 1200;
set max_connections = 500;

 mysql> show variables like '%timeout%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 50    |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 1200  |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 1200  |
+----------------------------+-------+

mysql> show global variables like '%timeout%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 50    |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 1200  |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 60    |
+----------------------------+-------+

mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 500   |
+-----------------+-------+

3. config setting

[mysqld]
wait_timeout = 60
interactive_timeout = 1200
max_connections = 500


2013年12月19日 星期四

Git - Create Empty Project



mkdir   newgitproject
cd newgitproject
git --bare init

2013年12月16日 星期一

StartSSL 免費憑證


摘自 http://blog.mowd.tw/index.php?pl=950



前一陣子朋友介紹了 StartSSL 這個可以全球唯一可以申請免費 SSL 證書的網站
申請後的 SSL 證書有效期限為一年
經過一番測試之後,Mowd 終於申請成功並且安裝到 Apache
現在就可以透過 https://ssl.mowd.tw 來瀏覽經過 https 加密的網誌囉


StartSSL 註冊過程如下:

1. 使用 IE 連到 http://www.startssl.com,點選右上角鑰匙圖案進入註冊頁
Mowd 之前要用 Chrome 註冊時,StartSSL 提示因為憑證匯入問題,不建議使用 Chrome ,於是 Mowd 是用 IE 註冊的

2. 點選 Sign-up 按鈕進行註冊


3. 接下來會看到一份註冊表格,填寫的資料必須正確
因為申請後 StartSSL 會進行審核,如果隨便寫寫就不會過了
送出表單後要等一下才會收到確認信,Mowd 大概十分鐘內就收到了
確認信中包含一串驗證碼,將驗證碼貼入表格終究可以完成驗證


4. 完成驗證後會要求你輸入登入 StartSSL 的憑證密碼,並且自動將登入憑證安裝到 IE 瀏覽器
日後如果要匯出登入憑證到其他電腦的話
可以到 IE 的「網際網路選項 --> 內容 --> 憑證」的個人分頁匯出




註冊完成之後,再來是申請 SSL 憑證
StartSSL 的免費帳戶可以申請 Class1 憑證
每一個憑證可以擁有一個主網域跟一個子網域
如果需要多個子網域的話,憑證可以分開申請,憑證數量一樣沒有限制
申請步驟如下:
1. 登入 StartSSL 後會進入 Control Panel 介面
首先必須要驗證你是網域的管理者
所以先點選 Validations Wizard
驗證方式選擇 Domain Name Validation




2. 接下來輸入主網域名稱,不要包含子網域


3. StartSSL 會根據網域註冊資料,發送驗證碼到你註冊網域的 E-mail
把驗證碼輸入表單送出後就完成網域驗證了







完成網域驗證後,接下來就是申請 SSL 證書了
1. 首先點選 Certificates Wizard 進行申請流程
選擇 Web Server SSL/TLS Certificate


2. 接下來要產生私鑰,先輸入一個大於 10 位數的密碼
密碼只能包含英文和數字
至於 Keysize,Mowd 是選 4096 位元


3. 下一個頁面就是剛剛我們產生的私鑰內容
這個私鑰文件是經過加密的,稍後我們要將他解密
把文字方塊內容儲存下來,並命名為 ssl.key


4. 接下來選擇我們要產生 SSL 證書的主網域以及子網域






5. 最後文字方塊裡面的就是 SSL 證書
將文字方塊裡面的文字儲存起來,檔名為 ssl.crt
另外記得要下載 intermediate 和 root CA 證書
如果缺少這兩個,Firefox 會出現「sec_error_unknown_issuer」
並且出現警告頁面告訴你不要信任 StartSSL 的 SSL 證書
http://www.startssl.com/certs/sub.class1.server.ca.pem
http://www.startssl.com/certs/ca.pem


以上步驟我們可以得到私鑰 ssl.key 以及 SSL 證書 ssl.crt
接下來我們要在 Apache 啟用 SSL
Mowd 是使用 CentOS 5.5
所以接下來 Mowd 都以 CentOS 5.5 的環境來介紹
1. 首先檢查 Apache 有沒有安裝 mod_ssl
可以透過 yum install mod_ssl 來安裝

2. 接下來將 ssl.key 上傳到 /etc/pki/tls/private/
將 ssl.crt 上傳到 /etc/pki/tls/certs/
將 sub.class1.server.ca.pem 以及 ca.pem 上傳到 /etc/pki/tls/

3. 前面提到我們取得的私鑰 ssl.key 是加密過後的
如果沒有解密的話,每次 Apache 啟動後都要輸入密碼
解密步驟如下:
#cd /etc/pki/tls/private/
#openssl rsa -in ssl.key -out ssl.key
接下來會提示你輸入私鑰密碼,輸入完就解密囉

4. 再來打開 /etc/httpd/conf.d/ssl.conf
將 ssl.conf 內各項憑證的路徑及檔案修改如下
SSLCertificateFile /etc/pki/tls/certs/ssl.crt
SSLCertificateKeyFile /etc/pki/tls/private/ssl.key
SSLCertificateChainFile /etc/pki/tls/sub.class1.server.ca.pem
SSLCACertificateFile /etc/pki/tls/ca.pem

5. 儲存後重新載入 Apache,SSL 就生效囉
SSL 測試網頁:https://ssl.mowd.tw









Firefox不信任StartSSL证书问题解决

8/22/2012

StartSSL证书的支持率一直是一个很大的问题,今天在Apache中安装完StartSSL证书之后遇到了以下情况:
  • Firefox提示“此连接是不受信任的”,同时Opera则在地址栏左侧状态中提示“服务器试图应用安全措施,但没有成功”;
  • 桌面版本Chrome显示已经加密,但iOS版Chrome则提示“此网站尚未经过身份验证。”;
  • Win7下IE9和iOS版本Safari都显示已经加密。
理论上讲,StartSSL支持除了Opera外所有的主流浏览器,因此Firefox遇到的不受信任的连接是不正常情况。
经过查看官网文档和Google后找到了问题的原因:Firefox仅包含了StartCom的根证书,而中间证书需要服务器提供,一般网上的Howto都不会提及这一点,所以会出现类似问题。

CA证书的下载界面
以下解决方法基于Jason Weathered的文章《A free SSL certificate for your web server》改进(之前Kaijia是根据《Setting up SSL: Ubuntu and Apache 2》架设的SSL,其中证书和Key文件都放在/etc/apache2/ssl/文件夹中,此例中假定你将域名的.crt和.key文件也放在/etc/apache2/ssl/中):
首先你需要在StartSSL的控制板的Tool Box->StartCom CA Certificates中下载StartCom CA证书,需要下载StartCom Root CA (PEM encoded)、你的证书等级对应的CA证书(免费的Class 1证书下载Class 1 Intermediate Server CA)。下载完成后将这两个pem文件复制到服务器的/etc/apache2/ssl/文件夹中。
在命令行下运行以下命令:
1
2
3
4
cd /etc/apache2/ssl
mv ca.pem startssl.ca.crt
mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt
cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt
然后修改原来SSL部分的Apache设置,Kaijia虚拟域名的原有设置为:
1
2
3
4
5
6
7
<VirtualHost *:443>
DocumentRoot /var/www/yourdomain.com
ServerName yourdomain.com
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/yourdomain.crt
SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.key
</VirtualHost>
在原有设置中增加一条:SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt,更改为如下:
1
2
3
4
5
6
7
8
<VirtualHost *:443>
DocumentRoot /var/www/yourdomain.com
ServerName yourdomain.com
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/yourdomain.crt
SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.key
SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt
</VirtualHost>
之后重启Apache:
1
service apache2 restart
刷新浏览器后Firefox显示连接安全,而Opera在Linux下显示安全,Windows下仍然提示“服务器试图应用安全措施,但没有成功”,可能与系统根证书目录,但毕竟StartCom自己都没说过支持Opera,这样说来问题也是解决了。