利用nginx搭建简单图片服务器实现负载均衡

2023-11-08

在我们搭建一个网站的时候,往往有时候会加载更多的图片,如果都从tomcat服务器来获取静态资源,这样会增加我们服务器的负载,使得服务器运行 速度非常慢,这时我们可以使用nginx服务器来加载这些静态资源,这样就可以实现负载均衡,为我们的Tomcat服务器减压了。一般大型网站都这么干,他们有单独的图片服务器,这里我们在本地利用nignx来搭建一个简单的图片服务器。

一、安装nignx

nignx是绿色版本的,只要到官网下载解压既可启动,解压目录图如下所示:
这里写图片描述

这里我们可以通过命令行start nignx.exe来启动服务器,也可以通过bat批处理文件来启动,打开批处理文件简单处理一下就 可以启动了:

这里写图片描述

上面的两种方式都可以启动服务器,当我们启动一下服务器我们来简单测试一下,在浏览器输入localhost访问,你可以看见一个简单nignx服务器欢迎页面。

下面,我们着重讲解一下nignx的配置文件,在conf目录下,打开nignx.conf文件,nginx.conf由多个块组成,最外面的块是main,main包含events和http,http包含多个upstream和多个server,server又包含多个location:

这里写图片描述

main(全局设置)、server(虚拟主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。
1.main块设置的指令将影响其他所有设置;
2.server块的指令主要用于指定主机和端口;
3.upstream指令主要用于负载均衡,设置一系列的后端服务器;
4.location块用于匹配网页位置。
这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。
在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。

通过上面的简单的讲解我们了解了一下nignx的配置文件,现在我们来具体看一下它的内容并且开始配置:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

上面这是配置文件中的一部分,我们看一下location这个节点,它下面的root表示该站点的根目录,root html表示根目录下有一个html文件夹,当你访问上面配置的域名(laocahost)时,它默认访问跟目录下的html文件中的index.html页面,这样你应该就明白了怎么样配置一个自定义的图片服务器了吧,我们可以自定一个server节点,将其localhost节点指定为我们要访问的图片地址域名,这样我们就可以轻松访问我们的静态资源了。

 location / {
            root   html;
            index  index.html index.htm;
        }

二、搭建图片服务器

经过上面的介绍我们应该明白了它的大概原理,下面我们来实战配置一下。
首先我们这里是本地搭建,所以没有域名,这里我们可以随便一个二级域名来作为练习(比如images.shinelon.com),我们找到C:\Windows\System32\drivers\etc这个目录下有一个hosts文件来加入映射我们的域名,加入下面的配置:

127.0.0.1   images.shinelon.com

然后我们复制nignx.conf文件的server节点,改为如下配置:

server {
        listen       80;
        server_name  images.shinelon.com;

        #access_log  logs/host.access.log  main;

        location / {
            root  D:\images;
            
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

上面,我们将域名改为了我们自定义的图片域名,将root目录改为了我们的图片存放目录(D:\images),这样我们启动nignx服务器就可以访问图片资源了,这里加入该目录下有一张图片为1.jpg。当你在浏览器中输入images.shinelon.com/1.jpg就可以访问我们的图片资源了。

至此,我们就搭建了一个简单的图片服务器。

如果你想和我们一起学习交流,共同进步,欢迎加群:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用nginx搭建简单图片服务器实现负载均衡 的相关文章

随机推荐

  • Kubernetes 资源管理:最大化集群性能

    今天是 DevOps云学堂 与你共同进步的第 54天 Kubernetes 资源管理是部署和管理容器化应用程序的一个关键方面 它允许管理员控制系统不同部分之间计算资源的分配 例如CPU 内存和存储 有效的资源管理可确保应用程序获得正确运行所
  • Latex 字体的设置

    一 字体族的设置 1 说明 1 字体命令 textrm Roman Family 在花括号内的字体都是Roman Family 字体 2 字体声明 rmfamily Roman Family 该命令下面的字体都是是Roman Family字
  • Vim几种跳转方式

    Vim几种跳转方式 ps 以下时我常用的一些跳转指令 用于参考和复习记忆 还有一些后续会更新 文件内跳转 移动光标 普通模式下左h 右l 上k 下j 可以使用数字 hlkj 实现跳跃式移动 字符间跳转 跳转到当前字符的前面 普通模式下i 跳
  • CesiumJS三维案例

    WebGL近几年越来越被人们所关注 但是二三维开发难度也比普通web要高出许多 不管我们是在在开发或者是学习过程中 往往需要耗费大量的时间去查阅资料和研究官方案例 让本来就非常紧张的而宝贵的精力卷到了不关紧要的地方 而大多二三维的包 ope
  • apk文件结构解析一

    Apk文件用WINRAR压缩软件解压缩后 如下图所示 主要是三个文件 lib META INF res 和三个文件夹 AndroidManifest xml classes dex resources arsc 用工具展开可以看到如下所示的
  • Protobuf在java中的简单使用实例

    TTprotobuf是一种跨语言的数据转换协议 由google开源的 已支持大部份语言 在一般的数据交互过程中都是使用json xml等来做数据的转换 这其中涉及复杂的解析与序列化反序列化问题 如果在大量数据并发请求时 也会导致性能问题 p
  • Vue-过滤器

    Vue 过滤器 过滤器 过滤器 Filters 是vue 为开发者提供的功能 常用于文本的格式化 过滤器可以用在两个地方 插值表达式 和 v bind 属性绑定 过滤器应该被添加在JavaScript 表达式的尾部 由 管道符 进行调用 p
  • 图像增强之同态滤波python实现——20221204工作总结

    目录 参考 同态滤波python实现 代码 效果 参考 1 https wenku baidu com view 4eb598180a12a21614791711cc7931b765ce7ba9 html wkts 167005422236
  • IDEA 调试前端代码JS 及安装JetBrains IDE Support

    收藏从未间断 学习从未开始 不需要F12窗口 不需要JS代码写debugger断点 不需要写console log 输出 一 JetBrains IDE Support 1 必须使用谷歌浏览器 安装JetBrains IDE Support
  • go 进阶 sync相关: 一. sync.atomic​ 原子操作

    sync atomic 原子操作 一 sync atomic 基础 sync atomic Value 二 sync atomic 源码分析 1 ifaceWords 2 Store 添加 3 Load 获取 一 sync atomic 基
  • c#Replace用法

    string txt 333 333 txt Replace Console WriteLine 赋值前 txt txt txt Replace Console WriteLine 赋值后 txt
  • Grape 依赖管理器

    本文参考自Groovy文档 The Grape dependency manager 本文代码大部分来自Groovy官方文档 Groovy自带了一个嵌入式的jar依赖管理器 这个管理器的主要作用应该是配合Groovy脚本使用 让我们不需要任
  • Struts2 几种校验

    1 Struts2手动校验 1 重写actionsupport类的validate方法 action需要继承ActionSupport类 public class StrutshAction extends ActionSupport 在v
  • 三种基于感知哈希算法的相似图像检索技术

    大家都用google或baidu的识图功能 上面就是我搜索一幅图片的结果 该引擎实现相似图片搜素的关键技术叫做 感知哈希算法 Perceptual hash algorithm 它的作用是对每张图片生成一个 指纹 fingerprint 字
  • Unity插件-NGUI

    1 基本使用 NGUI gt 选项 gt Reset Perfab Toolbar 显示预制体UI组件 可以直接拖拽到场景中 使用NGUI 必须要有一个UIRoot作为父组件 在场景中的UIRoot中右键单击 然后点Create来创建组件
  • 中文垃圾邮件分类。2种特征提取,词袋特征,IFIDF分布特征,贝叶斯NB,LR,SVM各自表现的实战示例代码

    结论 数据 ham data txt spam data txt stop words utf8 数据处理 author liushuchun import re import string import jieba 加载停用词 with
  • 【TensorFlow】远程使用jupyter和TensorBoard

    1 远程jupyter notebook 在服务器端以如下方式启动jupyter jupyter notebook ip 0 0 0 0 结果如下 本地输入上述网址 将括号中的内容替换为服务器IP 即可启动 2 远程TensorBoard
  • Excel Vba范例

    第1部分 单元格选择技巧与选区统计 第1章 单元格与区域选择技巧 实例1选择A列最后一个非空单元格 Sub 选择A列最后一个非空单元格 Range a1048576 End xlUp Select End Sub 讲解 1 Range 返回
  • Promise初步详解(resolve,reject,catch)

    Duang 最近搭建了一个自己的博客小破站 欢迎各位小伙伴来访吖 ares coder blog portalhttps www ares stack cn blog service game 一 何为Promise 为了直观一点 首先我们
  • 利用nginx搭建简单图片服务器实现负载均衡

    在我们搭建一个网站的时候 往往有时候会加载更多的图片 如果都从tomcat服务器来获取静态资源 这样会增加我们服务器的负载 使得服务器运行 速度非常慢 这时我们可以使用nginx服务器来加载这些静态资源 这样就可以实现负载均衡 为我们的To