dns,lamp,文件共享服务为基础的三个示例

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

一、建立samba共享,共享目录为/data,要求: 
1)共享名为shared,工作组为MYDATA,可以被浏览; 
2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 
3)添加samba用户gentoo,centos和ubuntu,密码均为 “samba”; 
4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问; 
5)此samba共享服务仅允许来自于192.168.1.0/24网络的主机访问;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 说明,以下所有的配置都是在同一它机器中完成的,CentOS6.5系统
# 一、安装软件
  yum  install  samba -y 
 
# 二、准备用户
  groupadd develop
  useradd  -G develop gentoo
  useradd  -G develop centos
  useradd  ubuntu
  echo  "gentoo"  passwd  gentoo --stdin
  echo  "centos"  passwd  centos --stdin
  echo  "ubuntu"  passwd  ubuntu --stdin
  echo  -e  "samba\nsamba"  | smbpasswd  -a gentoo -s 
  echo  -e  "samba\nsamba"  | smbpasswd  -a centos -s 
  echo  -e  "samba\nsamba"  | smbpasswd  -a ubuntu -s 
  setfacl -m g:develop:rwx  /data/
  # 三、samba服务器配置,主要参数如下:
# 配置文件时 /etc/samba/smb.conf
[global]
     workgroup = MYDATA
     server string = Samba Server Version % v
     log  file  /var/log/samba/log .%m
     max log size = 50
     idmap config * : backend = tdb
     hosts allow = 192.168.1.
     cups options = raw 
 
[homes]
     comment = Home Directories
     read  only = No
     browseable = No 
 
[printers]
     comment = All Printers
     path =  /var/spool/samba
     printable = Yes
     print ok = Yes
     browseable = No 
 
[shared]
     comment = Public Share
     path =  /data
     read  only = No
     guest ok = Yes
# 四、启动服务
/etc/init .d /nmb  start; /etc/init .d /smb  start
1
2
# 五、测试结果
# 可以使用 smbclient -L 192.168.1.77 -U centos 来查看共享的文件
1
# ubutu 没有权限建立文件夹(windoes为测试客户端)

wKioL1PwhODzTEh1AAEP6XvSCMQ264.jpg

1
# centos 具有权限创建目录

wKiom1PwkKCTY9xKAAGvHnr5Mz4260.jpg

二、架设FTP服务器,要求: 
1)可以让匿名用户访问; 
2)通过基于mysql的虚拟用户为ftp1和ftp2提供文件共享服务;且ftp1可以上传文件、创建目录、删除文件和下载文件,但ftp2只能下载文件; 
3)FTP服务仅允许192.168.1.0/24中的主机访问; 
4)开启ftp服务的传输日志,日志文件为/var/log/vsftpd.log;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 说明,以下所有的配置都是在同一它机器中完成的,CentOS6.5系统
# 一、安装所需的软件
# 注意:pam_mysql 是epel源提供的,也可自己源码编译安装
  yum  install  vsftpd mysql mysql-server pam_mysql -y
 
# 二、创建虚拟用户所用的数据库和表
mysql> CREATE DATABASE vsftpd;
mysql> USE vsftpd;
Database changed
mysql> CREATE TABLE ftpuser (
     ->  id  TINYINT PRIMARY KEY AUTO_INCREMENT,
     -> user VARCHAR(30) BINARY NOT NULL, 
     -> password CHAR(48) BINARY NOT NULL
     -> );
mysql> GRANT SELECT ON vsftpd.* TO  ftp @ 'localhost'  IDENTIFIED BY  'ftp' ;
mysql> INSERT INTO ftpuser(user,password) VALUES( 'ftp1' ,PASSWORD( 'ftp1' ));
mysql> INSERT INTO ftpuser(user,password) VALUES( 'ftp2' ,PASSWORD( 'ftp2' ));
 
# 三、创建虚拟用户对应的系统用户和家目录
  useradd  -s  /sbin/nologin  -d  /var/ftproot/  vuser
  chmod  og+x  /var/ftproot/
 
# 四、编辑配置文件
# cat /etc/vsftpd/vsftpd.conf | grep "^[^#]"
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file= /var/log/vsftpd .conf
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd-mysql
guest_enable=YES
guest_username=vuser
user_config_dir= /etc/vsftpd/vuser
userlist_enable=YES
tcp_wrappers=YES
 
# 五、创建用户认证文件、虚拟用户权限限制文件
# 用户认证文件参数可参照 /usr/share/doc/pam_mysql-0.7/README
#创建 /etc/pam.d/vsftpd-mysql 文件,文件内容如下:
auth required  /lib/security/pam_mysql .so user= ftp  passwd = ftp  host=localhost db=vsftpd table=ftpuser usercolumn=user passwdcolumn=password crypt=2
account  required  /lib/security/pam_mysql .so user= ftp  passwd = ftp  host=localhost db=vsftpd table=ftpuser usercolumn=user passwdcolumn=password crypt=2
 
 
mkdir  /etc/vsftpd/vuser
touch  /etc/vsftpd/vuser/ftp1  /etc/vsftpd/vuser/ftp2
# cat /etc/vsftpd/vuser/ftp1 
anon_mkdir_write_enable=YES
anon_upload_enable=YES
# cat /etc/vsftpd/vuser/ftp2
anon_mkdir_write_enable=NO
anon_upload_enable=NO
 
# 六、添加防火墙规则
  iptables -t filter -A INPUT -s 192.168.1.0 /24   -p tcp --dport 21 -j ACCEPT
  iptables -t filter -A INPUT  -p tcp --dport 21 -j DROP 
  iptables -t filter -A OUTPUT -s 192.168.1.77  -p tcp --sport 21 -j ACCEPT
  
# 七、测试结果
# ftp1用户允许上传

wKiom1PwkG7zX1fWAAG74EZNnWw529.jpg

1
  # ftp2 不允许上传

wKioL1PwhaLRvXOsAAEuJmdJAnY229.jpg


三、两台web服务器,共享关系型数据库,共享NFS服务器,利用DNS记录轮询提供负载均衡,实现wordpress;

试验拓扑图如下:

21

在192.168.1.77:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
一、配置DNS服务
  yum  install  bind -y   # 安装软件
 
# cat /etc/named.conf 配置文件 
 
options {
     directory      "/var/named" ;
 
}; 
 
logging {
         channel default_debug {
                 file  "data/named.run" ;
                 severity dynamic;
         };
}; 
 
zone  "."  IN {
     type  hint;
     file  "named.ca" ;
}; 
 
include  "/etc/named.rfc1912.zones" ;
 
# 在 "/etc/named.rfc1912.zones"添加:
 
zone  "wordpress.org"  IN {
     type  master;
     file  "wordpress.org.zone" ;
};
 
# 创建对应的库解析文件
touch  wordpress.org.zone
chown  .named wordpress.org.zone 
 
# cat /var/named/wordpress.org.zone 
$TTL 3600
@    IN    SOA    ns.wordpress.org.    admin.wordpress.org. (
     20140616
     2H
     5M
     1H
     1D
)
@    IN    NS    ns
ns    IN    A    192.168.1.77
www    IN    A    192.168.1.66
www    IN    A    192.168.1.99
 
###################################################
/etc/init .d /named  start  # 启动服务
 
##################### 测试结果如下:

wKioL1Pwkg_zEtVdAAE7ZpL3vrY271.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
二、配置nfs服务: 
 
  yum  install  nfs-utils -y  # 安装软件 
  mkdir  /wpdata   # 创建共享目录
# cat /etc/exports 
/wpdata  192.168.1.0 /24 (rw,no_root_squash) 
 
setfacl -m u:48:rwx  /wpdata/  # (id 48是apache用户的id号)
/etc/init .d /nfs  start    # 启动服务 
 
三、配置数据库: 
 
yum  install  mysql mysql-server -y  # 安装软件# 创建 wordpress 工作用到的账户和数据库mysql> 
mysql> CREATE DATABASE wp;
mysql> GRANT ALL ON wp.* TO wordpress@ '192.168.1.%'  IDENTIFIED BY  'wordpress' ;
mysql> FLUSH PRIVILEGES;

在192.168.1.66: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 一、安装软件
yum  install  php httpd php-mysql -y 
 
# 二、编辑配置文件,添加以下内容
# 配置文件 /etc/httpd/conf/httpd.conf 
 
#DocumentRoot "/var/www/html"
NameVirtualHost *:80
<VirtualHost *:80>
     ServerAdmin webmaster@wordpress.org
     DocumentRoot  /web/vhosts/wordpress
     ServerName www.wordpress.org
     ErrorLog logs /wordpress .org-error_log
     CustomLog logs /wordpress .org-access_log common
< /VirtualHost >
 
# 三、创建虚拟主机站点并挂载数据目录、做好安装wordpress前的准备
  mkdir  /web/vhosts/wordpress  -p
  mount  -t nfs 192.168.1.77: /wpdata  /web/vhosts/wordpress/  -o rsize=4096,wsize=4096
  unzip  /root/wordpress-3 .3.1-zh_CN.zip -d  /web/vhosts/wordpress/
  chown  apache.apache  /web/vhosts/wordpress/wordpress/  -R 
  cp  /web/vhosts/wordpress/wordpress/wp-config-sample .php  /web/vhosts/wordpress/wordpress/wp-config .ph
 
# 修改配置文件 /web/vhosts/wordpress/wordpress/wp-config.php 以下内容,与数据库对应
define( 'DB_NAME' 'wp' ); 
define( 'DB_USER' 'wordpress' ); 
define( 'DB_PASSWORD' 'wordpress' ); 
define( 'DB_HOST' '192.168.1.77' );
 
# 四、安装wordpress:
/etc/init .d /httpd  start  #启动服务
# 在安装的客户端,提供解析主机名的配置

13

1
2
3
4
# 安装完成后,记得的192.168.1.77上将root的权限去掉
# cat /etc/exports 
/wpdata  192.168.1.0 /24 (rw)
  exportfs -ar     # 重新导出

在192.168.1.99:

1
2
3
4
5
6
# 这里配置比较简单,只需要以下几个步骤
yum  install  php httpd php-mysql -y 
scp  192.168.1.66: /etc/httpd/conf/httpd .conf  /etc/httpd/conf/httpd .conf
mkdir  /web/vhosts/wordpress  -p
mount  -t nfs 192.168.1.77: /wpdata  /web/vhosts/wordpress/  -o rsize=4096,wsize=4096
/etc/init .d /httpd  start

完成这些后,开始测试:

# 在192.168.1.99服务器上上传文章

15

# 在192.168.1.66 服务器上上查看:

16

测试成功后,使用我们自己的DNS服务器,来实现简单的DNS轮询的负载均衡。

# 访问客户端是windows主机,将dns服务器的指向我们配置好的地址

17

# 测试,可以正常访问

22


    over.











本文转自 羊木狼 51CTO博客,原文链接:http://blog.51cto.com/guoting/1541310,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
74 2
|
2月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
89 3
|
2月前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
480 2
|
2月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
470 0
|
2月前
|
自然语言处理 数据处理 Python
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
467 60
|
1月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
41 3
|
1月前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
1月前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
1月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
2月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多