博客
关于我
nginx 配置~~~本身就是一个静态资源的服务器
阅读量:789 次
发布时间:2023-02-15

本文共 3600 字,大约阅读时间需要 12 分钟。

Nginx 配置与应用场景

一、Nginx 作用

Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一款静态资源服务器,广泛应用于网站性能优化和资源管理。其主要功能包括:

  • 静态HTTP服务器:能够直接服务静态资源文件,如HTML、图片、JS等,适用于简单的静态站点。
  • HTTP服务器(动静分离):通过与后端动态服务(如Tomcat)配合,实现动态内容与静态资源的分离,提升负载均衡性和性能。
  • 反向代理:将客户端请求转发给后端服务器,常用于保护后端服务,实现部署多个应用的高效管理。
  • 负载均衡:基于_round_robin_或_weight_策略,自动分配请求,确保服务器资源合理使用。

二、Nginx 静态HTTP服务器配置

Nginx 可以作为简单的静态资源服务器,当只需服务静态文件时,其配置相对简单。以下是典型的静态服务器配置示例:

server {    listen 80;    server_name localhost;    index index.html index.htm;    root html;    location / {        root html;        index index.html index.htm;    }    error_page 500 502 503 504 /50x.html;    location = /50x.html {        root html;    }}
URL 与 URI
  • URL:完整的网络路径,包括主机名、端口和 URI。
  • URI:资源路径,用于 Nginx 配置中的 location 匹配规则。
location 配置方法

location 配置用于匹配 URI 路径,有两种主要方式:

  • 前缀匹配

    • 使用 =:精确匹配,大小写敏感。
    • 使用 ~*:忽略大小写。
    • 使用 ^~:只需匹配 URI 开头部分。
    • 使用 @:内部跳转,用于反向代理。
  • 名称匹配

    • 使用 @ 后跟名称,实现对应 URI 的跳转。
  • 示例配置
    location / {    root html;    index index.html index.htm;}

    三、Nginx HTTP 服务器(动静分离)

    动静分离是提升网站性能的关键技术,Nginx 与后端服务(如 Tomcat)配合,实现高效的资源管理。以下是典型的动静分离配置示例:

    upstream tomcat {    server localhost:8080;}server {    listen 80;    server_name localhost;    root html;    index index.html;    # 静态资源处理    location ~* \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {        root html;    }    # 动态资源转发    location ~* jsp$ {        proxy_pass http://tomcat;    }    error_page 500 502 503 504 /50x.html;    location = /50x.html {        root html;    }}
    动静分离优势
    • 静态资源缓存:减少后端负载,提升访问速度。
    • 动态资源处理:分离前后端,提升并发处理能力。

    四、反向代理——proxy_pass

    反向代理是保护后端服务的重要手段,Nginx 可以通过 proxy_pass 将请求转发给指定目标。以下是一个典型的反向代理配置示例:

    server {    listen 80;    server_name blog.yilele.site;    index index.html;    root /shan/blog/;    # 静态资源处理    location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {        root /shan/blog/;        index index.html;        add_header Access-Control-Allow-Origin *;    }    # 反向代理    location /api {        proxy_pass http://ip地址或域名:端口号;    }}
    反向代理应用
    • 安全性:保护后端服务不暴露接口。
    • 负载均衡:通过proxy_pass实现多服务器负载均衡。
    • 高可用性:自动故障转移,确保服务稳定运行。

    五、Nginx 配置 Spring Boot + Vue 前后端分离项目

    一、配置思路

    Nginx 作为反向代理和静态资源服务器,负责:

  • 接受域名访问,转发动态请求至后端 Spring Boot 服务。
  • 服务前端 Vue 应用的静态资源,如 CSS、JS、图片等。
  • 通过 Nginx 配置,实现前后端分离,提升应用性能和安全性。
  • 二、具体配置
    # 静态资源根目录location / {    root /shan/blog/;    index index.html;}# 静态资源类型匹配location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {    root /shan/blog/;    index index.html;    add_header Access-Control-Allow-Origin *;}# 动态请求反向代理location /api {    proxy_pass http://apistream;  # 通过 Docker Compose 配置的服务名}
    三、Docker Compose 部署
    version: "3"services:    api:        image: api        container_name: api        expose:            - "8888"    nginx:        image: nginx        container_name: nginx        ports:            - "80:80"            - "443:443"        volumes:            - /mnt/docker/nginx/:/etc/nginx/            - /mnt/shan/blog:/shan/blog        links:            - api        depends_on:            - api
    四、Nginx 配置
    upstream apistream {    server api:8888;}server {    listen 80;    server_name blog.yilele.site;    index index.html;    root /shan/blog/;    # 静态资源处理    location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {        root /shan/blog/;        index index.html;        add_header Access-Control-Allow-Origin *;    }    # 动态请求反向代理    location /api {        proxy_pass http://apistream;    }    error_page 500 502 503 504 /50x.html;    location = /50x.html {        root html;    }}
    五、总结

    通过上述配置,Nginx 实现了前后端分离项目的高效管理:

    • 静态资源:通过 location 配置,自动匹配并服务多种静态文件类型。
    • 动态请求:通过 proxy_pass,安全地将请求转发至后端 Spring Boot 服务。
    • 负载均衡:通过 Docker Compose 与 Nginx 结合,实现多服务器的负载均衡,提升整体系统性能。

    以上内容可根据实际项目需求进行修改和优化,确保最佳性能和安全性。

    转载地址:http://imcfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
    查看>>
    MySQL高可用解决方案详解
    查看>>
    MYSQL高可用集群MHA架构
    查看>>
    MySQL高级-MySQL并发参数调整
    查看>>
    MySQL高级-MySQL查询缓存优化
    查看>>
    MySQL高级-MySQL锁
    查看>>
    MySQL高级-SQL优化步骤
    查看>>
    MySQL高级-内存管理及优化
    查看>>
    MySQL高级-视图
    查看>>
    MySQL高级-触发器
    查看>>
    mysql高级查询~分页查询
    查看>>
    MySQL高频面试题
    查看>>
    MySQL(2)DDL详解
    查看>>
    Mysql,sql文件导入和导出
    查看>>
    Mysql:mysql 5.X 报错 ERROR 1193 (HY000): Unknown system variable ‘validate_password_length‘
    查看>>
    MySQL:MySQL执行一条SQL查询语句的执行过程
    查看>>
    Mysql:SQL性能分析
    查看>>
    mysql:SQL按时间查询方法总结
    查看>>
    MySQL:什么样的字段适合加索引?什么样的字段不适合加索引
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>