动静分离练习

一、动静分离

1.单台机器动静分离

[root@web01 ~]# cat /etc/nginx/conf.d/linux.wp.com.conf
server {
listen 80;
server_name linux.wp.com;
location / {
root /code/wordpress;
index index.php;
}
location ~* \.(jpg|png|gif)$ {
root /code/wordpress;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /code/wordpress/$fastcgi_script_name;
include fastcgi_params;
}
}

2.多台机器的动静分离

1)准备环境

主机 作用 服务 IP PORT
lb01 负载均衡 nginx 192.168.71.116 9090
web01 静态资源 nginx 192.168.71.112 8080
web02 静态资源 nginx 192.168.71.113 8080
web03 动态资源 tomcat 192.168.71.114 8080

2)配置web01的静态资源

1、准备包
[root@web01 /usr/share/nginx/html]# cd /usr/share/nginx/html
[root@web01 /usr/share/nginx/html]# git clone https://gitee.com/egonlin/jsp_pro.git
[root@web01 /usr/share/nginx/html]# ll jsp_pro/
drwxr-xr-x 2 root root 27 6 3 17:10 backend_code
drwxr-xr-x 4 root root 51 6 3 17:10 frontend_code
2、修改配置文件
[root@web01 /usr/share/nginx/html]# cat /etc/nginx/conf.d/default.conf
server {
listen 8080;
location / {
root /usr/share/nginx/html/jsp_pro/frontend_code;
index index.html;
}
}
3 启动服务
[root@web01 /usr/share/nginx/html]# systemctl restart nginx
4、测试访问
[root@web01 /usr/share/nginx/html]# curl -I 127.0.0.1:8080/index.html
HTTP/1.1 200 OK
Server: nginx/1.26.1
Date: Mon, 03 Jun 2024 09:19:37 GMT
Content-Type: text/html
Content-Length: 1061
Last-Modified: Mon, 03 Jun 2024 09:10:29 GMT
Connection: keep-alive
ETag: "665d8885-425"
Accept-Ranges: bytes

3)配置web02的动态资源

1、准备包
同上
2、修改配置文件
[root@web02 /usr/share/nginx/html]# cat /etc/nginx/conf.d/default.conf
server {
listen 8080;
#location /static {
location ~* \.(css|js|jpg|png|mp4|gif)$ {
root /usr/share/nginx/html/jsp_pro/frontend_code;
}
}
3、 启动服务
[root@web01 /usr/share/nginx/html]# systemctl restart nginx
4、测试访问
[root@web02 /usr/share/nginx/html]# curl -I 127.0.0.1:8080/static/css/a.css
HTTP/1.1 200 OK
Server: nginx/1.26.1
Date: Mon, 03 Jun 2024 09:17:02 GMT
Content-Type: text/css
Content-Length: 300
Last-Modified: Mon, 03 Jun 2024 09:10:29 GMT
Connection: keep-alive
ETag: "665d8885-12c"
Accept-Ranges: bytes
[root@web02 /usr/share/nginx/html]# curl -I 127.0.0.1:8080/static/img/1.jpg
HTTP/1.1 200 OK
Server: nginx/1.26.1
Date: Mon, 03 Jun 2024 09:17:13 GMT
Content-Type: image/jpeg
Content-Length: 950756
Last-Modified: Mon, 03 Jun 2024 09:10:29 GMT
Connection: keep-alive
ETag: "665d8885-e81e4"
Accept-Ranges: bytes

4)配置web03

1、安装tomcat
yum install tomcat -y
2、准备包
[root@web03 ~]# git clone https://gitee.com/egonlin/jsp_pro.git
[root@web03 ~]# cp jsp_pro/backend_code/java_test.jsp /var/lib/tomcat/webapps/ROOT/
3、修改配置文件
无需修改
4、 启动服务
[root@web03 ~]# systemctl restart tomcat
5、测试访问
[root@web03 ~]# curl 127.0.0.1:8080/java_test.jsp
随机数:137

5)配置负载均衡

1.配置
[root@lb01 ~]# cat /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream frontend_server {
server 192.168.71.112:8080 max_fails=3 fail_timeout=5s;
}
upstream file_server {
server 192.168.71.113:8080 max_fails=3 fail_timeout=5s;
}
upstream backend_server {
server 192.168.71.114:8080 max_fails=3 fail_timeout=5s;
}
server {
listen 9090;
location / {
proxy_pass http://frontend_server;
}
location ~* \.(css|js|jpg|png|gif)$ {
proxy_pass http://file_server;
}
location ~* \.jsp$ {
proxy_pass http://backend_server;
}
}
}
2.重启
[root@lb01 ~]# systemctl restart nginx

最终测试

浏览器访问:

查看日志

[root@web01 /usr/share/nginx/html]# tail -f /var/log/nginx/access.log
192.168.71.116 - - [03/Jun/2024:17:31:07 +0800] "GET / HTTP/1.0" 200 1061 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" "-"
192.168.71.116 - - [03/Jun/2024:17:31:07 +0800] "GET /favicon.ico HTTP/1.0" 404 555 "http://192.168.71.116:9090/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" "-"
[root@web02 /usr/share/nginx/html]# tail -f /var/log/nginx/access.log
192.168.71.116 - - [03/Jun/2024:17:31:07 +0800] "GET /static/css/a.css HTTP/1.0" 200 300 "http://192.168.71.116:9090/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" "-"
192.168.71.116 - - [03/Jun/2024:17:31:07 +0800] "GET /static/js/jquery-3.7.1.js HTTP/1.0" 200 296028 "http://192.168.71.116:9090/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" "-"
192.168.71.116 - - [03/Jun/2024:17:31:07 +0800] "GET /static/img/1.jpg HTTP/1.0" 200 950756 "http://192.168.71.116:9090/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" "-"
[root@web03 ~]# tail -f /var/log/tomcat/localhost_access_log.2024-06-03.txt
192.168.71.116 - - [03/Jun/2024:17:31:11 +0800] "GET /java_test.jsp HTTP/1.0" 200 12

 

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 沪ICP备2022009235号 沪公网安备31011802005110号 青浦区尚茂路798弄 联系方式-13697081366