• 企业架构LNMP学习笔记61


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

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

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

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

    实现配置:

    配置文件参考:

    1. server{
    2. listen 80;
    3. server_name tomcat.devops.com;
    4. #和tomcat的host配置一致
    5. root /usr/local/tomcat/webapps/devops/ROOT;
    6. #静态不需要进行转发
    7. location ~ \.(html|css|js|png|jpg|jpeg)$ {
    8. #default_type text/plain;
    9. #echo 'html';
    10. #alias /;
    11. #root /usr/local/tomcat/webapps/devops/ROOT;
    12. }
    13. #其他识别不是静态资源的,统统发送到后端tomcat
    14. location / {
    15. proxy_pass http://127.0.0.1:8080;
    16. proxy_set_header Host $host;
    17. proxy_set_header X-Real-IP $remote_addr;
    18. #default_type text/plain;
    19. #echo $host;
    20. #echo $remote_addr;
    21. #echo $proxy_add_x_forwarded_for;
    22. }
    23. }

    有时间过来还是要将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上进行配置:

    1. upstream tomcat {
    2. #ip_hash;
    3. server 192.168.17.102:80;
    4. server 192.168.17.101:80;
    5. }
    6. server {
    7. listen 80;
    8. server_name tomcat.devops.com;
    9. location / {
    10. proxy_pass http://tomcat;
    11. proxy_set_header Host $host;
    12. proxy_set_header X-Real-IP $remote_addr;
    13. }
    14. }

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

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

    location ~ 的概念。

  • 相关阅读:
    领域驱动模型DDD(二)——领域事件的订阅/发布实践
    设计模式之状态模式
    【DesignMode】组合模式(composite mode)
    dreamweaver家乡主题网页设计 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业
    最大似然估计的介绍
    SpringBoot+Easyexcel读取多sheet支持xls,xlsx版本的excel
    linux常见命令以及jdk,tomcat环境搭建
    ARM DIY(九)陀螺仪调试
    BUG:required a single bean, but 2 were found:
    Java_反射(精心打磨详解)
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/132984622