nginx实现动静分离

什么是动静分离

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

动静分离简单的概括就是:动态文件与静态文件的分离

为什么要做动静分离?

在我们的软件开发中,有些请求是需要后台处理的(如.jsp,.do等等),有些请求时不需要经过后台处理的(如css、html、jpg、js等文件),这些不需要经过后台处理的文件成为静态文件,否则为动态文件。因此我们后台处理应忽略静态文件。但这样后台的请求次数就明显增多了,在我们对资源的响应速度有要求的时候,就应使用动静分离的策略去解决。

动静分离将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。这里我们将静态资源放到nginx中,动态资源转发到tomcat服务器中。

动静分离的原理很简单,通过location对请求url进行匹配即可,具体配置如下:

nginx实现动静分离

主机名 IP 服务
nginx 192.168.100.150 nginx
client1 192.168.100.110 httpd
client2 192.168.100.120 lnmp

服务安装

httpd安装

这里为了便于实现效果,httpd采用yum的方式安装

[root@client1 ~]# yum -y install httpd

[root@client1 ~]# systemctl enable --now firewalld
[root@client1 ~]# setenforce 0
lnmp搭建

创建源码包存放目录并下载源码包

[root@client2 ~]# mkdir /usr/src/soft
[root@client2 ~]# cd /usr/src/soft/
[root@client2 soft]# wget https://nginx.org/download/nginx-1.20.1.tar.gz
[root@client2 soft]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
[root@client2 soft]# wget https://www.php.net/distributions/php-8.0.12.tar.gz
[root@client2 soft]# ls
mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz  nginx-1.20.1.tar.gz  php-8.0.12.tar.gz
nginx

创建nginx用户

[root@client2 ~]# useradd -r -M -s /sbin/nologin nginx

安装依赖包

[root@client2 ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make 
[root@client2 ~]# yum -y groups mark install 'Development Tools'

创建日志存放目录

[root@client2 ~]# mkdir -p /var/log/nginx
[root@client2 ~]# chown -R nginx.nginx /var/log/nginx

解压软件包

[root@client2 soft]# tar xf nginx-1.20.1.tar.gz -C /usr/local/

编译安装

[root@client2 nginx-1.20.1]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-debug \
> --with-http_ssl_module \
> --with-http_realip_module \
> --with-http_image_filter_module \
> --with-http_gunzip_module \
> --with-http_gzip_static_module \
> --with-http_stub_status_module \
> --http-log-path=/var/log/nginx/access.log \
> --error-log-path=/var/log/nginx/error.log

[root@client2 nginx-1.20.1]# make && make install

配置环境变量

[root@client2 ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@client2 ~]# . /etc/profile.d/nginx.sh 

启动nginx

[root@client2 ~]# nginx 
[root@client2 ~]# ss -antl
State      Recv-Q     Send-Q         Local Address:Port           Peer Address:Port     Process     
LISTEN     0          128                  0.0.0.0:80                  0.0.0.0:*                    
LISTEN     0          128                  0.0.0.0:22                  0.0.0.0:*      
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值