Linux部署Tomcat和Nginx,并实现Nginx的动静分离

一、Linux相关软件安装

1. 安装gcc编译器

yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-delvel
yum install openssl openssl-devel

用来编译、安装Nginx文件

2. 安装文件上传

yum install -y lrzsz

用来从Windows上传叫jdk和Tomcat

3. 安装wget

yum install -y wget

用来网址下载Nginx

4. 安装vim

yum install -y vim

用来配置相关文件,相当于Windows中的笔记本

二、安装jdk和Apache-Tomcat

1. 上传jdk和Apache-Tomcat

rz //选择上传的文件

选择要上传的jdk和Apache-Tomcat文件

tar -zxvf 要解压的文件

解压jdk和Apache-Tomcat压缩包

*注:博主这里放到了/opt/soft

2. 配置环境变量

vim /etc/profile

进入环境变量文件,配置环境变量

将以下放到文件最下面

export JAVA_HOME=/opt/soft/jdk1.8.0_202
export JRE_HOME=/opt/soft/jdk1.8.0_202/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

注意:前面两行为博主的路径,注意替换

用以下命令让环境变量生效

source /etc/profile

3. 测试

(1)测试jdk

java -version

在这里插入图片描述显示jdk版本号即配置成功

(2)测试Apache-Tomcat

进入/opt/soft/apache-tomcat-8.5.82A/bin文件夹

./catalina.sh run

启动服务器

在这里插入图片描述
打开浏览器访问http://ip地址:端口号

注意:浏览器访问时需要关闭Linux防火墙,命令如下

systemctl stop firewalld

三、安装Nginx

1. 下载Nginx包

访问https://nginx.org/en/download.html找到想要的Nginx版本,复制链接地址

wget 链接地址

下载后解压
在这里插入图片描述

2. 配置、编译和安装Nginx

(1)配置

配置相关文件

./configure 

如图即配置成功
在这里插入图片描述

(2)编译文件

make

如图即编译成功
在这里插入图片描述

(3)安装

make install

如图即安装成功
在这里插入图片描述
注:一般情况下默认安装在/usr/local/nginx目录下

3.修改Nginx相关配置

进入默认安装目录下的conf目录
在这里插入图片描述
修改nginx.conf文件

vim nginx.conf

在这里插入图片描述
加入upstream,server后为自己Tomcat的ip地址和端口号

在location中加入proxy_pass http://mytomcat;

ip_hash的作用:

ip_hash是根据用户请求过来的ip,然后映射成hash值,然后分配到一个特定的服务器里面;

使用ip_hash这种负载均衡以后,可以保证用户的每一次会话都只会发送到同一台特定的Tomcat里面,它的session不会跨到其他的tomcat里面去的;

4. 启动Nginx

进入/usr/local/nginx/sbin/

测试文件配置是否正确

./nginx -t

如图即为配置正确
在这里插入图片描述
重新启动Nginx,没有报错即为正确

./nginx -s reload

将Tomcat服务器开启后,在浏览器中输入部署Nginx的IP地址,可以访问即为正确

注意:浏览器访问时需要关闭Linux防火墙,命令如下

systemctl stop firewalld

5.Nginx的动静分离

(1)什么是动静分离

将动态请求和静态请求区分访问

(2)为什么要做动静分离

tomcat本身处理静态效率不高,还会带来资源开销.所以使用动静分离,将静态由Nginx处理, 动态由PHP处理或Tomcat处理

(3)如何实现动静分离

Nginx根据客户端请求的url来判断请求的是否是静态资源,如果请求的url包含jpg、png,则由Nginx处理。
如果请求的url是.php或者.jsp等等,这个时候这个请求是动态的,将转发给tomcat处理

总结来说,Nginx是通过url来区分请求的类型,并转发给不同的服务端

我搭建的Nginx是反向代理负载均衡模式,所以把静态文件都存放在Nginx代理服务器上:

首先在Nginx安装目录下创建一个存放静态文件的文件夹:

#创建静态文件存储目录

mkdir /usr/local/nginx/static

编辑nginx配置文件

#找到nginx的配置文件

cd /usr/local/nginx/conf

#编辑配置文件

vim nginx.conf

找到server标签,内部添加动静分离配置:
在这里插入图片描述
在server标签内部添加如下配置信息:

#通过url判断如下后缀为静态文件,并转至静态文件路径获取文件

location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
    
    
   #某用户下的 静态文件路径
   root /opt/nginx/static/;
   #缓存有效期  30d = 30天,也可以去掉
   expires 30d;
}

在这里插入图片描述
重启Nginx

#切换到nginx目录下

cd /usr/local/nginx

#进入操作命令文件夹

cd /sbin

#重启

./nginx -s reload

完成!

6.相关错误及解决方法

在云服务器中部署Nginx时,如果无法编译,需要将操作系统版本回退

Nginx 重启无错误提示但浏览器无法访问且无法杀死进程时,使用如下命令

./nginx -c /usr/local/nginx/conf/nginx.conf

猜你喜欢

转载自blog.csdn.net/LCHONSEONE/article/details/128306798