关于nginx是什么,bing上都有比较详尽的介绍。
首先准备装有Linux系统的虚拟机,这里使用的是ubuntu,centos 7 的input有点问题,比如说打开浏览器,在地址栏上输入w会导致浏览器关闭。这里有些需要注意的问题,就是是虚拟机中网络设置的,因为刚安装好的Linux操作系统总是需要网络来安装各种各样的依赖包(反正就是一些需要用到的东西)。网络适配器这里记得选择桥接模式。
1、配置jdk、tomcat
1.1 jdk
下载linux版本的jdk,这里是jdk-7u79-linux-x64.tar.gz,在usr下新建一个文件夹java,将压缩包移动到/usr/java/下,执行
tar xvf jdk-7u79-linux-x64.tar.gz
将jdk解压到/usr/java/下,将压缩包删除,然后配置环境变量。先执行
su root
terminal会提示输入密码,直接回车(因为我们是不能用root用户登陆ubuntu的,只能用自己的用户先登录,然后在terminal里面进入,root用户的密码默认的空),接着执行
gedit ~/.bashrc
打开配置环境变量的文件。随便找个空的地方写上下面这些配置信息。
#java environment
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${CLASSPATH}:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}
保存,关闭文件,然后执行
source ~/.bashrc
使环境变量生效,回到terminal,执行
java -version
查看java的版本,如果有返回版本好就说明安装成功。
1.2 tomcat
在配置好jdk之后,关闭terminal,重新打开一个terminal,然后用户回到原本的那个而不是root。
首先下载需要用到的tomcat,这里是apache-tomcat-7.0.73.tar.gz,在usr下新建一个文件夹 tomcat,将压缩包移动到/usr/tomcat/下,然后使用命令行
tar xvf apache-tomcat-7.0.73.tar.gz
将压缩包解压,接着把压缩包删掉节省空间。
(这里为什么都要把jdk和tomcat解压在/usr下,因为我曾经在桌面建立文件夹,把jdk和tomcat都放这里,但是不起作用。所以就放/usr下试试,果然可以了。可能权限的问题还没有弄得很明白)
然后不需要命令行将解压出来的文件夹复制多一个,将两个文件夹重命名,最后在usr/tomcat下会有两个tomcat
apache-tomcat-7.0.73_1
apache-tomcat-7.0.73_2
(记得在执行tar xvf apache-tomcat-7.0.73.tar.gz 时,不能是在root下,否则无法更快复制多一个和重命名,因为在root下解压出来的文件是归root所有,鼠标键盘等操作却是在sword(自己的用户)下,所以操作会失败,当然你也可以在root下使用命令行执行接下来的操作)
修改两个tomcat的端口号,使它们不一样(大家都懂的),提醒一下修改端口号要修改server.xml文件中的三个地方。
此时进入root,执行
gedit ~/.bashrc
编辑环境变量配置文件,在1.1中配置jdk环境变量的地方,添加以下信息
#tomcat 1
CATALINA_BASE_1=/usr/tomcat/apache-tomcat-7.0.73_1
CATALINA_HOME_1=/usr/tomcat/apache-tomcat-7.0.73_1
export CLASSPATH=${CATALINA_HOME_1}/bin/tomcat-juli.jar:${CATALINA_HOME_1}/bin/bootstrap.jar
export CATALINA_BASE_1 CATALINA_HOME_1
#tomcat 2
CATALINA_BASE_2=/usr/tomcat/apache-tomcat-7.0.73_2
CATALINA_HOME_2=/usr/tomcat/apache-tomcat-7.0.73_2
export CLASSPATH=${CATALINA_HOME_2}/bin/tomcat-juli.jar:${CATALINA_HOME_2}/bin/bootstrap.jar
export CATALINA_BASE_2 CATALINA_HOME_2
保存,关闭文件,执行
source ~/.bashrc
使配置生效。
然后修改两个tomcat各自的catalina.sh,文件,找到 setclasspath 的相关区域,在这个区域下,将有CATALINA_HOME的地方
if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
. "$CATALINA_HOME"/bin/setclasspath.sh
else
echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
echo "This file is needed to run this program"
exit 1
fi
中的CATALINA_HOME修改成与bashrc配置文件中的一致,比如说第一个tomcat的是CATALINA_HOME_1,所以要将CATALINA_HOME改成CATALINA_HOME_1,tomcat2也一样,否则terminal在启动tomcat时,会提示找不到setclasspath.sh文件的错误
至此,tomcat配置结束,我们可以进入tomcat里面的bin文件夹,然后执行
./startup.sh
如果提示tomcat started,表示tomcat配置和启动成功,然后在浏览器上输入localhost:18080和localhost:28080来看tomcat主页,如果看得到,说明成功。
2、配置nginx
由于业务需要,我在配置nginx的时候不仅仅配置了nginx,还有lua的集成包,nginx+lua是个叫做openresty的东西,没什么特别的,安装过程比较简单,可以参考
https://openresty.org/cn/ 中的官方教程来安装,安装过程需要保证虚拟机的网络。
执行
gedit ~/.bashrc
配置openresty的环境变量
PATH = /usr/local/openresty/nginx/sbin:$PATH
export PATH
实际上就是配置nginx的环境变量
执行
source ~/.bashrc
使配置生效
之后我们可以在/usr/local/下找到openresty,这里虽然集成了nginx和lua,但是这里只讨论nginx,lua的功能下次再讨论。我们直接进入到/usr/local/openresty/nginx/conf
编辑nginx.conf文件
gedit nginx.conf
观察
server {
listen 8888;
server_name localhost;
#charset koi8-r;
记住它的端口号和服务名
添加
upstream netitcast{
server 127.0.0.1:18080 weight=1; #tocmat 1
server 127.0.0.1:28080 weight=2; #tomcat 2
}
修改
location / {
root html;
index index.html index.htm;
proxy_pass http://netitcast; #对应上面的netitcast
}
保存,此时nginx和两个tomcat就关联起来了,是不是很简单。我们修改两个tomcat的webapps/ROOT/index.jsp,让它们两个的主页变得不一样。
启动两个tomcat和nginx,打开浏览器,输入localhost:8888,让你记住的那个,然后不断刷新,你会发现浏览器会无规律访问两个tomcat的主页,说明集群搭建成功。