本人最近练手在linux中搭建Nginx+Tomcat部署java web项目,遂随笔记录如下:
1. 资料准备:
Linux centos7系统安装完毕,本人在虚拟机中安装配置。具体过程自行百度吧
JDK1.8 官网下载:https://www.oracle.com/technetwork/java/javase/downloads/index.html
Nginx1.9版本(最好在官网下载) 官网:http://nginx.org/en/download.html
Tomcat 8.5.38版(最好在官网下载) 官网:http://tomcat.apache.org
2. jdk安装
首先安装jdk,tomcat运行需要jdk支持。把下载好的jdk(linux)安装包上传至linux:/usr/local/software目录下并解压。
配置jdk环境变量(路径:/etc/profile):
export JAVA_HOME=/usr/local/jhlocal/jdk1.8.0
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
测试java安装,显示如下则安装成功:java -version
3.1 tomcat在linux中安装最为简单,安装好jdk以后把下载好的tomcat安装包上传至linux(/usr/local/software)并解压。
在tomcat路径下的bin文件中,启动tomcat:bin/startup.sh
启动以后在tomcat路径下的logs文件中,打开 catalina.out文件:
[root@localhost tomcat8.5]# cat logs/catalina.out
关闭linux的防火墙,通过虚拟机地址访问:http://localhost:8080
应该会出现可爱的小猫咪。
3.2 配置tomcat的端口号
首先进入tomcat目录下的conf,编辑server.xml文件。修改三处已用箭头指明:
修改完之后可以用新端口号测试,看是否可以访问。我修改端口的方式是都是加1,根据自己情况酌情处理吧。
4. Nginx安装
安装nginx前,先安装相关依赖项(因为nginx是C++编写,需要C++相关运行环境):
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
安装完成后,把下载的Nginx安装包上传至linux(/usr/local/software)并解压。
//进入nginx目录
cd /usr/local/nginx
//执行命令
./configure
//执行make命令
make
//执行make install命令
make install
命令执行完毕,可以尝试启动nginx:
/启动命令
安装路径下的/nginx/sbin/nginx
//停止命令
安装路径下的/nginx/sbin/nginx -s stop
或者 : nginx -s quit
//重启命令
安装路径下的/nginx/sbin/nginx -s reload
//查看进程命令
ps -ef | grep nginx
//平滑重启
kill -HUP Nginx主进程号
//测试地址
http://ip地址
启动成功:
Nginx可以正常访问了,说明安装的Nginx没问题。接下来就是配置Nginx,进入Nginx目录下的conf,打开nginx.conf。
重启Nginx服务,在浏览器输入服务器地址,测试是否能见到小猫咪。
Nginx配置Tomcat,负载均衡的配置方式:
a). 轮询(默认)
b). weight(权重):指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 127.0.0.1:8081 weight=10;
server 127.0.0.1:8082 weight=10;
}
c). ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
d). fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。需要安装第三方插件
例如:
upstream backend {
server server1;
server server2;
fair;
}
e).url_hash(第三方):按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
后两种情况没有实测,再详细的配置方式可以通过官方文档,查看测试一下。
至此,一切顺利的情况下就可以达到Nginx + Tomcat的安装配置了。这是测试使用的具体情况,具体分析希望可以帮助小伙伴们。