nginx部署前端程序的小知识

1、前后端分离项目将前端程序部署在Nginx中好,还是部署在Tomcat中好,优缺点是什么?

前后端分离项目一般将前端程序部署在 Nginx 或其他 Web 服务器中,将后端程序部署在 Tomcat 或其他应用服务器中。将前端程序部署在 Nginx 中和将其部署在 Tomcat 中,各有优缺点,具体如下:

部署在 Nginx 中的优缺点:

优点:

  1. 轻量级:Nginx 是一个轻量级的 Web 服务器,具有快速、高效、稳定等特点。它可以快速响应静态资源和 Web 请求,适合用于部署前端项目。

  2. 高并发:Nginx 支持高并发的访问,可以快速响应大量的请求,提高了系统的响应速度。

  3. 负载均衡:Nginx 还可以通过负载均衡的方式,将请求分发到不同的后端服务器上,提高了系统的稳定性和可用性。

  4. 静态资源缓存:Nginx 支持静态资源缓存,可以加速前端页面的加载速度,提高了用户体验。

缺点:

  1. 不支持 JSP:Nginx 不支持 JSP,如果前端项目需要使用 JSP 技术,就需要将其部署在 Tomcat 中。

  2. 不支持动态请求:Nginx 不支持动态请求,如果前端项目需要与后端进行交互,就需要将动态请求转发到 Tomcat 中处理。

部署在 Tomcat 中的优缺点:

优点:

  1. 支持 JSP:Tomcat 支持 JSP 技术,可以方便地开发出具有动态特性的前端页面。

  2. 支持动态请求:Tomcat 支持动态请求,可以方便地与后端程序进行交互。

  3. 可以部署后端程序:Tomcat 可以作为应用服务器,可以方便地部署后端程序,与前端项目配合使用。

缺点:

  1. 不适合部署静态资源:Tomcat 主要用于运行 Java 应用程序,对于静态资源的处理能力较弱,不适合部署大量的静态资源。

  2. 不支持高并发:Tomcat 的性能和稳定性不如 Nginx,不适合处理高并发的请求。

综上所述,将前端程序部署在 Nginx 中可以提高系统的响应速度和并发能力,但不支持 JSP 和动态请求;将前端程序部署在 Tomcat 中可以支持 JSP 和动态请求,但不适合部署静态资源和处理高并发的请求。因此,根据实际需求选择合适的部署方案。

2、如何将前端程序部署到nginx并配置负载均衡?

将前端程序部署到 Nginx 及配置负载均衡的步骤如下:

  1. 安装 Nginx:如果没有安装 Nginx,需要先安装 Nginx。可以在 Linux 中使用包管理工具进行安装,也可以到 Nginx 官网下载源码编译安装。

  2. 配置 Nginx:在安装完成后,需要修改 Nginx 的配置文件 /etc/nginx/nginx.conf。配置文件中可以设置监听的端口、虚拟主机、反向代理、负载均衡等。具体的配置如下:

http {
    upstream backend {
        server 127.0.0.1:8080 weight=1; # 后端服务器1
        server 127.0.0.1:8081 weight=1; # 后端服务器2
    }

    server {
        listen 80; # 监听80端口
        server_name localhost;

        location / {
            root /path/to/frontend; # 前端文件所在目录
            index index.html;
        }

        location /api/ {
            proxy_pass http://backend; # 反向代理到后端服务器
        }
    }
}

配置文件中,upstream 块定义了后端服务器的地址和权重;server 块定义了监听端口和虚拟主机;location 块定义了前端和后端的请求路径和反向代理到的服务器。

  1. 启动 Nginx:修改完配置文件后,需要启动 Nginx,可以使用命令 systemctl start nginx 或 service nginx start 启动 Nginx。

  2. 验证部署效果:启动 Nginx 后,需要验证部署效果。可以访问 http://localhost/ 查看前端页面是否可以正常访问;访问 http://localhost/api/ 查看与后端的请求是否可以正常转发到后端服务器。

  3. 配置负载均衡:如果需要配置负载均衡,只需要在 upstream 块中添加多个后端服务器的地址和权重即可。Nginx 会自动进行负载均衡。

http {
    upstream backend {
        server 127.0.0.1:8080 weight=1; # 后端服务器1
        server 127.0.0.1:8081 weight=1; # 后端服务器2
    }

    server {
        listen 80; # 监听80端口
        server_name localhost;

        location / {
            root /path/to/frontend; # 前端文件所在目录
            index index.html;
        }

        location /api/ {
            proxy_pass http://backend; # 反向代理到后端服务器
        }
    }
}

配置完成后,可以使用 Nginx 的状态页面查看负载均衡的效果。页面地址为 http://localhost/nginx_status

以上就是将前端程序部署到 Nginx 并配置负载均衡的步骤。

3、nginx静态资源的缓存大小如何设置?

在 Nginx 中设置静态资源缓存大小需要配置 http 块中的 proxy_cache_path 指令。该指令定义了缓存路径和参数,可以设置缓存的大小、最大文件数等。具体的配置如下:

http {
  # 定义缓存路径和参数
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

  server {
    listen 80;
    server_name example.com;

    location / {
      # 开启缓存
      proxy_cache my_cache;
      proxy_cache_valid 200 60m; # 缓存有效期为60分钟
      proxy_cache_key "$scheme$request_method$host$request_uri";
      proxy_cache_bypass $http_pragma;
      proxy_cache_revalidate on;
      proxy_cache_min_uses 1;
      proxy_cache_lock on;

      # 静态资源的访问路径
      root /var/www/html;
      index index.html;
    }

    location = /favicon.ico {
      log_not_found off;
      access_log off;
    }
  }
}

上述配置中,levels 参数表示缓存目录的深度,keys_zone 参数指定缓存的名称和大小,inactive 参数指定缓存对象在多久时间内没有被访问后将被清除。

另外,proxy_cache_valid 指令定义了缓存对象的有效期,proxy_cache_key 指令定义了缓存键的名称,proxy_cache_bypass 指令定义了在哪些情况下不使用缓存,proxy_cache_revalidate 指令定义了缓存对象是否需要重新验证,proxy_cache_min_uses 指令定义了至少访问多少次后才缓存,proxy_cache_lock 指令定义了是否开启缓存锁。

设置缓存大小时,可以在 proxy_cache_path 中使用 max_size 参数指定最大缓存大小,或使用 inactive 参数指定多长时间内没有被访问后缓存将被清除。例如,设置缓存大小为 10GB,可以将设置修改为如下所示:

http {
  # 定义缓存路径和参数
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m max_size=10g;

  server {
    ...
  }
}

以上就是在 Nginx 中设置静态资源缓存大小的方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值