构建动静分离的环境
要想构建动静分离的环境,那么就需要安装nginx,安装jdk,然后安装tomcat,具体的步骤如下: 编译安装nginx: [root@mogilenode2 nginx-1.10.1]# ./configure –prefix=/usr/local/nginx –with-http_ssl_module –with-http_stub_status_module –with-pcre [root@mogilenode2 nginx-1.10.1]# make && make install [root@mogilenode2 ~]# /usr/local/nginx/sbin/nginx (启动nginx) [root@mogilenode2 ~]# netstat -tnlp|grep nginx(查看监听端口,并且使用浏览器访问测试) tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13933/nginx
安装jdk: [root@mogilenode3 server]# rpm -ivh jdk-8u144-linux-x64.rpm Preparing… ########################################### [100%] 1:jdk1.8.0_144 ########################################### [100%] Unpacking JAR files… tools.jar… plugin.jar… javaws.jar… deploy.jar… rt.jar… jsse.jar… charsets.jar… localedata.jar… 配置java环境变量: [root@mogilenode3 server]# echo “export JAVA_HOME=/usr/java/latest”>/etc/profile.d/java.sh [root@mogilenode3 server]# echo “export PATH=$JAVA_HOME/bin:$PATH”>>/etc/profile.d/java.sh [root@mogilenode3 server]# cat /etc/profile.d/java.sh export JAVA_HOME=/usr/java/latest export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 测试jdk及环境变量是否成功:
安装tomcat: [root@mogilenode3 server]# tar -xf apache-tomcat-8.5.20.tar.gz -C /usr/local/ l[root@mogilenode3 server]# ln -sv /usr/local/apache-tomcat-8.5.20/ /usr/local/tomcat `/usr/local/tomcat’ -> `/usr/local/apache-tomcat-8.5.20/’ 配置tomcat环境变量: [root@mogilenode3 local]# vim /etc/profile.d/tomcat.sh [root@mogilenode3 local]# cat !$ cat /etc/profile.d/tomcat.sh export CATALINA_HOME=/usr/local/tomcat export PATH=$CATALINA_HOME/bin:$PATH 测试tomcat是否安装成功: [root@mogilenode3 ~]# netstat -tnlp|grep java(注意浏览器访问的时候,添加端口号来进行访问) tcp 0 0 :::8080 :::* LISTEN 1125/java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 1125/java tcp 0 0 :::8009 :::* LISTEN 1125/java
创建动态文件 根据java的目录层次结构,写一个基本的页面,如下: [root@mogilenode3 webapps]# mkdir kel [root@mogilenode3 webapps]# cd kel [root@mogilenode3 kel]# ls -l total 0 [root@mogilenode3 kel]# mkdir {META-INF,WEB-INF,classes,lib} [root@mogilenode3 kel]# vim index.jsp [root@mogilenode3 kel]# cat index.jsp <%@ page language=”java” %> <%@ page import=”java.util.*” %> <html> <head> <title>JAVA PAGE</title> </head> <body> <% out.println(“Hello,World”); %> </body> </html> [root@mogilenode3 kel]# ls -l total 20 drwxr-xr-x 2 root root 4096 Sep 20 14:46 classes -rw-r–r– 1 root root 201 Sep 20 14:46 index.jsp drwxr-xr-x 2 root root 4096 Sep 20 14:46 lib drwxr-xr-x 2 root root 4096 Sep 20 14:46 META-INF drwxr-xr-x 2 root root 4096 Sep 20 14:46 WEB-INF 修改tomcat的配置文件server.xml(添加一个虚拟主机,主机名为www.kel.com,,默认路径为webapps下面的kel目录): <Host name=”www.kel.com” appBase=”webapps” unpackWARS=”true” autoDeploy=”true”> <Context path=”” docBase=”kel” reloadable=”true” /> </Host> 测试访问: [root@mogilenode3 conf]# grep “www.kel.com” /etc/hosts (设置主机名解析) 192.168.1.238 www.kel.com [root@mogilenode3 conf]# curl http://www.kel.com:8080 (使用curl进行访问) <html> <head> <title>JAVA PAGE</title> </head> <body> Hello,World </body> </html>
配置nginx
配置主机名解析: [root@mogilenode2 nginx]# grep “www.kel.com” /etc/hosts 192.168.1.237 www.kel.com [root@mogilenode2 conf]# ls -l nginx.conf(修改nginx配置文件,将动态请求也就是文件后缀为jsp或者do的请求转发到tomcat上,由于是虚拟主机,所以url中必须写上主机名,静态页面在nginx上处理,静态页面在html路经下) -rw-r–r– 1 root root 2727 Sep 20 15:09 nginx.conf server_name www.kel.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } location ~* \.(jsp|do)$ { proxy_pass http://www.kel.com:8080; } 上传静态文件到nginx的html目录中,用来测试静态文件的访问: [root@mogilenode2 nginx]# ls -l html/1.jpg -rw-r–r– 1 root root 25854 Sep 20 15:13 html/1.jpg 访问nginx服务器测试静态文件访问:
访问nginx服务器,测试动态页面访问:
总结
总体上来说,动静分离还是比较简单的,主要让前端的代理服务器直接响应静态请求,让前端的代理服务器转发动态请求到后端的tomcat服务器即可。 注意上面的是实验环境,对于tomcat的运行的用户是直接的root用户,在生产中,必须修改为其他不能登录的用户,例如tomcat用户。