Linux下tomcat部署图片服务器与 vsftpd搭建

来源:互联网 发布:政府机构的域名 编辑:程序博客网 时间:2024/05/18 13:43

背景:由于app端需要透出每张电子发票的图片,则需要将发票图片从阿里开票平台下载过来,放置到图片服务器中,让其被人访问。
要求

  1. 分为接口服务器和图片服务器,图片放到图片服务器,且能被访问
  2. 图片服务器需要搭建vsftpd,使程序能通过ftp,将下载来的图片上传到图片服务器

    搭建图片服务器
    1、下载apache-tomcat-7.0.63.tar.gz ,解压并安装tomcat
    tar -zxvf apache-tomcat-7.0.63.tar.gz
    这里写图片描述
    2、进入tomcat目录/config/server.xml, 修改此文件,建议拉到桌面进行修改,修改好后再拉到linux系统,进行覆盖。

我的server.xml 位置如下:
这里写图片描述
在server标签内添加内容如下:

  <Service name="imageService"><!--分配8089端口 -->      <Connector port="8089"              protocol="HTTP/1.1"             connectionTimeout="20000"              URIEncoding="GBK"             redirectPort="8443" />    <!--name 与 servicename 一致,defaultHost 为当前服务器的ip-->       <Engine name="imageService" defaultHost="192.168.140.6">    <!--name为项目访问地址 其他固定配置-->        <Host name="192.168.140.6" appBase="webapps"      unpackWARs="true" autoDeploy="true"       xmlValidation="false" xmlNamespaceAware="false">    <!--资源地址-->    <!--docBase 是图片的基础路径如果是Windows下的E://khnskd//fsjb     打个比方 图片路径=/home/ftpuser/e_invoice_images/aa.png ,访问url= 192.168.140.6:8089/aa.png-->          <Context path="" docBase="/home/ftpuser/e_invoice_images" debug="0" reloadable="false"/>        </Host>      </Engine>    </Service>

3、开启防火墙中此tomcat的对应端口
这里写图片描述

4、重启防火墙服务
这里写图片描述
5、启动tomcat,并查看运行情况
bin/startup.sh | tail -f logs/catalina.out
这里写图片描述
这样表示 tomcat服务启动正常了。
6、测试
再做个测试:将随便一个图片放到录/home/ftpuser/e_invoice_images/2017/09/05/kobe.jpg
这里写图片描述
访问此图片URL

这里写图片描述

ok! 这样也说明成功了!另外这是内网的地址,可以将此内网地址做个外网的映射,这样大家都可以访问了。

搭建vsftpd

1、查看此服务器是否装了vsftpd
这里写图片描述
如果有这个就说明已经安装,否则进行安装

2、使用 yum install vsftpd -y 进行在线安装

3、建立用户及他的指定目录
useradd -d /home/ftpuser ftpuser //增加用户ftpuser, 指定他的目录 /home/ftpuser
passwd ftpuser //为ftpuser设置密码 ,如果忘记ftpuser用户的密码,也可以使用此命令重置密码
只要知道用户名就好了。
额外的扩展:
usermod -d /test test //更改用户test的主目录为/test

4、限制用户只能访问它指定的目录,不能访问其他路径,也就是这样的效果,看看哈哈这个文件夹的路径就能对比出来

其他用户ftp登录
这里写图片描述

ftpuser用户登录: 相当于/home/ftpuser 为根目录了。
这里写图片描述
修改配置文件
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
设置完成后,在重启下vsftpd
这里写图片描述
就这样,ftp这个用户就只能访问 /home/ftpuser 下的目录了

5、 将匿名登录的功能关闭
vim /etc/vsftpd/vsftpd.conf
这里写图片描述

6、关闭seLinux (原因:这个东西基本用不上,开启来可能会跟vsftpd有冲突,基本上运维人员都会关掉,这货跟很多系统服务都不兼容。)

查看seLinux状态
这里写图片描述

如果是enabled,则去关闭
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可

7、防火墙开启 ftp端口
因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
vim /etc/sysconfig/iptables

这里写图片描述

保存完,再进行重启防火墙生效
service iptables restart

8、开启vsftpd的PASV模式(被动模式)
默认情况下vsftpd是支持PASV模式访问的,可以不作修改。

8.1修改/etc/vsftpd/vsftpd.conf文件配置

pasv_enable=yes (Default: YES) 设置是否允许pasv模式
pasv_promiscuous=no (Default: NO) 是否屏蔽对pasv进行安全检查,(当有安全隧道时可禁用)
pasv_max_port=10240 (Default: 0 (use any port)) pasv使用的最大端口
pasv_min_port=20480 (Default: 0 (use any port)) pasv使用的最小端口

这里写图片描述

8.2给防火墙添加FTP访问转换支持模块
这里写图片描述

这里写图片描述
请一定注意两行内容的位置关系不要搞反了。如果将”ip_nat_ftp”放到前面是加载不到的。如果你的ftp服务是过路由或者防火墙(即内网映射方式一定需要此模块)。以上等同于在加载iptables之前运行modprobe命令加载”ip_nat_ftp”和”ip_conntrack_ftp”模块。

8.3 给防火墙添加访问规则允许
这里写图片描述
等于开通10240~20480的端口

8.4重启防火墙服务 service iptables restart

8.5 检查模块是否加载成功
这里写图片描述
以上信息表明模块加载成功,可以在其他机器上使用FTP客户端进行访问了。

9、设置开机启动vsftpd

chkconfig vsftpd on

10、测试vsftpd是否正常
使用Xftp工具进行连接
这里写图片描述
这里写图片描述

ok 这样就说明成功。

参考博客地址:
http://www.cnblogs.com/kuliuheng/p/3209744.html

原创粉丝点击