集群环境下的图片服务器搭建
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工具访问进而创建。)
这样就将基本搭建好了。在搭建过程中遇到了很多的问题,在网上查了很多人的资料,在这里也非常感谢这些人的分享。
总结
需要说明的是,本人在这里介绍的是一个基本的搭建过程,其中有些个性化的配置没有进行说明。如果有问题可以在评论中说明,如果在小生能力范围之内的问题,会予以解答,也希望,大牛们多给与指点,希望共同成长吧!以上是关于集群环境下的图片服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章