轉自:http://blog.csdn.net/kimsoft/article/details/5672632
Ubuntu Server 10.04, resin 3.1.10, nginx-0.7.65 架設負載均衡網站
軟件硬件架構
internet -> fire wall -> f5 load balancer -> router -> web servers(ubuntu + nginx + resins) -> db servers(aix + oracle) -> storage
一、安裝 Ubuntu
在vitrual box 3.2.4中安裝,安裝時可斷網,這樣比較快一點
網絡選 bridged adapter
本機地址爲192.168.3.31
ubuntu server 地址爲3.222
網關3.1
dns 8.8.8.8
用putty做終端,連接
二、修改unbuntu server 網卡
sudo vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.222 #ubuntu ip 地址
netmask 255.255.255.0 #子網掩碼
# network 192.168.3.0 #可不用配置
# broadcast 192.168.3.255 #可不用配置
gateway 192.168.3.1 #網關
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8 # DNS,多個用半角空格隔開
sudo /etc/init.d/networking restart #啓動網卡,終端會斷掉
sudo /etc/init.d/networking force-reload #強制加載,這個更好點,終端不會斷掉
三、安裝JDK
準備工作
sudo vi /etc/apt/sources.list
加入源
deb http://archive.canonical.com/ lucid partner
sudo apt-get update 一定要執行一下
APT: Advanced Packaging Tools
apt-get 其它用法
apt-cache search package 搜索包
apt-cache show package 獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package 安裝包
sudo apt-get install package - - reinstall 重新安裝包
sudo apt-get -f install 強制安裝?#"-f = --fix-missing"當是修復安裝吧...
sudo apt-get remove package 刪除包
sudo apt-get remove package - - purge 刪除包,包括刪除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-get dselect-upgrade 使用 dselect 升級
apt-cache depends package 瞭解使用依賴
apt-cache rdepends package 瞭解某個具體的依賴?#當是查看該包被哪些包依賴吧...
sudo apt-get build-dep package 安裝相關的編譯環境
apt-get source package 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean 清理下載文件的存檔 && 只清理無用的包
sudo apt-get check 檢查是否有損壞的依賴
sudo apt-get install sun-java6-jdk #下載,安裝
java -version #檢測是否安裝成功
sudo vi /etc/profile #配置JAVA_HOME方法一
在最後加入
#jdk1.6 env
JAVA_HOME=/usr/java/jdk1.6.0_20
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/td.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
sudo vi /etc/environment #配置JAVA_HOME方法二(推薦)
# PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
# jdk1.6 env
JAVA_HOME=/usr/lib/jvm/java-6-sun
PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
CLASSPATH=.:$JAVA_HOME/lib/td.jar:$JAVA_HOME/lib/tools.jar
在putty界面按ctrl+d退出,再進入
echo $JAVA_HOME
四、安裝nginx
sudo apt-get install nginx #下載,安裝
sudo /etc/init.d/nginx reload|start|stop
sudo vi /etc/nginx/sites-available/default
# You may add here your
# server {
# ...
# }
# statements for each of your virtual hosts
upstream resin {
# server 192.168.1.103:8080 weight=2;
server 192.168.3.222:8080 weight=2;
server 192.168.3.222:8081 weight=2;
server 192.168.3.31:8080 weight=3;
server 192.168.3.31:8081 weight=3;
}
server {
listen 80 default;
server_name localhost,192.168.3.222;
access_log /var/log/nginx/localhost.access.log;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass http://resin;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect false;
}
}
sudo /etc/init.d/nginx reload
訪問http://192.168.3.222
五、安裝resin
下載resin 3.1.10 free版
http://www.caucho.com/download/
下載後傳到/home/root
sudo tar -zxvf resin-pro-3.1.10.tar.gz #解壓
sudo mv resin-pro-3.1.10 /usr/local/resin #複製爲resin
sudo chmod -R 777 /usr/local/resin #修改權限
cd /usr/local/resin
sudo ./configure # 編譯
sudo make # 編譯
sudo make install # 編譯
cd /usr/local/resin/config
sudo cp resin.conf resin-8080.conf
sudo cp resin.conf resin-8081.conf
修改resin-8081.conf中的端口對應到8081,其他端口依次加1
修改兩文件中的web-app節點
<web-app id="/" root-directory="webapps/ROOT/8080"/>
<web-app id="/" root-directory="webapps/ROOT/8081"/>
在兩文件夾中放入測試文件
cd /usr/local/resin/bin
sudo cp httpd.sh httpd-8080.sh
sudo cp httpd.sh httpd-8081.sh
修改其中的最後一行,從
exec $JAVA_EXE -jar ${RESIN_HOME}/lib/resin.jar $*
修改爲
exec $JAVA_EXE -jar ${RESIN_HOME}/lib/resin.jar -conf ${RESIN_HOME}/conf/resin-8080.conf $*
exec $JAVA_EXE -jar ${RESIN_HOME}/lib/resin.jar -conf ${RESIN_HOME}/conf/resin-8081.conf $*
加上-conf參數
sudo ./httpd-8080.sh start
sudo ./httpd-8081.sh start
運行成功
將resin 安裝爲服務
sudo vi /usr/local/resin/contrib/init.resin.in
JAVA_HOME, RESIN_HOME修改爲
JAVA_HOME="/usr/lib/jvm/java-6-sun"
RESIN_HOME="/usr/local/resin"
複製爲兩個文件
sudo cp /usr/local/resin/contrib/init.resin.in /etc/init.d/resin8080
sudo cp /usr/local/resin/contrib/init.resin.in /etc/init.d/resin8081
再分別修改兩個文件
sudo vi /etc/init.d/resin8080
sudo vi /etc/init.d/resin8081
修改目標:
CONF="-conf $RESIN_HOME/conf/resin-8080.conf" #這行是加上的,不同的文件CONF不一樣
ARGS="-resin-home $RESIN_HOME $SERVER $CONF" #這行後面多加了一個$CONF
sudo update-rc.d /etc/init.d/resin-8080 defaults 99;
sudo service resin-8080 start;
sudo reboot
再訪問http://192.168.3.222