企业架构LNMP学习笔记61

Nginx作为tomcat的前段反向代理:

在实际业务环境中,用户是直接通过域名访问,基于协议一般是http、https等。默认tomcat运行在8080端口。一般会通过前端服务器反向代理到后端的tomcat的方式,来实现用户可以通过域名访问tomcat的webapp。

tomcat在解析静态资源没有Nginx快。

动静分离:动态页面的请求交由后端处理(tomcat+java),静态页面直接返回。

实现配置:

配置文件参考:

bash 复制代码
server{
          listen       80;
          server_name  tomcat.devops.com;
          #和tomcat的host配置一致
          root /usr/local/tomcat/webapps/devops/ROOT;
          #静态不需要进行转发
          location ~ \.(html|css|js|png|jpg|jpeg)$ {
              #default_type text/plain;
              #echo 'html';
              #alias /;
              #root /usr/local/tomcat/webapps/devops/ROOT;
          }
          #其他识别不是静态资源的,统统发送到后端tomcat
          location / {
               proxy_pass http://127.0.0.1:8080;
               proxy_set_header Host      $host;
               proxy_set_header X-Real-IP $remote_addr;
               #default_type text/plain;
               #echo $host;
               #echo $remote_addr;
               #echo $proxy_add_x_forwarded_for;
          }
    }

有时间过来还是要将nginx的配置再复习,再练习。

Nginx单独访问静态页面,出现403的问题:

分析:没有读取权限。

解决方案:

当Nginx和Tomcat网站根目录一致的情况,注意Nginx是否有权限读到tomcat网站目录的权限。

一般性解决方案网站目录文件夹,赋予一个公共用户www。

shell > cd /usr/local/tomcat

shell > chown -R www:www webapps

tomcat是root启动的。那配置www用户和用户组,不影响tomcat的访问。

nginx启动的是www用户启动的。

所以给nginx配置用户和用户组,就可以解决这个问题。

再粘贴下老师的配置文件。

这个是动静分离。

负载均衡:降低单例压力,提高服务器并发性。

Nginx负载均衡:

随着业务的发展,单实例服务已经不能满足业务使用需要。

pv 页面访问数量

qps 每秒查询次数 并发量

DAU 每日活跃用户数

单实例无法满足,扩容为多实例

常见的业务运行方式:

单实例单应用 一个tomcat一个webapps

单实例多应用 一个tomcat多个webapps host

多实例单应用 多个tomcat同一个webapps

多实例实现方式:

1)多台服务器一个运行一个实例。(性能好)也就是一个服务器上安装一个tomcat。性能好。

2)单台服务器运行多个实例(监听不同端口,性价比高)伪集群。一个服务器上安装多个tomcat。

多实例多应用:

server04 nginx负载均衡

server01 tomcat1

server03 tomcat

业务流程示意图:

1)复制虚拟机,多实例。

两台tomcat里项目里的内容要一致

在server03上配置和server01一样的实现:

1>建立项目文件夹目录,绑定host主机域名

2>nginx做反向代理

配置nginx负载均衡:

在server04上进行配置:

bash 复制代码
upstream tomcat {
        #ip_hash;
        server 192.168.17.102:80;
        server 192.168.17.101:80;
    }
    server {
        listen 80;
        server_name tomcat.devops.com;
        location / {
           proxy_pass http://tomcat;
           proxy_set_header Host      $host;
           proxy_set_header X-Real-IP $remote_addr;
        }
    }

以上看nginx,人家的业务需求,我们更加好理解些。

nginx的配置文件,还需要再好好理解。

location ~ 的概念。

相关推荐
dreamxian4 分钟前
微服务1 -- MybatisPlus
java·微服务·架构
梦梦代码精7 分钟前
Dify + 扣子 + n8n + BuildingAI:从零搭建写作自动化平台,踩坑与实战全记录
运维·人工智能·架构·gitee·开源·自动化
Mintopia20 分钟前
企业落地 AI-Coding 的“权限与数据红线”简单版:能用到什么程度
人工智能·架构
传感器与混合集成电路24 分钟前
从拉曼散射到相位解调:分布式光纤测井技术解析
分布式·架构
迷藏49436 分钟前
# 发散创新:用Locust实现高并发场景下的精准压力测试实战在现代微服务架构中,**系统稳定性与性能瓶颈的识别能力直接决定了产品上线后
java·python·微服务·架构·压力测试
小陈工1 小时前
2026年3月30日技术资讯洞察:AI算力突破、云原生优化与架构理性回归
开发语言·人工智能·python·云原生·架构·数据挖掘·wasm
未来之窗软件服务1 小时前
东方仙盟VOS诸法空相架构思路—未来之窗行业应用跨平台架构
人工智能·架构·仙盟创梦ide·东方仙盟·昭和仙君
winfredzhang1 小时前
从后端架构到移动端体验:拆解一个优雅的 Node.js 轻量级媒体管理系统
架构·node.js·媒体
曹牧2 小时前
Tomcat 启动内存的设置
java·tomcat
AI袋鼠帝2 小时前
阿里上线电商版龙虾!自动开店赚钱、发X,真有点离谱了.
架构