文章目录
前言
什么是前端?
前端,也称为“客户端开发”,简单来说,你可以在应用程序或网站的屏幕上看到的所有内容都属于前端。
网站和移动应用的前端
让我们考虑一个现实的例子:你正在访问的网站。内容设计、图像、段落和线条之间的间距,左上角的公司徽标,以及右下角的小通知按钮——所有这一切都是前端。
移动应用的前端与网站相同。例如,你在移动或 Web 应用中看到的内容,按钮、图像是前端的一部分。此外移动屏幕还具有触摸响应功能,因此当应用响应你所做的所有手势时,需要进行缩放放大/缩小、双击、滑动等操作。
什么是后端?
后端,也称为“服务器端开发”,也就是在系统“后面”所发生的事情。同样,在后端服务器和浏览器或应用程序之间存储网站、应用数据和中间媒介的服务器都属于后端。简单来说,在应用程序或网站的屏幕上看不到的所有东西都是前端的后端。
网站和移动应用后端
网站的后端需要设置服务器,存储和检索数据,以及将这些服务器与前端进行连接的接口。如果说前端开发人员梗关注网站的外观,后端开发人员则更更关注网站的速度、性能和响应能力,后端通过编码、云 API 和数据库进行集成。
就像前端一样,移动应用的后端开发在各个方面都与网站后端相同。此外,你为移动应用设置后端服务器的选项包括:云计算(AWS,Firebase)定制服务器或 MBaaS(移动后端即服务)。
什么是全栈?
有些人可以同时掌握前端和后端开发技能。这样的开发被称为全栈开发人员。
学习或雇用全栈开发者有其自身的优点和缺点。可以把开发人员数量减少到一半,但专业水平也随之降低了。专门从事前端或后端开发的开发人员一般比了解两者的人对于单一学科更加专业。
还有各种类似于全栈的技术栈,如 MEAN 技术栈,LAMP 技术栈,.NET 技术栈,Python-Django 技术栈,ROR 技术栈开发人员可以成为任何这些技术堆栈的专家。
本篇文章将会教你如何搭建简易的类似于前后端存储
实验准备(以下实验都在VMware中进行)
1、一台Windows Server 2016主机(已联网)
2、一台rhel7.4主机(已经联网)
3、rhel7.4 先挂载好光盘镜像,添加一个10G的硬盘
一、Linux主机上
1、配置yum软件仓库
这一步可以看我之前发的有一篇文章关于配置yum软件仓的
RedHat7.4配置Yum软件仓
2、安装 iSCSI服务端程序
[root@localhost ~]# yum install targetd targetcli -y
重新启动并加入开机自启
[root@localhost ~]# systemctl restart targetd
[root@localhost ~]# systemctl enable targetd
Created symlink from /etc/systemd/system/multi-user.target.wants/targetd.service to /usr/lib/systemd/system/targetd.service.
3、配置 iSCSI服务端共享资源
[root@localhost ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/>
查看
/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 0]
| o- fileio ................................................................................................. [Storage Objects: 0]
| o- pscsi .................................................................................................. [Storage Objects: 0]
| o- ramdisk ................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................ [Targets: 0]
o- loopback ......................................................................................................... [Targets: 0]
/>
切换“目录”
/> cd backstores/block
/backstores/block>
创建名为 disk0的设备
/backstores/block> create disk0 /dev/sdb
Created block storage object disk0 using /dev/sdb.
切换至“根”目录
再次查看详细信息,会多出一个10G的磁盘,加粗斜体部分
/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 1]
| | o- disk0 ......................................................................... [/dev/sdb (10.0GiB) write-thru deactivated]
| | o- alua ................................................................................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
| o- fileio ................................................................................................. [Storage Objects: 0]
| o- pscsi .................................................................................................. [Storage Objects: 0]
| o- ramdisk ................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................ [Targets: 0]
o- loopback ......................................................................................................... [Targets: 0]
/>
4、创建 iSCSI target名称及配置共享资源
/> cd iscsi
/iscsi> create ---这里是自动生成
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi>
查看详细信息
/iscsi> ls
o- iscsi .............................................................................................................. [Targets: 1]
o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5 ......................................................... [TPGs: 1]
o- tpg1 ................................................................................................. [no-gen-acls, no-auth]
o- acls ............................................................................................................ [ACLs: 0]
o- luns ............................................................................................................ [LUNs: 0]
o- portals ...................................................................................................... [Portals: 1]
o- 0.0.0.0:3260 ....................................................................................................... [OK]
/iscsi>
5、设置访问控制列表(ACL)
/iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5/tpg1/acls
/iscsi/iqn.20...5e5/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5xxx ---直接复制上面的iqn,然后在后面加几个字母(我加的xxx)
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5xxx
/iscsi/iqn.20...5e5/tpg1/acls>
6、为每个存储创建一个 lun
/> cd iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5/tpg1/luns
/iscsi/iqn.20...5e5/tpg1/luns> create /backstores/block/disk0
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5xxx
/iscsi/iqn.20...5e5/tpg1/luns>
7、设置 iSCSI服务端的监听 IP地址和端口号
位于生产环境中的服务器上可能有多块网卡,就需要我们在配置文件中手动定义 iSCSI服务端的信息。
即在 portals参数目录中写上服务器的 IP地址,也可以直接写 0.0.0.0,系统将自动开启服务器的 3260端口将向外提供iSCSI共享存储资源服务。
然后返回“根”目录后执行 ls命令查看检查。在确认信息无误后输入需要输入 exit命令来退出配置。
/> cd iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5/tpg1/portals/
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ............................................................................................................ [Portals: 1]
o- 0.0.0.0:3260 ............................................................................................................. [OK]
/iscsi/iqn.20.../tpg1/portals>
系统这里默认就是0.0.0.0 所以不用管它
8、检验
/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 1]
| | o- disk0 ........................................................................... [/dev/sdb (10.0GiB) write-thru activated]
| | o- alua ................................................................................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
| o- fileio ................................................................................................. [Storage Objects: 0]
| o- pscsi .................................................................................................. [Storage Objects: 0]
| o- ramdisk ................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................ [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5 ....................................................... [TPGs: 1]
| o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
| o- acls .......................................................................................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.2ae48bfd25e5xxx ....................................... [Mapped LUNs: 1]
| | o- mapped_lun0 ................................................................................. [lun0 block/disk0 (rw)]
| o- luns .......................................................................................................... [LUNs: 1]
| | o- lun0 ...................................................................... [block/disk0 (/dev/sdb) (default_tg_pt_gp)]
| o- portals .................................................................................................... [Portals: 1]
| o- 0.0.0.0:3260 ..................................................................................................... [OK]
o- loopback ......................................................................................................... [Targets: 0]
/>
退出
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
[root@localhost ~]#
9、重启iscsi服务,并放行防火墙
重启
[root@localhost ~]# systemctl restart targetd
放行防火墙,设置永久生效
[root@localhost ~]# firewall-cmd --add-port=3260/tcp
success
[root@localhost ~]# firewall-cmd --add-port=3260/tcp --permanent
success
二、Windows Server 2016服务端
1、连接Linux的ISCSI共享磁盘
打开ISCSI发起程序
修改成Linux的iqn
复制我箭头所指的iqn到WinServer客户端
发现Linux
这里输入Linux的IP地址
连接Linux
2、初始化磁盘
系统已经多出了一个20G的共享磁盘
磁盘联机
初始化磁盘
新建一个简单卷
全都点击下一步
查看
2、安装FTP
还是回到我们的服务管理器
添加角色和功能
选择web服务器
勾选FTP服务器
去掉 常见HTTP功能
安装完成关闭
3、创建FTP站点
第一个就是我们的FTP服务器
添加站点
站点名称随便取
在我们新建的共享磁盘下新建一个目录
用来存放服务程序
选择本机的IP地址
(SSL是指泛域名证书,这里不用管,如果感兴趣的话,后面会出一个免费签阿里云泛域名证书的教程)
我们这里做测试,
身份验证和权限随便给(当然生成环境肯定不能这么做)
查看
4、放行防火墙
新建规则
添加 “C:\Windows\System32\svchost.exe”这个程序
三、实验效果
用自己的物理机(笔记本电脑)访问FTP网址
我这里放了一个Python的代码来测试一下
以上就是一个简单的前端、后端存储环境