一.大纲内容
1.1· Web服务器介绍(apache/nginx/tomcat)
1.2· Nginx基本使用
获取Nginx
Nginx的官方主页: http://nginx.net
其中最新版本为Nginx的开发版本,之前的版本为当前稳定版本。例如最新版本为0.8.X,则当前稳定版本为0.7.X。
http://nginx.org/en/docs/
http://wiki.nginx.org
Nginx安装:
方式1.
yum安装
方式2.
源码安装
1. 停止原有web服务器(清除原有yum安装的Nginx服务)
2. # yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel
. 添加普通用户账号来运行nginx:
# useradd nginx
. 解压并安装Nginx:
# tar xvzf nginx-0.8.55.tar.gz -C /usr/local (一般安装到/usr/local安装)
# cd /usr/local/nginx-0.8.55
#./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
# make
# make install
. 启动:
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
查看命令帮助:
# /usr/local/nginx/sbin/nginx -h
-v 查看nginx版本
[root@localhost yum.repos.d]# nginx -v
nginx version: nginx/1.12.2
-V 查看编译参数
-t 测试默认配置文件
[root@localhost yum.repos.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
-c 加载非默认位置配置文件
查看启动状态:
# ps aux | grep nginx
root 8416 0.0 0.1 5760 660 ? Ss 23:29 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx 8417 0.0 0.1 5904 992 ? S 23:29 0:00 nginx: worker process
# netstat -ntlp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8416/nginx.conf
测试主页是否可以访问:
# links 127.0.0.1 //如果显示Welcome to nginx! 则说明服务正常
1.3· Yum方式部署lnmp环境
L = Linux ; N = Nginx ; M = Mysql/Mariadb ; P = Php
一、基础环境[已完成]
[root@apache ~]# setenforce 0
[root@apache ~]# systemctl stop firewalld.service
[root@apache ~]# systemctl disable firewalld.service
[root@apache ~]# yum -y install epel-release
二、安装LAMP[已完成]
[root@apache ~]# yum -y install nginx mariadb-server mariadb php php-mysql gd php-gd
[root@apache ~]# systemctl start nginx mariadb
[root@apache ~]# systemctl enable nginx mariadb
1.4· 构建NFS远程共享存储
因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样我们就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。
那RPC和NFS之间又是如何之间相互通讯的?
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开机111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
NFS 重要指数4星
项目名称: 为集群中的 Web Server 配置后端存储
NFS:Network File System 网络文件系统,Unix系统之间共享文件的一种协议
NFS 的客户端主要为Linux
支持多节点同时挂载以及并发写入
nfs 192.168.62.142
web1 192.168.62.136
centos7(服务端和客户端都关闭防火墙和selinux内核防火墙)
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vim /etc/hosts [可选](服务端和客户端都操作)
192.168.62.142 nfs //服务器
192.168.62.136 web1 //客户端
NFS(此步为说明)
1.安装软件
yum -y install rpcbind(提供rpc协议)
yum -y install nfs-utils(主包提供文件系统)
2.启动服务------>这两个服务必须同时启用
systemctl start nfs
systemctl start rpcbind
一、nfs(存储端/服务端)
[root@nas ~]# yum -y install rpcbind
[root@nas ~]# yum -y install nfs-utils
[root@nas ~]# mkdir /zhengzhou //存储网站代码
[root@nas ~]# echo "nfs test..." > /zhengzhou/index.html
[root@nas ~]# vim /etc/exports
/zhengzhou 192.168.122.0/24(rw,no_root_squash) //不限制root(当client端使用root挂载时,也有root权限) 挂载是root ,同样保持root权限
注意:如果再次修改配置文件。记得重新启动(重新加载)服务
[root@nas ~]# systemctl restart nfs-server
[root@nas ~]# systemctl enable nfs-server
二、web1 客户端
以web1为例:
[root@web1 ~]# yum -y install rpcbind
[root@web1 ~]# yum -y install nfs-utils
手动挂载 [可选]
[root@web1 ~]# mkdir /qf
[root@web1 ~]# mount -t nfs 192.168.122.59 :/zhengzhou /qf 服务器IP地址
[root@web1 ~]# umount /qf
自动挂载到网站主目录
[root@web1 ~]# vim /etc/fstab
192.168.122.59 :/zhengzhou /qf nfs defaults 0 0
[root@web1 ~]# mount -a
查看挂载
[root@web1 ~]# df -Th
192.168.122.59:/zhengzhou 7923136 692416 6821568 10% /qf
[root@web1 ~]# ls /qf
index.html
[root@web1 qf]# cat index.html
nfs test...
1.5.ftp及lftp服务
FTP Server 重要指数4星
作用:提供文件共享服务
一、FTP基础
软件包: vsftpd
FTP端口: 控制端口 command 21/tcp hih
配置文件: /etc/vsftpd/vsftpd.conf
ftp主动模式:
ftp主动模式:客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
ftp被动模式:
ftp被动模式:客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据
默认使用被动模式
二、vsftpd默认配置
FTP Server(服务端)
[root@youngfit ~]# yum -y install vsftpd //下载ftp服务
[root@youngfit ~]# systemctl start vsftpd //启动ftp服务
centos7
[root@iZwz9f17um10wphrf38ni8Z ~]# touch /var/ftp/test.txt
[root@iZwz9f17um10wphrf38ni8Z ~]#chmod 777 /var/ftp/pub
[root@iZwz9f17um10wphrf38ni8Z ~]# systemctl enable vsftpd //将ftp服务设置为开机启动
默认firewalld/SELinux已关闭,如果未关闭:
[root@aliyun ~]# systemctl stop firewalld
[root@aliyun ~]# setenforce 0
FTP默认共享目录:/var/ftp
FTP Clinet(客户端):
lftp命令
[root@youngfit ~]# yum -y install lftp
[root@youngfit ~]# vim /etc/hosts
10.18.40.100 youngfit.com
get命令(下载,首先要开启下载功能)
[root@youngfit ~]# lftp youngfit.com
lftp youngfit.com:~> ls
drwxr-xr-x 2 0 0 4096 Mar 31 2016 pub
-rw-r--r-- 1 0 0 0 Nov 22 03:53 test.txt
lftp youngfit.com:/> get test.txt //从服务端上下载test.txt文件
put命令(上传命令,上传之前请在服务端进行配置,将上传功能打开)
[root@youngfit ~]# lftp 10.18.40.100
lftp 10.18.40.100:/pub> put /home/upload.txt //上传文件
[root@youngfit ~]# lftp 10.18.40.100
lftp 10.18.40.100:/pub> put -r /home //上传目录及下面的子目录
wget(下载命令,下载之前请在服务端进行配置,将下载功能打开)
服务端:
[root@ftp ftp]# ls /var/ftp/
pub test test.txt
客户端:
[root@youngfit ~]# wget --help |less
[root@youngfit ~]# wget ftp://10.18.40.100/test.txt
[root@youngfit ~]# wget ftp://10.18.40.100/test.txt -P /tmp/ //-P参数 下载到指定路径
[root@youngfit ~]# wget ftp://10.18.40.100/test.txt -O /tmp/a.sh //-O 参数,下载到指定路径并修改名称
[root@youngfit ~]# wget -m ftp://youngfit.com/test //-m 参数,将目录一并下载
[root@youngfit ~]# lftp alice@youngfit.com //默认看到的是alice家目录下的内容
Password:
lftp alice@youngfit.com:~> ls
-rw-r--r-- 1 0 0 1523 Nov 22 04:25 alice.txt
lftp alice@youngfit.com:~> pwd
ftp://alice@youngfit.com/%2Fhome/alice
lftp alice@youngfit.com:~> put /etc/hosts
默认使用匿名用户 ftp访问,HOME(家目录)为/var/ftp,默认仅能下载文件
系统用户: alice,HOME /home/alice,默认可下载及上传
三、基本配置,例如实现访问控制
注意: 指令中的空格,指令错误,指令重复
!!!!!这些功能都是服务端控制,所以修改的是服务端的配置文件!
[root@youngfit ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //是否允许匿名用户登录ftp YES为允许 NO为拒绝
local_enable=YES //是否允许本地用户登录(比如alice)
write_enable=YES //是否允许写(全局)
local_umask=022 //控制本地用户上传文件的默认权限,umask表示要减掉的权限(666-)
anon_umask=022 //控制匿名用户上传文件的默认权限
download_enable=YES //是否允许下载文件
anon_upload_enable=YES //允许上传文件
anon_mkdir_write_enable=YES //允许上传目录
anon_max_rate=500000 //匿名用户限速
local_max_rate=80000 //本地用户限速
max_clients=500 //ftp最大连接数
max_per_ip=2 //单个IP最大连接数,线程数
服务器关闭被动模式:
#vim /etc/vsftpd/vsftpd.conf
pasv_enable=NO
配置测试(每次加入新配置,都需要重启ftp服务):
案例1:
local_enable=YES //是否允许本地用户登录(比如alice)
ftp服务端:
[root@ftp ~]# cd /home/kobe/
[root@ftp kobe]# ls
haha
ftp客户端:
[root@web1 ~]# lftp kobe@192.168.62.240
Password:
lftp kobe@192.168.62.240:~> ls
drwxr-xr-x 2 0 0 6 Jan 05 11:31 haha
案例2:
anon_upload_enable=YES //允许上传文件
anon_umask=022 //控制匿名用户上传文件的默认权限 (666-)
客户端:
[root@web1 ~]# lftp 192.168.62.240
lftp 192.168.62.240:~> ls
drwxrwxrwx 2 0 0 6 Jan 05 11:36 pub
drwxrwxrwx 2 0 0 24 Jan 05 11:24 test
-rw-r--r-- 1 0 0 0 Jan 05 11:01 test.txt
lftp 192.168.62.240:/> cd pub/
lftp 192.168.62.240:/pub> ls
lftp 192.168.62.240:/pub> put /home/upload.txt
9 bytes transferred
服务端:
[root@ftp pub]# pwd
/var/ftp/pub
[root@ftp pub]# ll
total 4
-rw-r--r--. 1 ftp ftp 9 Jan 5 19:36 upload.txt
案例3
max_per_ip=2 //单个IP最大连接数,线程数
同一个客户端,开三个终端去连接ftp服务
第三个会连接失败
案例4
anon_max_rate=5 //匿名用户限速
服务端:
[root@ftp pub]# dd </dev/zero >/var/ftp/pub/file1.txt bs=10M count=50
50+0 records in
50+0 records out
524288000 bytes (524 MB) copied, 5.0535 s, 104 MB/s
客户端:
注释掉限速配置之后
客户端:
案例: 使用FTP共享YUM源
Server(服务端10.18.40.100):
[root@yangs ~]# mkdir /var/ftp/centos7u3 //创建一个目录
[root@yangs ~]# mount /dev/cdrom /var/ftp/centos7u3 //挂载镜像
[root@yangs ~]# echo “mount /dev/cdrom /var/ftp/centos7u3” >> /etc/rc.d/rc.local //设置开机挂载
[root@yangs ~]# chmod +x /etc/rc.d/rc.local //给予脚本权限
Client(客户端):
[root@youngfit ~]# vim /etc/yum.repos.d/centos7.repo
[centos7u3]
name=centos7u3
baseurl=ftp://10.18.40.100/centos7u3
gpgcheck=0
enabled=1