LN(A)MT单机版架构部署
部署Tomcat、httpd及nginx架构
架构图:
1、standalone模式,Tomcat单独运行,直接接受用户的请求,不推荐。
2、反向代理,单机运行,提供了一个Nginx作为反向代理,可以做到静态有nginx提供响应,动态jsp代理给
Tomcat
LNMT:Linux + Nginx + MySQL + Tomcat LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
3、前置一台Nginx,给多台Tomcat实例做反向代理和负载均衡调度,Tomcat上部署的纯动态页面更适合
LNMT:Linux + Nginx + MySQL + Tomcat
4、多级代理
LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat
实战一:实现单机版LNMT(用法极少)
1、实现nginx单机版转发到后端tomcat服务上
1、主机安装nginx
[root@openstack-2 ~]# yum install nginx -y
2、配置nginx服务
#vim /etc/nginx/nginx.conf location / { proxy_pass http://node1.baidu.com:8080; }
3、配置tomcat服务
[root@centos-7 ROOT]# vim /usr/local/tomcat/conf/server.xml </Host> <Host name="node1.baidu.com" appBase="/data/webapps/" unpackWARs="True" autoDeploy="false" /> #指定域名和要访问的文件路径 </Engine>
4、创建一个访问文件的目录,并在指定的目录下创建ROOT目录:
[root@centos-7 ROOT]# mkdir /data/webapps//ROOT -p
5、修改/data/webapps/ROOT目录下的文件,修改为自己要访问到的页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jsp例子</title> </head> <body> node1.baidu.com-index.jsp 后面的内容是服务器端动态生成字符串,最后拼接在一起 #修改此处的域名地址 <% out.println("hello jsp"); %> </body> </html>
启动nginx服务和tomcat服务
# nginx #启动nginx服务 # cd /usr/local/tomcat/webapps #切换到此目录下 # bin/startup.sh #启动tomcat服务
6、在本地hosts配置文件中将IP地址进行域名解析为node1.baidu.net:C:\Windows\System32\drivers\etc目录下修改
7、测试访问效果:
2、在nginx实现动静分离
1、修改nginx服务的配置文件
# vim /etc/nginx/nginx.conf location / { root /data/webapps/ROOT; #静态文件 index index.html; } location ~* \.(jsp|do)$ { proxy_pass http://node1.baidu.com:8080; #转发到动态文件 }
2、在/data/webapps/ROOT目录下创建一个index.html和index.jsp文件,实现动静分离
动态文件
#vim /data/webapps/ROOT/index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jsp例子</title> </head> <body> node1.baidu.com-index.jsp 后面的内容是服务器端动态生成字符串,最后拼接在一起 <% out.println("hello jsp"); %> </body> </html>
静态文件
#vim /data/webapps/ROOT/index.html nginx d s sep
3、重新加载nginx服务
# nginx -s reload
4、测试页面效果
静态效果
动态效果
实战二:实现httpd与tomcat的反向代理
1、安装httpd服务
# yum install httpd -y
2、配置httpd服务:proxy_http_module模块代理配置
vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80> ServerName node1.baidu.com ProxyRequests Off ProxyVia Off ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ </VirtualHost>
ProxyRequests:Off关闭正向代理。
ProxyPass:反向代理指令
ProxyPassReverse:保留代理的response头不重写(个别除外),最好关闭
ProxyPreserveHost:On开启。让代理保留原请求的Host首部,这一项至关重要
ProxyVia:On开启。代理的请求响应时提供一个response的via首部
3、配置tomcat服务
[root@centos-7 ROOT]# vim /usr/local/tomcat/conf/server.xml </Host> <Host name="node1.baidu.com" appBase="/data/webapps/" unpackWARs="True" autoDeploy="false" /> #指定域名和要访问的文件路径 </Engine>
4、创建一个访问文件的目录,并在指定的目录下创建ROOT目录:
[root@centos-7 ROOT]# mkdir /data/webapps//ROOT -p
5、修改/data/webapps/ROOT目录下的文件,修改为自己要访问到的页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jsp例子</title> </head> <body> node1.baidu.com-index.jsp 后面的内容是服务器端动态生成字符串,最后拼接在一起 #修改此处的域名地址 <% out.println("hello jsp"); %> </body> </html>
6、启动tomcat和httpd服务
#systemctl start httpd # cd /usr/local/tomcat/webapps/ # bin/startup.sh
7、测试页面
域名访问还会访问此页面
IP地址去访问,就只能跳转至主页,因为代理的host的IP地址没有指定的目录,所以只能是本地的网页
实现ajp与tomcat互连
1、修改httpd配置文件:proxy_ajp_module模块代理配置
vim /etc/httpd/conf.d/test.conf
<VirtualHost *:80> ServerName node1.baidu.com ProxyRequests Off ProxyVia Off ProxyPreserveHost On ProxyPass / ajp://127.0.0.1:8009/ </VirtualHost>
2、重启httpd服务:systemctl restart httpd
3、测试访问效果