一、原理
搭建一个基于Linux系统的Web服务器,使用Nginx作为反向代理服务器,Tomcat作为应用服务器,MySQL作为数据库服务器。
Linux操作系统 基于Linux的操作系统
Nginx Nginx是一款高性能的Web服务器和反向代理服务器,具有负载均衡和反向代理的功能,配置Nginx的虚拟主机和代理规则,将请求转发到后端的Tomcat服务器。
tomcat Tomcat是一个开源的Java Servlet容器,用于运行Java Web应用程序,负责处理HTTP请求,并将其转发到相应的Servlet或JSP进行处理。
MySQL MySQL是一款常用的关系型数据库管理系统。它支持多用户并发访问,提供了稳定可靠的数据存储和高效的SQL查询。
二、LNMT
部署tomcat 单机部署
分别安装两个tomcat
在第二个tomcat中修改配置文件server.xmll,所有端口号都更改
多机部署
部署nginx
yum install -y epel-release
yum install -y nginx
部署Mariadb
yum install mariadb-server
配置Nginx
实现反向代理
本次皆采用网络源安装
三、nginx的高级配置
location
= 精确匹配
^~ 不用正则的字符串匹配
~ 正则匹配,且区分大小写
~* 不区分大小写的正则匹配
/ 任意匹配,无论如何都会满足匹配条件,后面不能有任意字符串
rewirte
应用场景 进行前端的反向代理
新旧域名的更替
防盗链
书写位置
server
location
if条件
若要匹配后就停止向下匹配,加入break关键字
重写条目写法
rewirte “^表达式” 重写路径(可以是本地的访问目录,也可以是远程的URL)
返回状态码: permanent,304 ;redirect,302
例如
location / {
root html;
index index.html index.php;
if ($host = "www.jx.com"){
rewrite ^/(.*)$ http://192.168.115.131/$1 permanent;
}
四、搭建LNMT实现动静分离
环境
nginx IP 192.168.100.3
tomcat1 IP 192.168.100.4
tomcat2 IP 192.168.100.5
MySQL IP 192.168.100.3
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭他图形化工具
systemctl stop NetworkMassage
systemctl disable NetworkMassage
设置seLinux宽容模式
getenforce
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
192.168.100.3安装nginx
yum install -y epel-release
yum install -y nginx
192.168.100.4/5安装tomcat
yum install -y tomcat
修改配置文件
Tomcat1
cd /usr/share/tomcat/webapps
mkdir ROOT && cd ROOT
echo tomcat1 > index.jsp
Tomcat2
cd /usr/share/tomcat/webapps
mkdir ROOT && cd ROOT
echo tomcat2 > index.jsp
启动tomcat
systemctl start tomcat
curl 192.168.100.4:8080
curl 192.168.100.5:8080
说明tomcat正常运行
nginx
指定到tomcat ip
vim /etc/nginx/nginx.conf
upstream tomcat {
server 192.168.115.131:8080;
server 192.168.115.131:8081;
}location ~ \.jsp$ {
proxy_pass http://tomcat;}
访问测试是否实现负载均衡
修改nginx配置文件实现动静分离
location ~ \.jsp$ {
proxy_pass http://tomcat;
proxy_set_header Host $host;
}
location / {
root /usr/share/nginx/html;
index index.html;
}
访问测试
http://192.168.100.3/img.jsp tomcat报错
http://192.168.100.3/img.html nginx报错