一:Nginx 的搭建
Nginx 在服务器的应用主要是用于实现反向代理,负载均衡的功能。 这里简单的搭建 Nginx 服务器实现 nginx 对于两个 tomcat 的反向代理的功能。
在安装 Nginx 之前, 需要安装四个依赖,
安装nginx的依赖:
gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
yum install gcc-c++
yum install -y gcc
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
用 FTP 服务器上传 Nginx 的安装包, 解压
tar -zxvf nginx-1.8.0.tar.gz
然后进入解压目录, 执行编译并安装的操作:
./configure
make
make install
安装完成, 启动 nginx ,
在/usr/local/nginx 目录下
./sbin/nginx
关闭 nginx , 在/usr/local/nginx 目录下
./sbin/nginx -s stop
Linux 下常用的查看端口的命令:
netstat -tulnp | grep 80 // t: tcp u: udp l:监听的线程 n: 不转换数字 p: 线程的名称
最后访问 http://localhost
安装 nginx 的过程中, 把没有遇到什么困难, 只是安装并启动 nginx, 在访问网站出现下图就算成功了, 后面的后面再进行配置。
二 : Tomcat 的安装
用 Nginx 实现 Tomcat 的反向代理, 搭建两个 Tomcat 来模拟效果
先用 FTP 服务器上传 Tomcat 的安装包, 并解压 (解压到了 /usr/local 下)
在解压的文件夹里 bin 目录下 打开catalina.sh文件,加入 (都设置为自己解压和安装的目录)
---在 # OS specific support 一行下加入
1 JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m" 2 export TOMCAT_HOME=/usr/local/apache-tomcat-7.0.77 3 export CATALINA_HOME=/usr/local/apache-tomcat-7.0.77 4 export JRE_HOME=/usr/local/jdk1.8.0_111/jre 5 export JAVA_HOME=/usr/local/jdk1.8.0_111
启动, 进入 bin 目录
./startup.sh
在这里有一点很重要, 当 Tomcat 开启之后访问不了的时候, 不要自己在那怵着猜错在哪里, 用
1 tail -100 /usr/local/apache-tomcat-7.0.77/logs/catalina.out
查看最近一次启动 Tomcat 时发生什么情况, 然后根据错误一个一个再解决。
每次启动 Tomcat , 都要到 Tomcat 安装目录下执行一个命令的感觉是很不好的, 所以推荐一个把 Tomcat 设置成系统服务的方式,每次想启动时, 不管你当前目录在哪, 都可以随时开启或关闭 Tomcat
参考:http://newthink.blog.51cto.com/872263/1775489
tomcat 安装目录为 /usr/local/apache-tomcat-7.0.77
增加 tomcat.pid
在tomcat安装目录下 vi 一个 tomcat.pid 文件, 在 bin 目录下新建 setenv.sh 文件,并加入
1 #add tomcat pid 2 CATALINA_PID="/usr/local/apache-tomcat-7.0.77/tomcat.pid" 3 #add java opts 4 JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
增加 tomcat.service
在 /usr/lib/systemd/system目录下增加tomcat.service, 加入以下内容
1 [Unit] 2 Description=Tomcat 3 After=syslog.target network.target remote-fs.target nss-lookup.target [Service] 4 Type=forking 5 PIDFile=/usr/local/apache-tomcat-7.0.77/tomcat.pid // 这来需要设置为自己安装的目录 6 ExecStart=/usr/local/apache-tomcat-7.0.77/bin/startup.sh 7 ExecReload=/bin/kill -s HUP $MAINPID 8 ExecStop=/bin/kill -s QUIT $MAINPID 9 PrivateTmp=true [Install] 10 WantedBy=multi-user.target
和 Tomcat 有关的一些操作:
配置开机启动
systemctl enable tomcat
启动tomcat
systemctl start tomcat
停止tomcat
systemctl stop tomcat
重启tomcat
systemctl restart tomcat
三:Nginx 配置反向代理
最后, Nginx 和 Tomcat 都搭建完成之后, 简单的配置 Nginx ,使其代理两个 Tomcat:
nginx 的反向代理:
在 nginx 安装目录下 /usr/local/nginx/conf/nginx.conf 中加入代理的 tomcat 的服务
在第一个 server 的上面加上代理的配置
1 #configure proxy server 2 upstream blank{ 3 #ip_hash 4 server 192.168.191.1:8080; 5 server 192.168.191.3:8080; 6 }
然后在 server 中, 配置 nginx 所在的服务器
1 server{ 2 listen 80; 3 #server_name localhost; 4 server_name 192.168.191.3 5 6 location / { 7 proxy_pass http://blank; // (这里要和上面配置的 upstream 的名字一样) 8 root html; 9 index index.html index.htm; 10 proxy_set_header Host &host; 11 } 12 13 }
最简单的配置大概就是这样, 注意 每行后面的 ; 缺少的话在开启你 nginx 的时候会显示出错误, 照着行号 vi 进去配置爱文件改就行
开启 nginx :
在 nginx 安装目录下 执行
./sbin/nginx
访问 http://192.168.191.3:80
配置成功会出现不同的 tomcat 服务器的 sessionId
最终的效果图:
以上就是简单的配置 Nginx + Tomcat 反向代理的功能, 在 Linux 下搭建的时候花了不少的时间,总结起来的时候, 发现挺简单的事, 但是还是花费了好多时间,与君共勉吧!