blogspot.com-GA4

星期三, 6月 24, 2009

(轉)夜貓子上班族,10招避免過勞死

夜貓子上班族,10招避免過勞死

24小時營業在台灣愈來愈猖狂,造成有人在睡覺時,總有人在工作。這群輪班工作人往往睡不好、吃不好,甚至罹癌機率比一般人高。你是這群人嗎?如何保健才能永保安康?
熱門PPT:按此下載

文.黃惠如

2004/09 康健雜誌 70期

三更半夜,台灣人可以去健身房健身,到眼鏡行修眼鏡,到書店買書,獸醫門診也照開,網咖、超商從不打烊,就算午夜臨時想買蛋糕,幫壽星慶生,也不是問題。

不打烊的24小時經濟型態,尤其是金融、科技、服務等行業,配合歐美時區或客戶時間,造成有人在睡覺時,總有許多人還在工作。美國的調查發現,每五個工作人中,就有一人是輪班工作者。

雖然二十四小時營業為大家帶來便利,但也帶來影響。英國的科學家認為,「24小時的社會」對健康影響程度如同「吸菸」。

2001年發表在權威期刊《刺胳針》的研究,首度出現「24小時社會(24-hour society)」一詞。英國佘瑞大學拉佳拉南教授指出,24小時社會不僅帶來嚴重的失眠、腸胃病、心血管疾病,甚至也帶來社交問題。
睡不著就是大問題

睡眠問題最為常見。

輪班方法千百種,有的公司是三班制,也有的公司分大夜班、小夜班。在這種輪班制下,有人上日班7天後,再輪小夜班7天,然後輪大夜班7天。哈佛大學醫學院摩爾愛迪博士認為,「簡直就像依照波士頓時間活7天,巴黎時間再過7天,再改為東京時間過7天。」

任職於網路公司客服部的韓炅廷就深受其害。

他要輪調小夜班和大夜班,輪大夜班是晚上10點上班、早上8點下班,回到家輾轉難眠。「熱牛奶、熱水澡、精油、喝酒、褪黑激素,所有可以讓我睡著的方法都試過,」他說,但還是無法倒頭就睡。

他並非特例。根據國外的調查,約有四分之一的輪班工作者或夜間工作者有嚴重的失眠,或有睡不飽愛睏的困擾。
狀況頻仍

睡眠不足造成的影響不僅僅只是倦怠、嗜睡、煩心,更嚴重的是容易發生意外。

想想看,當睡神向你招手,大腦恨不得飛奔而去,卻勉力維持清醒,的確很容易發生意外。輪班人員發生意外的地點不只在工作場合,也發生在路上和家裡。

統計發現,和睡眠相關的車禍最常發生在清晨2點~6點,而且駕駛常常是整夜工作。

而且,疲倦的員工的工作表現比充分休息的員工差。英國佘瑞大學的研究也指出,夜間輪班工作者會降低注意力和工作表現,他們會有較差的反應、記憶力和活力。總結來說,和日班的同事相比,他們工作起來較易出錯。
輪班輪成癌症?

更長期來說,輪班和慢性疾病有關。

我國勞工安全衛生研究所的研究發現,輪班工作者的總熱量、蛋白質、醣類及膽固醇的攝取,明顯高過正常日班人員。

任職於網路公司的韓炅廷承認,回家後常常買不到東西吃,最常靠超商便當解決三餐。

輪班工作甚至還可能增加罹癌機率。

哈佛大學公衛學院大規模長期追蹤記錄護士的健康,發現經常上夜班的護士,罹患結腸癌的機率增加35%;另一項由哈佛醫學院和波士頓伯明罕婦女醫院合作的研究也發現,常上夜班的女性比較容易罹患乳癌。

研究人員懷疑,這和夜間工作會干擾褪黑激素分泌有關。
破壞家庭生活

另一個不可忽視的是,輪班工作影響家庭生活。休閒時間很難和家人配合,當你回家時,家人往往正在睡夢中或是早已上班、上學去。

在電視公司擔任編譯的徐啟芳發現,同事排輪休時,大部分的人仍舊希望排正常的星期六、日,以維持和家人的互動。往往單身者就必須讓已婚者先排休,但這也引起單身者不平,「就算沒結婚,我也有父母、兄弟姊妹呀,」他引述一位同事的話說。

韓炅廷的父母也擔心,他這樣的輪班法會讓他「娶不到老婆」。

如果你也是輪班工作者,以下10個方法,可以讓自己的日夜生活品質好一點:

1下班回家路上(大約是早上八、九點),戴上墨鏡。別讓陽光重新設定你的生理時鐘,延誤了睡眠週期。

2用心營造高品質的睡眠環境。安靜、涼爽、漆黑(考慮特別厚的窗簾),和朋友、家人提醒尊重你的睡眠時間。提醒朋友,別在你的睡覺時間打電話進來,因為這就相當於半夜三更有人到他家敲門一般。

3在一整個輪班週期中,盡可能保持作息規律,包括固定時間起床、固定時間吃飯。

4值班前兩小時,可以小寐一下,彌補不足的睡眠。

5額外多做運動。研究發現,額外的運動可以幫助輪班時差,也可以幫助工作時的清醒。

6下班前半小時,不要再喝任何含咖啡因的飲料,因為咖啡因要排出體外,需要一段時間。

7值夜班時,避免油膩食物及甜食。半夜到清晨消化道功能最差,容易造成腸胃道疾病,新光醫院家庭醫學科主治醫師陳仲達提醒,少用泡麵當點心。而且,輪大夜班時,常不知道吃的是哪一餐,陳仲達醫師建議,還是把醒後第一餐當主餐,最後一餐盡量排在睡前至少3小時,並且餐餐力求清淡並營養均衡。

8隨輪班時間調整慢性病用藥時間。輪班人員輪完大夜班後稍事休息就會就寢,如果糖尿病人,依照醫矚在早上服用降血糖藥,就上床睡覺,容易發生低血糖現象。陳仲達醫師提醒,糖尿病、高血壓病人在輪大夜班時,用藥時間也應調整為下午起床後服用,而非早上服用。

9在換班前,先為下一輪的作息做準備。如果即將接夜班,前兩天可以先把上床的時間往後挪,起床的時間也往後挪一些,先讓身體適應下一輪班的作息。

10如果都沒有改善,更該尋求醫生的協助。
企業應提出高效率的輪班計畫

如果企業主能將人體的生理時鐘考慮進去,將有助於員工的安全、靈敏度和工作表現。美國麻州波士頓生理時鐘研究中心摩爾愛迪博士表示,「時程表排得好,產能可以提高30%。」

※依照順時鐘方向輪班,從日班、小夜班、大夜班,漸次輪換。

※至少持續一週以上,才再度換班,不同班別之間,最好有1~2天間隔,讓身體事先適應。

※休假時間最好安排在正常的週末,讓他們可以兼顧家庭生活。

※加強輪班人員的營養、睡眠保健教育。

夜又再亮了起來。當你去看午夜場電影,總有人必須在你離場後打掃。我們無法自外於24小時社會,但總可以想想如何讓自己睡好一點。
應該向褪黑激素、安眠藥說yes嗎?

長久以來安眠藥被貼上負面標籤,例如會上癮,或舉止失常。常見女明星台上「恍神」的行為,被解讀為吃安眠藥。

儘管大多數台灣人不贊同吃安眠藥,事實上卻吃很多安眠藥。根據衛生署藥政處統計,台灣每千人每天平均使用9.1顆安眠藥,是美國的3倍(美國為3.1顆),也就是說,幾乎每天每百人就有一人要靠安眠藥入眠。

台大醫院精神科醫師李宇宙解釋,所謂「恍神」,有可能是過量使用安眠藥或是使用時機不對,安眠藥就像退燒藥一樣,要正確、適當使用。

而且隨著藥學發展,新一代的安眠藥沒有耐藥性,成癮性也較小。

安眠藥的發展從早期巴比妥酸鹽(Barbiturates),容易上癮又有致命危險,到後來被苯環類(Benzodiazepines)取代,直到90年代開發出來非苯環類(non-benzodiazepines),因具備低依賴性與成癮性的優點,成為目前處方的主流。

雖然醫生認為失眠用藥物治療,不必忌諱,「如同老花眼要帶老花眼鏡一樣,」台大醫院精神科主治醫師李宇宙說,但醫生們還是將藥物視為最後一線的治療,而且要經過醫生的評估開出處方才行,不要私自買藥吃。

那麼在歐美造成旋風,據說又不會成癮的褪黑激素可以嘗試嗎?有些要搭飛機東奔西跑的工作人,常要靠褪黑激素幫助睡眠,雖然台灣尚未核准,很多人會從國外帶回來。

天然的褪黑激素是由大腦松果體在黑暗下產生的荷爾蒙,它會降低中心體溫,造成昏沈感。

褪黑激素的效果目前還有爭議。一些研究發現,褪黑激素可以幫助入睡,減少醒著的時間,但並無助於整體睡眠。

但對於輪班人員來說,褪黑激素有助於生理調適。如果在正確時間服用低劑量褪黑激素,可以提前或延後睡眠時間,效果持續6個小時。因此也有人主張,只要控制得宜,褪黑激素可以當作減輕時差或幫助輪班人員使用。

但什麼是「控制得宜」?

由於褪黑激素在美國屬健康食品,不受食品藥物管理局(FDA)規範,常發現劑量純度和標示並不相符。

而且它並非是無害的健康食品,它其實還是有副作用。例如有報告指出,服用褪黑激素後會有倦怠、憂鬱的現象。動物實驗也發現,褪黑激素會提高血壓和導致不孕。有些人體實驗也發現,褪黑激素有提高心臟相關疾病、高血壓、腎臟病、中風等風險。

除非長期安全試驗已經完成,否則對那些已經在使用的人來說,還是在冒著過量或毒性過高的風險。
你的睡眠IQ高嗎?

測試一下,看你對睡眠了解多少?

1.睡覺時,腦也在休息。

2.你不可能要求自己少睡一、兩個小時,還能精神奕奕。

3.即使睡夠了,無聊也會讓人想睡。

4.閉目養神並不能滿足身體睡眠的需要。

5.打呼沒什麼大不了,它並不會危害或干擾睡眠。

6.每個人每天都會作夢。

7.年紀愈大,需要的睡眠愈少。

8.大部分的人當自己想睡覺時,並不會察覺。

9.如果開車想睡覺,可以提高收音機的音量,來保持清醒。

10.睡眠障礙主要是因為焦慮或心理問題。

11.人類的身體從來無法適應夜間工作。

12.大部分的睡眠障礙不需要治療。

解答:

1.錯。當你的身體在休息,腦並沒有休息,腦通常在睡覺時為明天的清醒做準備。

2.對。睡眠的需要是生理性的,每個人需要多少睡眠,早就由基因決定。大部分的成人最佳的睡眠時間是8小時。如何知道自己需要睡多久?就是不用鬧鐘可以自然醒的時間。

3.錯。人們在活動時,通常不會察覺自己想睡覺;當他們休息或覺得無聊時,才會注意到。想睡覺的最大原因就是睡不夠,並不是無聊。

4.對。睡眠就像食物、水對身體的重要性一樣,休息是無法替代睡眠的。當你沒有獲得足夠的睡眠時,你的身體會欠下睡眠債,或早或晚都要補足。

5.錯。打呼有可能是威脅生命的睡眠呼吸中止症,整晚鼾聲如雷,然後突然窒息一兩秒。

患有這種病狀的人通常晚上睡不安穩,白天會嗜睡,就會提高意外和心臟病的風險,並且經常腦子缺氧,造成腦神經衰弱、記憶減退。

但有95%患有睡眠呼吸中止症的人,並不知道這種病的嚴重性,幸好經過治療,病人可以增進他的睡眠品質,目前台灣很多醫院開設睡眠門診,你可以尋求醫生幫忙。

6.對。雖然很多人不記得他們的夢,但每個人、每個晚上的確有作夢。

7.錯。睡眠的需求並不會隨著年歲而改變,老人會在夜間醒來多次,也可能睡得少一點,但他們通常會在白天睡多一點,並非他們睡眠需求變少。

8.對。大部分的人並不能察覺自己想睡,研究發現只有在被問的時候,才會發現。這意味人們不知道自己是不是想睡、何時想睡、為何想睡。尤其是開車,千萬不要以為只有幾公里,自己一定撐得過。

9.錯。研究顯示,吵鬧的收音機、嚼口香糖、或打開窗戶,並不能保持清醒。你只有一個辦法,就是停在一個安全的地方,打個小盹,或喝點含咖啡因的飲料。或是兩樣都做,如打盹後喝杯咖啡。但是,最好的方法還是在你要長途開車前,飽飽睡個好覺。

10.錯。壓力只是失眠的其中一個原因,睡眠失調原因很多,也有生理性原因,如睡眠呼吸中止症也會妨礙睡眠。

11.對。所有的生物(包括人類、動物、植物)都有24小時的節律,影響你何時清醒,何時想睡。陽光與黑暗設定這個節律,因此,一個輪班工作者的節律無法被改變,不管輪班多少年,一到午夜至清晨六點,還是會想睡。

12.錯。很多為睡眠失調所苦的人並不知道他們可以治療,睡眠失調不治療,並不會消失。睡眠治療包括行為治療(例如睡眠時間、減重)、藥物治療等。


來源:康健

Obfuscator 混淆器 - ProGuard(轉)

Obfuscator 混淆器 - ProGuard

快速混淆步驟

1. 開啟GUI

java -jar proguardgui.jar

2. Input/Output:Add input -> 要被混淆的jar
3. Input/Output:Add output -> 混淆過後jar的輸出檔案位置
4. Input/Output:Add library -> 設定相關的library
5. Shrinking:關掉
6. Obfuscation :Options中留下Obfuscate及Flatten package hierarchy就好
7. Optimization:關掉
8. Information:如果是J2ME需開啟Preverify,否則關掉
9. Process:Process

混淆選項

* -dontobfuscate:不混淆
* -printmapping [filename] :輸出名稱轉換的對照表
* -applymapping filename :依對照表轉換名稱
* -obfuscationdictionary filename :自訂用來混淆的辭彙(用預設的a,b,c,..就很好了
* -overloadaggressively : 有些副作用,不管它
* -useuniqueclassmembernames : 讓自動產生的辭彙不會重複,以避免多次混淆時,遇到相同名稱時需要重新命名(不用管它,就讓ProGuard自動改名稱就好)
* -dontusemixedcaseclassnames:不要混合大小寫,建議勾選(有些作業系統會忽略檔名大小寫的差異,而視為相同檔案,如Windows)
* -flattenpackagehierarchy [package_name] :package階層扁平化,統一移到[package_name](不指定package_name時為root package)
* -repackageclasses [package_name] :全部移至一個package,會造成resource無法讀取
* -keepattributes [attribute_name,...]
* -renamesourcefileattribute [string]
* -adaptresourcefilenames [filter]
* -adaptresourcefilecontents [filter]

混淆器列表

* ProGuard freeware,支援Java 1.6
* yGuard freeware,支援Java 1.6
* jode freeware,不支援Java 1.5的部份語法
* The Marvin Obfuscator freeware,僅在Java 1.2, 1.3, 1.4beta上測試過

* RetroGuard 非商業授權

* Smokescreen/Timewindow 15天試用版(混淆器/使用時間限制)
* CodeShield 10天試用
* DashO 14天試用
* JCloak 30天試用
* jobfuscate 無限制試用,但試用版無實際混淆效果
* Zelix KlassMaster 30天試用
* Jshrink

延伸閱讀

* Java程序的加密和反加密
* 运用加密技术保护Java源代码
* Decompiling Java - Protecting Your Source: Strategies for Defeating Decompilers

(轉)求職第三部曲 履歷自傳

求職第三部曲 履歷自傳

文章來源:Career 職場情報誌

履歷怎樣寫,幫自己加分?

如果把求職比喻為「自我行銷」,
那麼履歷表的撰寫技巧,就決定你的「賣相」好壞。
你該怎樣包裝個人優勢?

對於很多七年級的新鮮人來說,找工作的第一件事就是,上人力銀行去登錄履歷。由於網路履歷表的內容與項目規格化,想從形式上凸顯創意並不容易,不過,想讓自己的履歷表受到人資主管的青睞,還是有些方法可循。
首先,可以主動投履歷給心儀的公司,而非被動由人力銀行媒合。IC設計公司松翰科技人資副理張慈芬表示,「只要是主動投遞的履歷,我們會多一些關照,這表示他曾經主動瞭解過我們公司。」
雖然人力銀行的網路履歷表,簡化了求職者寫履歷的繁瑣,但是,「網路履歷表轉檔之後並不易閱讀,」因此張慈芬建議,不妨自行動手設計履歷表。格式不見得要花俏,但一定要清楚交待學歷、專業學習方向、論文主題、證照、社團與實習經驗、應徵職務等基本資料,能掌握企業想知道的重點,就是合格的履歷。
對於理工科系學生來說,找工作並不難,難的是如何找到最適合自己的工作。張慈芬建議,一定要仔細填寫「理想職務名稱」與「興趣」欄目,人資主管方能做出最適切的面談安排。
寫履歷最大的要點是,「要想辦法引起別人的興趣,」光寶科技人力資源部副總經理鮑惠明強調,記得強化個人的特殊才能、曾參加過的比賽。關於社團經驗,不要只寫社團名稱,最好寫出所扮演的角色,甚至分享社團活動的故事。

自傳扮演履歷的輔助角色
大部分的科技公司都以學歷別,做為篩選履歷的主要依據,很多科技公司坦承,自傳並不是重點。不過,其他業別相對則非常重視自傳內容。
台北富邦銀行招募理財專員時,只要符合「三好六證照」(學歷好+社團經驗好+實務打工經驗好;擁有產物保險+人身壽險+投資型保單+信託+證券業務員+期貨業務員等六種證照)的人,就容易出線參加面試。
但是,「有時候,三好六證照很難一下子從履歷表看出來,要看自傳才能判斷,」台北富邦銀行金融服務部資深經理譚克明指出自傳的重要。

分析個人專長與優勢
撰寫自傳時,不宜太冗長,訊連科技人力資源部首席顧問蘭堉生建議在600個字左右即可。重點放在分析個人專長與競爭優勢、人格特質,切忌寫一堆跟這份工作沒關係的事,如:「我在某年冬天寒夜裡誕生」這種描述就可以免了。
如果家庭教育對人格的養成有很大的影響,也可以簡短交待。明基人力資源處資深協理童文池曾經看過一封自傳寫道,「從小家庭破碎,由阿嬤扶養長大,後來考上雲科大,」顯示他肯力爭上游,未來工作態度應該也很積極上進。
寫自傳,最忌毫無組織能力、詞不達意。一定要記得分段,並且想一個吸引人的標題,勾起對方的閱讀興趣。無需談太多的人生大方向與自我期許,「否則只能算論文比賽第一名而已,」譚克明說。

點出企業要的關鍵字
另外,在校期間修過的學科、學習心得與收穫、以及論文主題等,凡是可能跟這份工作相關的,都可以在自傳中放大或加粗,讓人一眼就注意到。
有些公司在篩選網路履歷自傳時,會設定關鍵字搜尋,例如手機廠商可能把RF(無線射頻)當成關鍵字,只要自傳提到曾經修過RF課程、或做過RF專題研究,立刻能脫穎而出。
要提醒的是,撰寫履歷與自傳時,切勿誇大不實,明明英文只有普通讀寫能力,卻寫成聽說讀寫俱優,如此一來,很容易在面試時當場穿幫。
而寄出履歷自傳前,記得要再三檢查提及該公司名稱時有無筆誤,否則張冠李戴的結果,當然是絕不可能錄用。

包裝履歷表的賣點
想要將自己成功行銷出去,就得設法增加自己的「賣相」。只要能夠讓自己的履歷表看起來豐富一點,就能增加勝算。究竟可在履歷自傳強調哪些重點,為自己加分?

加分重點1:學歷條件
在高科技產業,愈接近上游產業及研發性質的工作,愈要求名校與碩士學位。如IC設計公司松翰科技,就有八成為碩士學歷。童文池不諱言,「一軍公司要的絕對是一軍人才,」台成清交、中央、中山、台科大與北科大畢業生,根本供不應求,極為搶手。
不過,在廠務端(生產製造部門),被視為二軍的私立學校理工科系學生,則有很大的機會。
在金融業,徵才數量最大宗的理財專員只需大學畢,但牽涉財務工程、新金融商品的話,都要碩士以上。
至於服務業則最不重視學歷,甚至高學歷有時會被質疑放不下身段。以星巴克為例,只要新鮮人具有熱忱開朗、樂於與人互動的性格特質,幾乎都有面談的機會。

加分重點2:實習經驗
為提早預約優秀人才,不少大企業提供學生實習的機會,如友達光電的A+種子計畫、微軟「未來生涯體驗計畫」、P&G「未來領袖俱樂部」等,而大學與企業的建教合作也普及化,不只提供學生提早認識職場的機會,有些還歡迎畢業後直接進入企業任職,等於是提早拿到大企業的聘書。
人資主管都喜歡最少有一、兩個月實習經驗的新鮮人。以微軟的「未來生涯體驗計畫」為例,提供扎實的禮儀、職場態度、活動支援等訓練,從實作中學習,對將來就業很有幫助。

加分重點3:打工紀錄
打工是認識職場的好機會,不要純粹為了賺零用錢去打工,而應著眼於為將來的工作預做準備。
在金融業,如果有客戶服務經驗,對應徵理財專員很有幫助。其他服務業更重視打工經驗,如果能在自傳中寫明打工心得,讓人覺得你吃苦耐勞,就很容易受到青睞。
和泰汽車管理部經理劉松山建議,打工的經驗最好能累積為有效知識,即使在7-ELEVEn、麥當勞打工,也可以趁機進一步瞭解其進出貨、教育訓練的實務做法,而不只是純賺錢而已。

加分重點4:社團活動
在重視團隊合作的職場裡,溝通協調與團隊合作是必備的職能。不分行業,幾乎所有的企業都重視社團經驗。童文池表示,參加社團代表著你懂得與人互動、明白團隊的精神,而不會孤芳自賞。如果曾擔任社團幹部,更證明你有領導潛力。
另外,像是念文史哲的學生,如果有參加證券社、投資研習社的經驗,也可增加敲開金融業大門的機會。

加分重點5:專業證照
在金融業與資訊業,證照是基本要求。以理財專員為例,最好具備產物保險、人身壽險、投資型保單、信託、證券業務員、期貨業務員等證照。而MCSE、MOS、CCNA則是資訊業的基礎證照。
預先考取證照,表示你對於從事這份工作已預做準備。一位光電大廠人資管理師表示,如果具備甲級空污處理、品管技術師、品管工程師、勞工安全管理技術士等專業證照,前來應徵相關工作,絕對是優先考慮的人選。

加分重點6:論文主題
研發性質與科技業的工作,除了學歷之外,也格外重視論文題目。例如:只要論文題目與影音有關的,訊連科技都廣開歡迎大門;松翰科技重視論文更勝於學校出身,只要研究主題與影像語音、通訊有關,都是急尋的人才。
在發展成熟的產業,如汽車業,論文則只是做為參考,「畢竟論文無法影響產業經營的模式與策略,不過倒是可以提供新的點子,」劉松山說。

加分重點7:專業科目
愈是技術職的工作,在學校修習的專業科目,對求職加分效果愈大,像台灣大哥大的電信與IT類工作,就會將修過哪些專業科目,列為重要參考。
冷門理工科系學生,不妨在學校時代選修其他系所的學分,或是參加外部專業訓練機構,如清大自強基金會、半導體學院所開的課程。

加分重點8:校外比賽
想要從事行銷業務、創意設計或是軟體開發工作的話,參加相關競賽是個人實力的絕佳證明。例如:L'OREAL的商業策略網路競賽、光寶的創新設計獎、旺宏金矽獎、趨勢科技百萬程式競賽等,都備受肯定,吸引許多在學生報名參加。今年和泰汽車也推出第一屆「尋找企業接班人」的商業個案競賽,瞄準優秀人才。

星期四, 6月 18, 2009

IIS+Tomcat 整合環境測試

目前還有問題仍在尋找關鍵點中,老實說可能還是卡在了 isapi吧!!
看了很多文章還是沒有用 開了.jsp 頁面,
還是變成直接開啟文字檔把程式碼給全都抓出來了,
卡在哪一點真的不曉得,
請客戶從防火牆下手看看吧!!
這樣子效能也比較好摟


一、安裝環境

測試環境
IIS 5.1
tomcat 6.0.20

1. 先安裝設定好 IIS Tomcat
※安裝Tomcat時把Tomcat旁邊的+號點開勾選Service和Native。

2. 安裝Tomcat Connector mod_jk

1.2

用預設安裝 C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector
※到tomcat.apache.org下載新版的isapi_redirect.dll,覆蓋掉上個步驟產生的檔案
isapi_redirect.dll
※這一步需要測試

3.新增一個環境變數,變數名稱輸入CATALINA_HOME,變數值輸入Tomcat的安裝路徑,例如我的內容是:C:\Program Files\Apache Software Foundation\Tomcat

6.0.20

二、開始設定 IIS、Tomcat

**1. 在點選你的WEB站台中新增一個虛擬目錄名叫 jakarta ,目錄請指到 isapi_redirect.dll,權限請選擇「讀取」、「執行指令檔」、「執行」三項

2. 啟動IIS點選你的WEB站台按右鍵,選「內容」進入「ISAPI篩選器」→新增,篩選器名稱輸入「Jakarta Redirector」,執行檔輸入「C:\Tomcat 4.1

\bin\iis\isapi_redirect.dll」(視你實際的位置而定)

3. 打開一個記事本輸入以下內容
[code]
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="C:\\Program Files\\Apache Software Foundation\\Jakarta Isapi Redirector\\log\\iis_redirect.log"
"log_level"="emerg"
"worker_file"="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0.20\\conf\\worker.properties"
"worker_mount_file"="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0.20\\conf\\uriworkermap.properties"
[/code]

※ 再看文章時 看到註冊檔如果為 "extension_uri"="/tomcat/isapi_redirect.dll" 此時他的 "虛擬目錄" 設定也是叫 tomcat 名稱相同
其中這兩項
"worker_file"="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0.20\\conf\\worker.properties"
"worker_mount_file"="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0.20\\conf\\uriworkermap.properties"
為關鍵,其中的檔更為關鍵,內容和格式都很重要,用exe安裝這部份就可省略。


將該內容另存成iis_redirect.reg在任意位置,
檔案建好之後即可執行該檔案,按下確定後會將檔案內容註冊進windows裡頭
※記得在這個檔案中的 jakarta 要與 虛擬目錄 名稱相同

4. 到tomcat\conf下打開一個記事本輸入以下內容並將檔名存成worker.properties

# ************ Begin worker.properties **************
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13
worker.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat 6.0.20
#上面這一行指到你的tomcat目錄
worker.java_home=C:\Program Files\Java\jdk1.6.0_10
#上面這一行指到你的java的目錄
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
# 這裡有說要改成主機功能變數名稱位址
# ************ End worker.properties **************


5. 到tomcat\conf下打開一個記事本輸入以下內容並將檔名存成uriworkermap.properties

# ************ Begin uriworkermap.properties **************
default.worker=ajp13
/=$(default.worker)
/*=$(default.worker)
/ROOT/=$(default.worker)
/ROOT/*=$(default.worker)
/manager=$(default.worker)
/manager/*=$(default.worker)
/examples=$(default.worker)
/examples/*=$(default.worker)
/tomcat-docs=$(default.worker)
/tomcat-docs/*=$(default.worker)
/webdav=$(default.worker)
/webdav/*=$(default.worker)
#以上的目錄結構,視您webapps下的目錄結構自行增減,

#例如webapps目錄底下如果建立了一個ePOS的資料夾,
#那麼上面就得再加上
/ePOS=$(default.worker)
/ePOS/*=$(default.worker)
# ************ End uriworkermap.properties **************


三、模擬環境(視實際情況而定)
1. C:\WINDOWS\system32\drivers\etc\hosts

#127.0.0.1 localhost
127.0.0.1 www.frt.com
127.0.0.1 www.a.com

2. 打開IIS管理器,在左側網站一欄新建網站:www.frt.com,其目錄指向空目錄C:\Inetpub\frt\,讓網站有執行(如ISAPI應用程式或CGI)的許可權。
同時,在tomcat中也要建立相同的站點,修改conf/server.xml,添加:
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
prefix="ovtch_vm_log." suffix=".txt" pattern="common" resolveHosts="false"/>

注意站點目錄與IIS中是不同的,這個會默認在ROOT中。


3. 在ROOT目錄底下建立了一個ePOS的資料夾,則在該資料夾中建立一個名為WEB-INF的資料夾,並在WEB-INF資料夾中建立兩個名為classes和lib的資料夾

4. 先將TOMCAT關閉,再將IIS重新啟動,再開啟TOMCAT

5. 將電腦關機幾秒鐘之後再開機

6. 開機後在IE裡輸入http://localhost/examples/jsp/dates/date.jsp,重新整理幾次確定JSP程式能正常執行

7. 將自己寫的*.jsp網頁放進ROOT以及ROOT中的目錄裡,假如目錄名稱為ePOS,檔案名稱為test.jsp

8. 在IE裡輸入http://localhost/test.jsp以及http://localhost/ePOS/test.jsp,若有正常執行程式的話就表示您已經成功了

9. 若是失敗的話請先檢查第10步及以後的步驟,再不成功的話就請將以上全部檢查一遍吧

10. 當其它目錄中的網頁要連結進您的JSP網頁時可用絕對路徑法或是URL




但或許此時還不行,這時你該確認以下幾點:
1.你的「Internet信息服務管理器」->「網站」->「默認網站」->「屬性」->「ISAPI篩選器」中的jakarta是否是向上的綠色箭頭?如果是紅色的,檢查一下你之前做

的配置有沒有少了或是寫錯了點什麼,再重新配置一遍
2.確認你的Tomcat安裝目錄下的common\lib目錄中是否有tools.jar文件(Tomcat5好像是有的,但Tomcat4中是沒有的,網上的文檔很少提到這件事,致使我多次配置

失敗),沒有的話從JDK的lib下拷一個過去。
3.IIS指向的目錄最好和Tomcat指向的目錄一致,不然會發生找不到圖像和其他資源文件的問題。(這點不影響執行,呵呵!)
4.英文文檔中還提到應該把IIS6設置為IIS5隔離模式,「Internet信息服務管理器」->「網站」->「屬性」->「服務」,把「以IIS5.0隔離模式運行WWW服務」打上勾

。不過我不打勾也能正常使用,如果你配置不成功也可以試試這個。



注意的問題:
1,注意你的兩個配置檔workers.properties和uriworkermap.properties和註冊表的新添加的內容,如用exe安裝版jk,則不用擔心這個了。
2,要注意IIS要對這個jakarta目錄有足夠的許可權.如果你的篩選器添加失敗很有可能是許可權的原因.
3,這裏有可能出現ISAPI篩選器不能載入的問題,狀態一欄是紅色箭頭,許可權問題。
4,添加新的Web 服務擴展jakarta之外還要使它允許。另外同樣要注意許可權的問題,因為涉及到Internet訪問,還有就是注意拼寫不要寫錯,比如把jakarta寫

成了jarkata。
5,如果你前面都對,只是你輸入http://www.test.cn/hello.jsp,沒有出現你要的頁面.那麼還請查看還有你有沒有開啟 Tomcat,並在Tomcat引擎中是否載入了和

IIS相對應的WEB應用?加上8080埠是否能訪問,如果能,那估計就是jk的連接出了問題。
 其實正常的話,整個過程是不需要重啟iis的。

補充:
上面的完成後,其實還有一個問題,就是index.jsp並不能當做默認頁面來處理,即訪問www.test.com是看不到效果的,必須加上index.jsp這樣的具體檔案名才行,怎

麼解決呢?
方法一:使用index.html來跳轉,方便,實用,但會影響一定速度,也不是本問題的根本解決辦法,因為,不可能每個有index.jsp的目錄,每個站點,都添加個

index.html吧?

方法二:首先在iis里加應用程式擴展.jsp找相應dll來處理,然後配置默認文檔為index.jsp,重啟服務後查看,結果是不可以的!!事實證明,這種常規的想法是不正

確的。
方法三:正是本文採取的方法,也是比較好的解決方法,其實就是弄明白一個問題,這所以能讓它行,是為什麼行呢?原因在於iis轉來的請求類型,即在檔

uriworkermap.properties這個中,打開後可以看到,
/admin/*=wlb
/manager/*=wlb
/jsp-examples/*=wlb
/servlets-examples/*=wlb
//以下兩行是經過處理後加的
/*.jsp=wlb
/*.do=wlb
//意為所有.jsp,.do的檔都交由tomcat來處理,還在上面的那些目錄,明確指出了尾碼名,所以要做修改:
/*.jsp=wlb
//即所有的請求都由tomcat來處理,這就出現了問題,那所有的asp,jpg等等所有檔都轉來處理,就失去了整合的意義,所以要做如下添加:
//意為如下格式的不用wlb處理,還是由iis來處理,就減少了tomcat處理的能效,並且 iis處理這些檔能效更高一些
!/*.jpg=wlb
!/*.asp=wlb
!/*.gif=wlb
!/*.js=wlb
!/*.swf=wlb
!/*.png=wlb
!/*.htm=wlb
!/*.html=wlb
!/*.rar=wlb
!/*.zip=wlb
!/*.avi=wlb
!/*.rmvb=wlb
//修改完畢
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
!/servlets-examples/*.jpeg=wlb
#
# Mount jkstatus to /jkmanager
# For production servers you will need to
# secure the access to the /jkmanager url
#
/jkmanager=jkstatus
這樣解決了JSP站點的問題,但如果所有的其他請求都轉過來了,肯定也不行了,因為,ASP,PHP的站點同時也需要在tomcat中設置相應站點 了,太麻煩,也不是整合

的目的,所以,把ISAPI篩選器 配置到每一個需要支援jsp的站點,而不是配置到IIS的全局設置中,這樣實現了,IIS中的沒有配置為支援JSP的站點,就會與ISAPI與

TOMCAT都沒有任何關係,這樣就很好的解決了此問題,要注意,做方法三時,方法二中所說的並不用做,也就是不用在IIS中所為實現index.jsp 為目的的任何設置。
總結:
說到底,這就是兩種服務的一種集成,使之外部看起來像一種服務,可以這麼理解:
外部訪問功能變數名稱-->解析後到IP-->IIS查找相應站點-->發現jsp文件-->轉至jk連接處理-->將相應檔解釋轉給Tomcat-->將頁面返回給IIS-

->展現給用戶端。
那麼哪出了問題,就查哪,一步一步來,一定能成功的,希望對大家有所幫助,另外多看官方手冊,多想其中的原理,網上流傳的各種文檔不一定就是正確的,包括本

文,只是儘量詳盡的給一種引導。




參考來源:
http://www.javaworld.com.tw/jute/post/view?bid=9&id=99459&sty=1&tpg=1&age=-1

http://www.atcns.com/blog/?p=179

http://www.diybl.com/course/4_webprogram/jsp/jsp_js/200889/135268.html

http://melinhunter.blogspot.com/2006/12/iis-tomcat-6.html

星期日, 6月 07, 2009

R-Proxy - 使用Apache架設(轉)

R-Proxy - 使用Apache架設

來源:http://www.study-area.org/tips/r-proxy.txt

作者: Duncan Lo < duncan@twn.wox.org >

更新日期: 2002.07.08
適用對象: 防火牆或系統管理員.
適用條件: 對 Linux 環境有基礎的管理及操作能力.
文章附註: 本篇文章為自由文件,歡迎非商業性質轉載,並請註明出處!
商業性質轉載請來信告知!
特別注意: 1.本篇文章提供之程式及設定*不一定*符合您的環境,
請依您的系統環境適當地修改程式及設定.
2.在執行任何具破壞性的動作及行為前,
請確認您已作好完整可用的資料備份工作.


-

本文共分兩個單元,第一單元是簡介 R-Proxy 基本觀念,及使用 Apache 架設 R-Proxy 的方法基本設定,第二單元是利用 Apache Rewrite 模組,使用 R-Proxy 設定Web 主機的分散負載及主機容錯的功能.


-

第一單元: 架設 R-Proxy


一般的 Proxy 主機,是服務內部的 Client 上網用的,通常都是用 Squid 架設,同時為了存取效率及節省頻寬, Squid 本身也提供 Cache 的功能,所以一般 Proxy主機也稱為 Proxy Cache Server 代理快取伺服器.


R-Proxy 本身也是一種代理伺服器,那個 R 代表的是 Reverse 反向的意思,最主要的用途是反過來代理,替 Internet 的使用者代理存取內部受限制的網站,假如有開啟 Cache 功能,它同樣可以提供 File Cache 的功能,簡單來說 R-Proxy就像是把 Proxy 的架構及需求,反向過來,使用者角色對調的意思.詳細的介紹可以參考最後面的 Netscape Proxy Server - Reverse Proxy 圖文.


R-Proxy 實際應用上多與防火牆整合在一起,代理存取內部的網站,不讓外部使用者直接存取內部受限制及保護之網站,或是將 Web 依目錄結構由數台主機來分散服務,實測上,只要路徑及設定正確,該 R-Proxy 可以支援如html,php,asp,java及cgi程式的Web 環境.而內部的 Web 主機可以設限只有 R-Proxy 的 IP 位置才可來存取,而一般的Internet 使用者不行直接存取,相當於把 R-Proxy 當成一台虛的 Web 主機,相對的,網站的安全性也提高了.


在使用上, Proxy Cache 需要 Clien t在 IE, Netscape 內設定,或是在 Firewall上設成通透式的Cache方式,才可以使用 Proxy Cache 的功能,但用 R-Proxy, 使用者是完全不用作任何設定,只要 Firewall 或 Web 管理員把 R-Proxy 設好就行了.


R-Proxy 的作法有很多種,使用 Apache 架設是目前最容易的方法,請特別注意,以下的教學是以 TurboLinux 7 Server 及 Apache 1.3.20 作示範,你實際的環境可能會需要作一些修改.還有以下的所說的 Proxy 是指一種功能,請不要跟 Squid 這個作快取代理的軟體弄混了...


首先,你要先確認你的 Apache 有 proxy 這個 modules, 通常在httpd.conf內會有像下面兩行的 modules 設定:

LoadModule proxy_module /usr/libexec/apache/libproxy.so
AddModule mod_proxy.c


確定 Apache 有 Proxy 這 modules 後,就可以開始來設定,找到下面這一段:





在裡面加上或把某幾行的#拿掉,內容大概會像這樣:

ProxyRequests On

Order deny,allow
Deny from all
Allow from .your_domain.com



把 Allow from 修改成你予許的來源位置.接下要設定你要代理的Web主機位置,把設定加入:

ProxyPass / http://192.168.1.7/


上面那個 / 是指 Web 根目錄,後面的網址是內部的 Web 主機位置.


Ok!完成,可以用 Browser 連到你架的 R-Proxy 主機試試,若是 R-Proxy 架在 Firewall 上,可能要把 httpd port 作適度的開放,但不再需要作轉 port 的動作,你會發現,你連到 R-Proxy 主機的網頁內容就是你指定的那台 Web 主機.


你也可以把網頁分散在不同的主機上,因為只有一個 Web 主目錄,所以可以依Web 目錄來分,設定的方法像:

ProxyPass / http://192.168.1.3/
ProxyPass /webmail http://192.168.1.2/webmail/
ProxyPass /sales http://192.168.1.7/
ProxyPass /bbs http://192.168.1.10:8888/


這邊有個重點,就是各主機網頁的目錄結構位置最好也是依循Web主目錄的結構,像上面第 1 跟第 2 行執行應該不會有問題,不過第 3, 4 行,就不一定可行,因為 Web 路徑可能會不對,特別是該目錄有又有次目錄時,因為這 R-Proxy 是作代理存取的動作,而不是作轉址的動作,所以可能需要另外搭配 ProxyPassReverse 的指令.就像這樣:

ProxyPass / http://192.168.1.3/
ProxyPass /webmail http://192.168.1.2/webmail/
ProxyPassReverse /webmail http://192.168.1.2/webmail/
ProxyPass /sales http://192.168.1.7/
ProxyPassReverse /sales http://192.168.1.7/
ProxyPass /bbs http://192.168.1.10:8888/


這樣像 http://192.168.1.2/webmail/images 就會轉到 /webmail/images 去,而不是 /images 這個錯誤路徑,不過還需注意的,就是次目錄的指定在網頁程式內的寫法,還是必須以"相對位置"的方式撰寫,使用"絕對位置"的方式還是有出錯的可能.

我測試的 Apache proxy module 是不提供輪詢的功能,所以假如你的設定是下:

ProxyPass / http://192.168.1.3/
ProxyPass / http://192.168.1.2/


基本上,還是只有第 1 條設定生效,而且也不提供容錯的功能,所以上面設定指的第 1 台主機掛了,網頁還是連不到的,因為它不會自動啟用第 2 條設定,這部份就必須要搭配 Apache的 rewrite 模組或其他具有錯誤偵測的 r-rproxy 模組了.


假如你想啟動 Cache 功能,可以參考 Apache 設定手冊,增加幾個有關 Cache 的設定,實際使用上因為 R-Proxy 也許只代理存取內部的 Web 主機, File Cache 的異動及數量不大,在一些較複雜及中大型的 Web 網站比較適合,你可以自己斟酌要不要使用 Cache 的功能.相關的設定參數如下:

CacheRoot "/var/proxy"
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
NoCache a_domain.com another_domain.edu joes.garage_sale.com


使用了 R-Proxy 之後,還有一點不同的地方,就是 httpd log 的內容,原本讓任何使用者直接存取 Web 主機時, httpd log 內紀錄的是連線 Client 的 IP 位置,但使用了 R-Proxy 後,log 內紀錄的都將會是 R-Proxy 的 IP 位置,而 Client 的真實存取紀錄則會紀錄在 R-Proxy 內的httpd log 內,所以要追查連線問題,則需要多檢查 R-Proxy 的 httpd log 內容.


目前 R-Proxy 主機只有少數中大型網站有架設,但實際應用上, R-Proxy 是可以改善 Web 存取效能,增加實體 Web 主機的安全性,我手上的有關 R-Proxy 資料還不完整,商業產品有很多已利用 R-Proxy 的觀念作到多線,異地的負載平衡及容錯存取,而且可以支援非 httpd 服務.而在要作到像那些產品的功能可能就要考慮以 Squid 來實作 R-Proxy 功能了...


參考資料:

1.Apache - module mod_proxy
http://httpd.apache.org/docs/mod/mod_proxy.html

2.Netscape Proxy Server - Reverse Proxy
http://developer.netscape.com/docs/manuals/proxy/adminux/revpxy.htm

3.IBM HTTP Server
http://tst.sinica.edu.tw/manual/ibm/index.html


-

第二單元: R-Proxy 的分散負載及主機容錯


在上一個單元內,可以發現基本的 R-Proxy 只能單純的依網頁目錄分散在不同的主機,而且一個網頁目錄只能連結一台主機,當某台主機當機,該連結的網頁目錄便失效了,這種單一靜態的分散服務及缺乏容錯機制的功能,並不是較好的 R-Proxy 功能.


在 http://pihl.kumpu.org/mod_curltunnel.html 有提供一個 CrulTunnel 模組,它提供類似於 ProxyPass 及 ProxyPassReverse 的指令 CrulTunnelPass 及 CrulTunnelPassReverse,安裝 CurlTunnel 模組系統必需要有 http://curl.haxx.se/ 的 libcurl 函數,但實測後發現, CurlTunnel 模組只是使錯誤連結的 404 錯誤訊息不再出現,還是不提供容錯的功能,所以這也不是我們想要的.


想要解決網頁連結錯誤的問題,必須在 URL 路徑發生問題時, Apache 就要自動辨識錯誤,並導向正確或是錯誤訊息回應的網址,在 Apache 中就有一個提供這樣可以依條件及規則轉換URL 路徑的模組 - Rewrite, Apache Rewrite 模組是一個功能強大的 URL 路徑維護模組,它可以依條件,規則或外部程式,資料來轉換網頁的 URL 路徑.


以下的測試環境,同樣是將 R-Proxy 架設在防火牆上,而防火牆內有數台 Web 主機.


首先,你要先確認在你主機上有 Rewrite 模組,而且在 httpd.conf 內有類似下面的設定:

LoadModule rewrite_module /usr/libexec/apache/mod_rewrite.so
AddModule mod_rewrite.c


首先,啟用 Apache Server Status 功能,找到下面這一段,把前的 # 號拿掉,並適當的修改Allow from 的位置:


SetHandler server-status
Order deny,allow
Deny from all
Allow from .yourdomain.com



再來,在 httpd.conf 內加入 Rewrite 模組的設定,像下面:

# Rewrite

RewriteEngine on
RewriteLogLevel 0

RewriteMap server rnd:/etc/httpd/conf/rproxy-server

RewriteRule ^/rproxy-status.* - [L]
RewriteRule ^(http|ftp)://.* - [F]

RewriteRule ^/(.*\.(cgi|shtml))$ to://${server:dynamic}/$1 [S=1]
RewriteRule ^/(.*)$ to://${server:static}/$1

RewriteRule ^to://([^/]+)/(.*) http://$1/$2 [E=SERVER:$1,P,L]

RewriteRule .* - [F]



上面的 RewriteMap 後面是指定一個設定檔,設定檔內是所有要當作分散負載的主機群成員位置,主機的性質有兩種,一種是只有存有靜態資料的 Static 主機,另一種是存有 cgi 及 shtml(Server Side Include )的動態處理,假如有數台 Web 主機,就可以將它們的位置設定在上
所指定的 rproxy-server 內,內容像下面:

static w1.test.com|w2.test.com|w3.test.com|w4.test.com
dynamic w5.test.com|w6.test.com


然後在 httpd.conf 內把 proxy 模組的設定加入,像下面:


ProxyRequests On
NoCache *
ProxyPassReverse / http://w1.test.com/
ProxyPassReverse / http://w2.test.com/
ProxyPassReverse / http://w3.test.com/
ProxyPassReverse / http://w4.test.com/
ProxyPassReverse / http://w5.test.com/
ProxyPassReverse / http://w6.test.com/



再來只要重新啟動 httpd 就可以了,你可以先在這 6 台 Web 主機存放不同的網頁內容,再使用
Browser 連線測試,你可以發現網頁的內容,會在一直不斷的輪詢,若是將其中一台主機離線,再測試,你可以發現並不會發生連線錯誤,也就是說 proxy + rewrite 的 R-Proxy 功能,除了會分散負載,還有主機容錯的功能.


等要正試上線時,只要定時同步這 6 台網頁主機的內容,而 cgi 動態處理部份是由於上面範例中的w5,w6 兩台主機來處理. httpd log 部份如同第一單位所說, Client 的真實 IP 只會存在於 R-Proxy那台的 httpd log 內,而其他所有的 Web 主機,只會記錄 R-Proxy 主機 IP 來存取.


目前上面這些設定的環境,都是以主機同時存在同一個地方為主,要作到異地的 Web 網站平衡負載,就要搭配 DNS Round-Robin 的方式來達成.


利用 R-Proxy 的作法是比 Linux LVS 的作法單純而且簡單多,假如在 Rewrite 內多加一些權重的計算及分配, R-Proxy 所以提供的功能並不會輸給 Linux LVS, 功能上主要的差別應該是 Linux LVS可以提供多台 Cluster 的 Controler, 而且可以自動備援切換.


參考資料:

1.Apache module mod_rewrite
http://httpd.apache.org/docs/mod/mod_rewrite.html

2.Apache URL Rewriting Guide
http://www.engelschall.com/pw/apache/rewriteguide/