第一次搭建文件服务器的坑


1,Nginx

  第一次接触Nginx是准备搭建一个专门用来存储文件的服务器。
  这里没有细节,因为细节有很多可以百度到,我只讲问题和其解决之道。
 问题:
  端口问题
  当你开启了nginx服务器时无法本地访问,这很可能是端口没有打开,被防火墙拦截
  linux的iptables配置中默认只有一个22端口,而nginx默认访问端口是80,所以需要为它开启一个端口

# iptables 配置可接收端口号
1 -A INPUT -m state --state NEW -m tcp --dport 22 -j ACCEPT 2 -A INPUT -m state --state NEW -m tcp --dport 80 -j ACCEPT

  路径问题
  当你想通过http协议来访问你nginx服务器中的文件时,这路径是如何定义的呢?
  有点类似路径拦截器,拿着对应的url去对应的路径中寻找文件。

 1 # 虚拟服务器
 2  2 server
 3  3 {
 4  4     listen 80;
 5  5     server_name localhost;
 6  6 
 7  7     location ~* \.(gif|jpg|jpeg|png|bmp)$ {
 8  8         root  /home/nginx/images
 9  9     }
10 10 }
nginx.conf配置

  权限问题

  403错误!权限不够,发生在你请求的目录或文件是一个超越当前权限的路径。
  linux中权限是非常敏感的,你访问文件都需要对应权限及以上权限才可以访问,这时就可以在nginx的配置文件中配置用户。

1 # 配置权限    user 用户  组;
2 user nginx nginx;
nginx.conf配置

 

2,VSFTPD

   vsftpd是一个ftp服务器 ,ftp协议。

 问题:

  端口问题

  vsftpd默认接收(input)端口为21,输出(output)端口为20。除此之外,它还有一个访问模式问题:port主动模式(服务器根据访问过来的客户端端口号主动返回),passive被动模式(服务器告诉你一个端口号,客户端自己连接过来)。详细模式原理还是百度吧。了解一点话应该明白,如果是被动模式下,肯定又需要多监听一组端口,这里就需要额外设置。

1 # 指定被动模式可接收的端口范围,可自行定义
2 pasv_min_port=30000
3 pasv_max_port=30999
vsftpd.conf配置
1 -A INPUT -m state --state NEW -m tcp --dport 22 -j ACCEPT
2 -A INPUT -m state --state NEW -m tcp --dport 21 -j ACCEPT
3 -A INPUT -m state --state NEW -m tcp --dport 30000:30999 -j ACCEPT
vsftpd.conf配置

  selinux

  理论正常的情况下我们应该可以连接上的时候却无法连接,不能返回默认目录路径等。这是因为linux的一个自身的安全设置限定了。

  可以利用linux的getsebool -a | grep ftp命令来查看。

 1 # 将其中的ftp_home_dir和allow_ftpd_full_access打开
 2 
 3 [root@bogon ~]# getsebool -a | grep ftp  
 4 allow_ftpd_anon_write --> off
 5 allow_ftpd_full_access --> off
 6 allow_ftpd_use_cifs --> off
 7 allow_ftpd_use_nfs --> off
 8 ftp_home_dir --> off
 9 ftpd_connect_db --> off
10 ftpd_use_passive_mode --> off
11 httpd_enable_ftp_server --> off
12 tftp_anon_write --> off
13 [root@bogon ~]# setsebool -P ftp_home_dir 1
14 [root@bogon ~]# setsebool -P allow_ftpd_full_access 1
linux终端指令

 

3,FTPClient(待解决的问题)

  客户端用java代码实现时,调用FTPClient.storeFile(filename , input)方法上传文件,总会出现这样一个错误:Software caused connection abort: recv failed

  经过一番折腾,发现关闭了客户端防火墙就没事,开着防火墙就会报这个错误。究竟是为什么,一直没能整明白。

 

---------------------------------分割--------------------------------------

 

发现问题到解决问题,这种快感不言而喻。

一名自学中的小菜鸟,还没参加工作,但我希望自己能有个好的开始,从偶尔码码博文开始。

努力,奋斗!—喜剧之王


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM