集群环境下的图片服务器搭建

Posted 任长江

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群环境下的图片服务器搭建相关的知识,希望对你有一定的参考价值。

       在做电商系统的过程中,在搭建图片服务器的过程中遇到了很多问题,整了很长时间,在这里总结一下,希望能加深自己影响,也希望能够帮助到一些学习中遇到问题的朋友。

系统结构认识:

       在设计传统项目的过程中,图片服务器的结构如下:


       图片直接上传到一个工程下,访问也是在同一个工程下,这种结构设计原理相对简单,在这种结构下,可以直接通过jsp页面进行访问到上传的图片。

       但是当服务器的请求压力过大时就要考虑服务器集群环境搭建,这时候就会出现一个问题,如果图片上传到A服务器下,这时候如果访问A服务器是可以访问到图片的,而访问的时候如果访问到B服务器就无法访问到图片,这样用户那里就会出现,时不时可以访问到图片的情况。这时候也有相关解决方案,例如再重新构建一台新的服务器,图片都存到该服务器上,访问时通过应用服务器转到该服务器。

我在这里应用的结构为如下结构:


       这种结构的工作方式为:设计通过nginx服务器做负载均衡,ftp服务器用来存储图片。图片上传请求到tomcat服务器,由tomcat负责将图片上传到ftp服务器,而访问图片时直接访问ftp服务器。

       在这里需要先明白一个概念,web服务器和web应用服务器区别;web服务器不能解析jsp等页面,只可以处理js、html、css等静态页面,但是web服务器的并发能力却远高于web应用服务器,这是其一大优点。Nginx,Apache都是web服务器,而tomcat和jetty都是web应用服务器。在这里用的是linux+Nginx+tomcat+ftp进行构建,所以上边的结构可以实现高并发,速度快的特点。

系统搭建过程:

       Nginx环境搭建:

       1、准备nginx安装环境

       因为在这里我们要在Linux环境下搭建nginx服务,需要先做好安装nginx的环境配置(关于安装Linux环境就不再介绍)。

       1)      nginx编译环境gcc,通过命令yum install gcc-c++,安装gcc环境。

       2)      nginx的http模块需要pcre解析正则表达式,通过yum install –y pcre pcre-devel命令安装pcre库。

       3)      nginx需要zlib对http包解压,通过yum install –y zlib zlib-devel命令安装zlib库。

       4)      nginx的https协议支持需要安装openssl库,通过yum install –y openssl openssl-devel命令安装openssl库。

       2、编译安装

       1)将nginx-1.8.0.tar.gz拷到linux服务器。

       2)通过tar –zxvf nginx-1.8.0.tar.gz命令解压。

       3)安装参数设置:

       进入刚解压出来的目录,有一个configure可执行文件,运行如下命令(去掉复制下来的空字符):

       ./configure \\

       --prefix=/usr/local/nginx \\

       --pid-path=/var/run/nginx/nginx.pid \\

       --lock-path=/var/lock/nginx.lock \\

       --error-log-path=/var/log/nginx/error.log \\

       --http-log-path=/var/log/nginx/access.log \\

       --with-http_gzip_static_module \\

       --http-client-body-temp-path=/var/temp/nginx/client\\

       --http-proxy-temp-path=/var/temp/nginx/proxy\\

       --http-fastcgi-temp-path=/var/temp/nginx/fastcgi\\

       --http-uwsgi-temp-path=/var/temp/nginx/uwsgi\\

       --http-scgi-temp-path=/var/temp/nginx/scgi

       4)编译安装:make命令编译,makeinstall 命令安装。

       3、启动nginx

       到上边参数指定的目录:/usr/local/nginx/sbin/目录下执行nginx可执行文件。

       FTP服务器环境搭建

       1)      安装vsftpd组件,使用 yum –y install vsftpd命令。

       2)      添加ftp用户,使用useradd ftpuser命令,该用户创建的默认路径为:/home/ftpuser

       3)      设置密码,运行passwd ftpuser命令,会让输入密码和确认密码,之后设置密码成功。

       4)      端口设置,通过vim编译器将/etc/sysconfig/iptables文件中的22 –j ACCEPT中的22修改为21,serviceiptables restart 重启iptables,这时开启21端口,ftp服务端口为21。

Nginx访问到ftp

       从上边的图中可以看到,需要通过nginx服务器访问到ftp服务器,从而访问图片。所有需要通过配置,是nginx访问到ftp服务器。需要修改/usr/local/nginx/conf/下的nginx.conf文件,修改nginx的根目录指向,默认配置为:root html,默认是指向本身根目录下的html文件,修改为root /home/ftpuser;即可,注意,这里配置不是固定的,后边的路径为ftp的图片服务地址,在上边创建的ftp服务的用户路径为/home/ftpuser,所以这里就配置为了该路径。

       也可以配置为/home/ftpuser/xxx,只需要在/home/ftpuser下再创建一个xxx目录即可(可以通过filezila工具访问进而创建。)

       这样就将基本搭建好了。在搭建过程中遇到了很多的问题,在网上查了很多人的资料,在这里也非常感谢这些人的分享。

总结

       需要说明的是,本人在这里介绍的是一个基本的搭建过程,其中有些个性化的配置没有进行说明。如果有问题可以在评论中说明,如果在小生能力范围之内的问题,会予以解答,也希望,大牛们多给与指点,希望共同成长吧!

以上是关于集群环境下的图片服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

集群环境下的Session处理

入门、快速搭建Docker分布式项目环境

Linux搭建图片服务器减轻传统服务器的压力(nginx+vsftpd)

windows环境下的tomcat集群怎么搭建

Jenkins集群下的pipeline实战

Jenkins集群下的pipeline实战