2014年2月27日 星期四

Nginx+Tomcat

conf資料夾下再建一文件proxy.conf,內容如下

# proxy.conf
proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr; #獲取真實IP
#proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #獲取代理者的真實ip
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

打開nginx/conf/nginx.conf文件

裡面的內容替換成

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info; 
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    include     proxy.conf;  #這個檔是我們新建的,要導入
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;
    sendfile        on;
    tcp_nopush     on; 

    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html\www;
            index  index.jsp index.html index.htm;
        }

location ~ .*.jsp$ {     #匹配以jsp結尾的,tomcat的網頁文件是以jsp結尾      
                index   index.jsp;
                proxy_pass      http://localhost:8080; #主要在這裡,設置一個代理
        }

        location /nginxstatus {
                stub_status on;
                access_log on;
                auth_basic "nginxstatus";
                auth_basic_user_file htpasswd;
        }
        # redirect server error pages to the static page /50x.html
        #
        #error_page   500 502 503 504  /50x.html;
        #error_page  404  /404.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #} 

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    } 

    # another virtual host using mix of IP-, name-, and port-based configuration
    #

    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

    # HTTPS server
    #    #server {
    #    listen       443;
    #    server_name  localhost;
    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    #    ssl_session_timeout  5m;
    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

 

Nginx - Windows下Nginx基本安裝和配置

本技術手扎是個人自學紀錄,若有標明出處,代表該出處有參考價值,亦防止原出處網站被刪除所做之備份,若原作者不願分享,請告知,本人將分享關閉
原文出處: http://koda.iteye.com/blog/601249



Nginx 是一個羽量級的高性能 Http WebServer,以事件驅動方式編寫,因此相比 Apache 而言,Nginx 更加穩定、性能更好,而且配置簡單,資源佔用較低。

1.
安裝 Nginx
v0.7.52 開始,Nginx 開始發佈 Windows 版本的 Nginx,你可以在其官方網站上面下載:
http://nginx.net
下載後直接解壓即可,這裡解壓縮到c:\nginx目錄。


2.
啟動Nginx
命令列進入c:\nginx目錄,運行nginx.exe,啟動控制台視窗。默認啟用80埠。用過Tomcat的人都希望能在控制台看到開機記錄,nginx的日誌卻不得不查看logs目錄下的相應log檔。


3.
訪問歡迎html
在流覽器中訪問http://localhost,可以看到默認的歡迎頁.

4.
停止Nginx
Ctrl+C
沒反應。於是關閉控制台窗口。可是再訪問http://localhost依然有效。查看進程,發現nginx根本沒有被關閉。因此如果想徹底關閉nginx,應該是
nginx -s stop  

或者使用windows的taskkill命令:

taskkill /F /IM nginx.exe > nul

5. Ngnix常用配置
Nginx
的所有配置都預設使用conf/nginx.conf文件,其地位相當於apachehttpd.conf文件 。當運行nginx.exe暗含運行了nginx -c conf\nginx.conf. 如果想使用自己定義的conf檔如my.conf,命令為nginx -c conf\my.conf.
常用配置如下:
 
http {
  server {
    #1.偵聽80
    listen  80;
    location / {
        # 2. 預設主頁目錄在nginx安裝目錄的html子目錄。
        root   html;
        index  index.html index.htm;
        # 3. 沒有索引頁時,羅列檔和子目錄
        autoindex on;
        autoindex_exact_size on;
        autoindex_localtime on;
    }
    # 4.指定虛擬目錄
    location /tshirt {
        alias D:\programs\Apache2\htdocs\tshirt;
        index index.html index.htm;
    }
  }
  # 5.虛擬主機www.emb.info配置
  server {
    listen          80;
    server_name     www.emb.info;
    access_log emb.info/logs/access.log;
    location / {
      index index.html;
      root  emb.info/htdocs;
    }
  }
}

Nginx Windows版使用說明

原文出處: Ngix 官網
http://nginx.org/cn/docs/windows.html


nginxWindows版本使用原生Win32 API(非Cygwin模擬層)。當前nginx/Windows只使用select作為通知方法,所以不要期待它有很高的性能和擴展性。鑒於這點和一些已知問題,nginx/Windows目前還處於beta階段。nginx/WindowsUnix版本相比,功能幾乎已經齊全,除了XSLT篩檢程式、圖像篩檢程式、GeoIP模組和嵌入Perl語言支援以外。

安裝nginx/Windows,需要下載最新的1.5.10開發版本,因為開發分支上包含了所有已知的問題修復,尤其是針對Windows版本的問題修復。解壓縮下載得到的zip檔,進入nginx-1.5.10目錄,運行nginx。下面給出一個在C盤根目錄下安裝的例子:

cd c:\

unzip nginx-1.5.10.zip
cd nginx-1.5.10
start nginx


可以在命令列運行tasklist命令來查看nginx進程:

C:\nginx-1.5.10>tasklist /fi "imagename eq nginx.exe" 

Image Name           PID Session Name     Session#    Mem Usage
=============== ======== ============== ========== ============
nginx.exe            652 Console                 0      2 780 K
nginx.exe           1332 Console                 0      3 112 K

其中一個是主進程,另一個是工作進程。如果nginx沒有啟動,請查看logs\error.log檔以尋找失敗原因。如果日誌檔不存在,那失敗原因會記錄在Windows事件日誌中。如果某次請求沒有展示預想的頁面,而是展示了錯誤頁面,也請查看logs\error.log文件。

nginx/Windows使用工作目錄作為首碼將設定檔中設置的相對目錄補齊。就上面安裝的例子而言,工作目錄應該是C:\nginx-1.5.10\(工作目錄基本上與運行檔所在的目錄相同)。設定檔中的目錄請使用“/”,而不是“\”做目錄分隔:

access_log   logs/site.log;
root         C:/web/html;

nginx/Windows作為標準控制台應用運行,而不是系統服務。可以用下面的命令控制:



nginx -s stop

快速退出

nginx -s quit

優雅退出

nginx -s reload

更換配置,啟動新的工作進程,優雅的關閉以往的工作進程

nginx -s reopen

重新打開日誌檔

 

 

Nginx 安裝教學(Nginx1.2.5+PHP5.3.19+MySQL5.5.27)

原文出處: 紀老師電腦教學網
http://blog.faq-book.com/?p=6725

exe 編寫課程或使用手冊的軟體

eXe簡介
eXe全名為elearning XHTML editor,是一套的網頁設計軟體,是適合編寫網路課程的軟體。eXe 主要以Python程式語言寫的,並且以開放源始碼的瀏覽器firefox為基礎。這套程式使用 Python 及 Firefox 做呈現介面,可以在各平台中執行。eXe計劃構想是,希望滿足網路學習資源的設計與製作技術的應用。
所有的設計,都可以透過eXe專屬的iDevices的各種模組來設計網頁。此外,eXe更是一套數位學習的編輯軟體,它除了可以製作一般的網頁,並且可以快速套用多樣選擇的頁面風格外,更可以直接將製作好的內容,匯出成符合數位學習標準的檔案,可以產生 SCORM 文件或網頁格式,如 SCORM1.2及IMS等,以結合SCORM Player 在離線的狀態播放教材。另外也可以匯入 Moodle平台中,作為線上學習的教材。eXe認為是一個提供教師編輯數位教材絕佳的工具,不需要 HTML 或其他網頁編輯程式的基礎,就可以編輯出圖文並茂、聲光效果兼具的數位教材。
它的觀念是採用階層網頁檔案做成選單,在每一個網頁中可以加入各種的 "iDevices"(各種類型的內容,如選擇題、圖片、文字、圖像畫廊)。而且選擇題等類型,已提供了互動的 javascript 程式功能,無需自已費心。
eXe軟體特色
開放源始碼
具體地輔助老師與學者們發佈專業的網頁
發佈的內容可與現有LMS軟體結合
安裝下載
官方網站
http://exelearning.org

原件出處

Tomcat 5 與 Apache 2 整合,共用port 80

Windows版的作法:安裝 WAMP 後,又想將 TOMCAT 整合進來, 步驟:
1.確定已經安裝 JAVA與TOMACT
2.啟動進入(桌面於右下角)WAMP管理器,




















3.修改Apache modules ,增加proxy module 以及 proxy_ajp_module





















4.再修改 apache 之 httpd.conf檔案
在檔尾加入,Tomcat APP 的目錄名稱

<Location /jsp-examples/>
  ProxyPass ajp://localhost:8009/jsp-examples/
</Location>
若有多個 app時,重覆設定即可
<Location /yourAPP1/>
  ProxyPass ajp://localhost:8009/yourAPP1/
</Location>

<Location /
yourAPP2/>
  ProxyPass ajp://localhost:8009/yourAPP2/
</Location>

設定完成,就可以下列方式連結

http://yourserverIP/yourAPP1/

http://yourserverIP/yourAPP2/


CentOS5的作法:
內定安裝Centos5 Apache Server
於 /etc/httpd/conf.d 之下找到 proxy_ajp.conf 檔案
編輯之,將Tomcat app加入即可

ProxyPass /examples/ ajp://localhost:8009/jsp-examples/
可參考這篇 http://tech-tbmc.blogspot.com/2011/07/centos5-linux-apache2x-tomcat-apache.html


檢查電腦裡面是否有不正常的連線

資料出處: 台大計中: http://www.cc.ntu.edu.tw/chinese/epaper/0005/20080620_5009.htm

1.
執行「開始」功能表→選「執行」→輸入:cmd→輸入:netstat-a或netstat-n(注意中間有一個半形空格)→看看是否每次開機、連上網後,就會自動建立一堆不明連線即在『命令提示字元』的『外部位址』(Foreign Address)欄位中,若此時根本沒連上某網站,或根本還沒連上任何網站,也沒開MSN、電子郵件、p2p…等會使用網路的軟體,就在『外部位址』欄位中,出現一堆不明位址(IP)、或不知名的網域名稱(DNS),表示目前使用的作業系統『可能』早就自動建立一堆『有問題』的不明連線了。




.2 若的『外部位址』欄位中,顯示的對外 IP 是以下開頭的:
 127.0.0.1 192.168.x.x 172.x.x.x 10.x.x.x  Localhost
都沒有問題,因為這些連線,是區域網路(LAN)或本機電腦專用的 IP,並非後門程式用來回傳送私人資料到網際網路自動建立之連線。




.3 但若您才剛開機、剛連上網路,還沒開啟 IE 瀏覽器及任何程式,就自動建立不明位址的連線,例如:「AsiaHot.com」之類的,那就表示作業系統裡面已有後門木馬程式植入。

Java,PHP,Python,HTML,DOM,CSS 線上API 使用手冊

一個整合所有開發語言的線上即時 API 查詢工具
包含 Java,PHP,Python,Ruby,HTML,DOM,CSS
http://www.gotapi.com/html

Google jQuery 外掛

原文出處: http://www.wretch.cc/blog/wthomasu/10311353

透過 Google API 取得 jquery 的 libraries
<script type="text/javascript" src="https://www.google.com/jsapi"></script><script>
google
.load("jquery", "1.6.2"
);
</script>

可手動更換jquery的版本
google.load("jquery", "1.6.2"); 
google api會載入以下libpath: https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
path(u): https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js
如需UI的部份如下:
google.load("jqueryui", "1.8.14");

更詳細請參考以下介紹
http://code.google.com/intl/zh-TW/apis/libraries/devguide.html

安裝「CentOS 6 + php + MySQL + PhpMyAdmin」

============================================

關閉「selinux」
/etc/sysconfig/selinux =>「SELINUX=enforcing」 =>「SELINUX=disabled」=>「重新開機」

============================================

「PHP+MYSQL」
yum -y install httpd php mysql mysql-server php-mysql

若安裝 Centos6 時,已經安裝 Apache Server 則
yum -y install php mysql mysql-server php-mysql

============================================

/sbin/chkconfig httpd on  ( 每次開機 開啟 http 服務 )

/sbin/service httpd start ( 啟動 http )

/sbin/chkconfig mysqld on ( 每次開機  開啟 MySQL 服務 )

/sbin/service mysqld start ( 啟動 MySQL )

mysqladmin -u root password '123' ( 設定 MySQL 「root」帳號的「密碼」)

mysql -u root -p ( 使用「root」帳號,測試「密碼」是否正確 )

============================================

設定防火牆

系統=>管理=>防火牆=>信任的服務=>WWW(HTTP)80/tcp

系統=>管理=>防火牆=>其他通訊埠=>MySQL (3306/tcp)

============================================

自由決定

//安裝apache的更新檔

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

//安裝php的更新檔

yum install php-gd

yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc

//安裝mysql的更新檔

yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

重新啟動「apache」

/sbin/service httpd restart

重新啟動「mysql」

/sbin/service mysqld restart

==========================================

phpMyAdmin 修改設定
先從官網下載  http://www.phpmyadmin.net/home_page/downloads.php
phpMyAdmin-3.5.1-all-languages.tar.gz (2012.5.15時最新)
tar zxvf phpMyAdmin-3.5.1-all-languages.tar.gz

「phpMyAdmin」解壓縮放入「/var/www/html/」

修改「libraries/config.default.php」=>「$cfg['Servers'][$i]['auth_type'] = 'http';」

重新啟動「apache」

/sbin/service httpd restart

==========================================

php 修改設定

「etc/php.ini」=>「short_open_tag = on」(修改短標籤,允許使用「<?  ?>」)

重新啟動「apache」

/sbin/service httpd restart

==========================================
備註:

檢查「PHP Version」

php -v

檢查「MySQL Version」

Tomcat 6.x 開啟 Servlet 功能

1. 編輯 x:\Tomcat\conf\context.xml 設定檔, 找到 Context 區間, 加入紅字部分
<!-- The contents of this file will be loaded for each web application -->
<Context privileged="true">
<!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> 
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!-- <Manager pathname="" /> --></Context>

2.若需要 Tomcat 每個 App 皆能執行 Servlet 則再進行如下修改
 開啟編輯 web.xml的 invoker 設定
尋找以下兩區間 invoker設定 將 <! -> mark 拿掉後,存檔
<!--
<servlet>
<servlet-name>invoker</servlet-name>
   <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class>
 <init-param> <param-name>debug</param-name>
<param-value>0</param-value> </init-param>
<load-on-startup>2</load-on-startup>
</servlet>
-->
<!-- The mapping for the deprecated invoker servlet -->
<!--
<servlet-mapping><servlet-name>invoker</servlet-name><url-pattern>/servlet/*</url-pattern>
</servlet-mapping>-
->
<!-- The mapping for the JSP servlet -->

計算檔案夾大小之工具軟體

GetFoldersize

Determine the size of folders and sub-folders

http://www.getfoldersize.com/

Apache V2.4 下載另一選擇 Apache Lounge

Apache Lounge
http://www.apachelounge.com/download/

參考文章:
http://phpbb-tw.net/phpbb/viewtopic.php?t=54580


Java 不同編碼字串, 其字串長度大小計算

以 Java 開發專案, 在 DAO 寫入資料庫時, 常遇到JAVA 字串與資料庫編碼不一致, 有時會產生字串過長,導致無法寫入資料庫的情況. 這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度 JAVA 依 不同編碼, 其長度是不一樣的 如: ...