2011年10月 的存檔

nginx+tomcat配置負載均衡

2011年10月31日 沒有評論

使用nginx做為前端服務器,tomcat作為后端服務器,通過一些簡單的配置就可以達到tomcat集群的目的。一般情況下,只需要在nginx的配置文件nginx.conf進行如下配置即可。

http {
    upstream  tomcat-host{
        server 192.168.1.201:8080 weight=3;
        server 192.168.1.202:8080;
        ip_hash;
    }  

    server {
        listen 80;
        server_name www.domain.com;  

        location / {
            proxy_pass              http://tomcat-host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
        }
    }
}

其中upstream是配置后端服務器列表、load balance的權重,ip_hash能夠把來自同一個客戶端的多次請求指派到某個固定的后端服務器,能一定程度的解決session問題,如果完美的解決集群后session問題,可以采用memcached的方式來處理。在server段配置中,主要就是proxy_pass,prxoy_pass目標地址就是上述設置的upstream名字,注意,不能缺少“http://”,proxy_set_header處理客戶端的IP信息,由于前端是nginx,在tomcat的java應用中用request.getRemoteAddr(),得到的ip信息不再是客戶端的ip,而是nginx服務器的ip,解決辦法是需要修改java應用,大致可以使用如下代碼:

String ip = request.getHeader("x-forwarded-for");

if (ip == null || "".equals(ip.trim())) {
	ip = request.getRemoteAddr();
} else {
	String[] ars = ip.split(",");
	ip = ars[ars.length-1].trim();
}

http狀態碼204理解

2011年10月31日 沒有評論

HTTP的狀態碼有很多種,主要有1xx(臨時響應)、2xx(成功)、3xx(已重定向)、4xx(請求錯誤)以及5xx(服務器錯誤)五個大類,每個大類還對應一些具體的分類。平時我們接觸比較多的是200、400、500等。

這里我們主要討論一下狀態碼204,在HTTP RFC 2616中關于204的描述如下:

If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent’s active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent’s active view.

意思等同于請求執行成功,但是沒有數據,瀏覽器不用刷新頁面.也不用導向新的頁面。如何理解這段話呢。還是通過例子來說明吧,假設頁面上有個form,提交的url為http-204.htm,提交form,正常情況下,頁面會跳轉到http-204.htm,但是如果http-204.htm的相應的狀態碼是204,此時頁面就不會發生轉跳,還是停留在當前頁面。另外對于a標簽,如果鏈接的頁面響應碼為204,頁面也不會發生跳轉。

所以對于一些提交到服務器處理的數據,只需要返回是否成功的情況下,可以考慮使用狀態碼204來作為返回信息,從而省掉多余的數據傳輸。

分類: web前端 標簽: , ,

更改Centos的yum源

2011年10月31日 沒有評論

前段時間一直使用http://centos.ustc.edu.cn/的源,最近發現更新有問題,遂換成默認的源,執行yum update的時候還是報錯,似乎原因是還在使用默認的ustc的源,后來查了一下,把/etc/yum.repos.d目錄下的文件全部干掉,即 rm -rf /etc/yum.repos.d/*就可以了。在國內163的源似乎也不錯,添加方法為:

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS-Base-163.repo
mv CentOS-Base-163.repo CentOS-Base.repo
yum makecache
yum update
分類: Linux 標簽: ,

nginx設置wordpress靜態資源壓縮和過期時間設置

2011年10月27日 沒有評論

通過對一些靜態資源簡單的設置,例如設置靜態資源的過期時間、以及壓縮,可以減少網站的加載時間,同時也能減少服務器的帶寬。

在nginx下對靜態的過期時間設置為:

        location ~* \.(ico|gif|bmp|jpg|jpeg|png|swf|js|css) {
            root    /var/www/netingcn.com;
            expires 7d;
        }

上述配置能對圖片、flash、js、css文件設置了過期時間為7天,當用戶在7天內再次訪問網站時,大部分情況下都是直接使用本地的緩存,減少網絡傳輸,從而加快了頁面加載速度。

壓縮的配置如下:

        gzip  on;
        gzip_min_length  1000;
        gzip_buffers     4 8k;
        gzip_types       text/plain application/x-javascript text/css;

對文本、js和css文件進行壓縮,一般情況下,壓縮后的大小是原始大小的25%,甚至更小。

centos、utunbu安裝軟件

2011年10月26日 沒有評論

centos下配置好軟件源,可以通過yum方便的安裝需要的軟件,例如:yum install vim,注意執行這樣的操作需要root權限,切換到root下,或者用sudo yum install vim。不過有時候軟件的名字和包名并不是一致的,在某個版本后centos就沒有包含whois命令,當使用 yum install whois提示No package whois available,想要知道whois對于的包名,可以借助于yum search whois,執行后發現有jwhois.i686 : Internet whois/nicname client這行信息,然后使用yum install jwhois,順利安裝上whois了。

另外,在linux的另外一個發行版Ubuntu中,是采用apt來管理軟件包的,對于的安裝命令為apt-get install xxx,如果要搜索軟件對應的包名,則是使用apt-cache search xxx

搜狗輸入法–調整字詞的順序

2011年10月26日 沒有評論

個人習慣,不喜歡詞出現的位置經常變動,所以在設置–>高級–>動態詞頻前面的勾去掉,這樣一來,詞的位置就固定的,但比如我們經常輸入的某個詞默認不是第一個,這就比較不友好,不過可以通過兩種方法來調整。一種是選中“動態詞頻”,然后再輸入法輸入那個那個詞的拼音,通過數字選擇哪個詞,不出意外,下次再輸入的時候就出現在第一位,如果還不是第一位,就多操作幾盤,應該就可以在第一位了,然后再把“動態詞頻”前面的勾去掉即可;另外方法是輸入詞后,把鼠標移動到需要的那個詞上面,會出現提示,選擇“固定首位”即可。

對于單字的順序調整,采用上述調整詞的第二種方法即可。例如,在默認情況下,輸入b出來的第一個字是“吧”,但是我更習慣第一個是“不”,調整方法就是輸入b后,在出來的候選字上找到“不”,把鼠標指針移動到“不”上,在出來的提示框中點擊“固定首位”,下次再輸入“b”時,首位就變成“不”了。

javascript中如何判斷某變量是否存在

2011年10月25日 沒有評論

如果js代碼中用到了某個變量,但是該變量又沒有聲明,只是script就會報錯,大致是“變量xx沒有定義”,可以用如下方法來判斷一個變量是否已經定義了。

if (typeof(x) == "undefined") {
    alert("未定義");
}

該方法判斷一個變量是否未定義,適用于兩種情況:

1、x 從來沒有出現過。

2、x 只是用 var 聲明了,但沒有賦值。

rsync同步時出現rsync: failed to set times on “xxxx”: Operation not permitted

2011年10月25日 沒有評論

出現rsync: failed to set times on “xxxx”: Operation not permitted的原因大致是對文件夾(或文件)xxxx沒有操作權限。如果執行同步的用戶是root,是不會有這樣的問題,但是rsync也可以不使用root用戶來進行同步,不使用root用戶的情況下,即使使用了-o,-g,同步到目的文件夾的文件用戶和組都變成了同步使用的用戶,但是用-p后文件權限可以保留。當目的文件夾(或文件)xxxx事后做過修改使owner不是rsync使用的用戶,即使xxxx的權限是777,也會出現上述錯誤。

分類: Linux 標簽: , ,

PHP Warning: date(): It is not safe to rely on the system’s timezone settings

2011年10月25日 沒有評論

通過觀察nginx的錯誤日志,發現大量的如下錯誤:

PHP Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing’ for ‘CST/8.0/no DST’ instead in

通過搜索,發現從php5.3 ,當對使用date()等函數時,如果timezone設置不正確,在每一次調用時間函數時,都會產生E_NOTICE 或者 E_WARNING 信息。知道了問題的根源,解決的方法有三種,任選一種即可。

一、在頁頭使用date_default_timezone_set()設置 date_default_timezone_set(‘PRC’);
二、在頁頭使用ini_set(‘date.timezone’,'Asia/Shanghai’);
三、修改php.ini。打開php5.ini查找date.timezone 去掉前面的分號修改成為:date.timezone =PRC

注意:上述設置都是針對中國大陸來設置的,同時PRC也可以用Asia/Shanghai,Asia/Chongqing,Asia/Urumqi來代替。

分類: Linux 標簽: ,

rsync同步隱藏文件和排除文件

2011年10月21日 沒有評論

rsync同步命令的基本寫法

rsync 命令選項 源目錄 目標目錄

假如源目錄寫為 /var/www/就會把該目錄下所有文件同步到目標目錄,如果寫為/var/www/*,那么當前目錄下的隱藏文件(文件夾名或文件名是以”.”號開頭)則不會被同步,不過子目錄中的隱藏文件還是會被同步。

假設需要排除某個文件(或文件夾),可以用–exclude來指定,例如需要排除源目錄下的dir1文件夾,可以寫為:

/usr/bin/rsync -vzrtopg –exclude=dir1 /var/www/src/ /var/www/dest

可以同時排除多條,例如:

/usr/bin/rsync -vzrtopg –exclude=dir1 –exclude=dir2 /var/www/src/ /var/www/dest

除了上述方法,還可以通過–exclude-from來指定,例如:

/usr/bin/rsync -vzrtopg –exclude-from=exclude.list /var/www/src/ /var/www/dest

exclude.list文件中指定需要排除的列表,例如:

dir1
[0-9]*
dir2/.[a-z0-9]*
.svn

含義是排除/var/www/dir1、/var/www目錄下所有以數字作為名字的文件和文件夾、/var/www/dir2/目錄下的隱藏文件和/var/www目錄下所有.svn文件夾,包括其子目錄中的.svn文件夾。

注意:exclude和exclude-from前面都是有兩個減號,如果漏寫了一個,命令行不會報錯,但是不能排除執行的文件或文件夾。

無覓相關文章插件,快速提升流量

30选5怎么中奖