首页 > 代码库 > Linux常用服务部署与优化
Linux常用服务部署与优化
3,1nfs部署和优化-1
NFS == network file system
假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. 但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。实现简单访问远程文件。
安装NFS
yum install -y nfs-utils
先创建一个简单的NFS服务器
vim /etc/exports
写下:
/mnt 192.168.137.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
共享目录 /mnt ,共享给137网段,rw可读可写,sync共享同步,限定所有使用者,并且限定的uid和gid都为501。(no_root_squash为root)(ls -l /opt )
:wq
启动NFS服务
/etc/init.d/rpcbind start
/etc/init.d/nfs start
客户端上挂载nfs
yum install -y nfs-utils
showmount -e 192.168.137.10 (服务端的ip),查看该ip共享的目录和网段或网址
在客户端上挂载服务端的nfs
mount -t nfs 192.168.137.10: /mnt /opt 挂载到/opt下
df -h 查看共享的目录
客户端上修改/opt的内容可能显示权限不够
在服务端上把/mnt 的权限修改为777
chmod 777 /mnt
3,2NFS部署和优化-2
/etc/init.d/nfs restart 重启nfs
exportfs -arv 重启nfs
umount /opt/ 卸载
mount -t nfs -o nolock nfsevers=3 192.168.137.10:/mnt /opt 优化挂载
3,3pureftp部署和优化-1
FTP ==file transfer protocol
可用于windows或者linux系统
服务器间上传或者下载文件
软件 pure-ftpd
下载 pure-ftpd
cd /usr/local/src/
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
安装pure-ftpd
tar jxf pure-ftpd-1.0.42.tar.bz2
cd pure-ftpd-1.0.42
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
make
make install
修改配置文件
mkdir -p /usr/local/pureftpd/etc/ 配置文件所在路径
cd configuration-file
cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
vim /usr/local/pureftpd/etc/pure-ftpd.conf
删除掉所有
添加
ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous no SyslogFacility ftp DontResolve yes MaxIdleTime 15 PureDB /usr/local/pureftpd/etc/pureftpd.pdb LimitRecursion 3136 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload no PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid MaxDiskUsage 99 CustomerProof yes
:wq
建立账号
mkdir /tmp/ftp
chown -R user3 /tmp/ftp 映射用户user3
/usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uuser3 -d /tmp/ftp/
打上密码
/usr/local/pureftpd/bin/pure-pw mkdb 创建用户信息数据库文件
/usr/local/pureftpd/bin/pure-pw list 列出当前账号
/usr/local/pureftpd/bin/pure-pw userdel ftp_user2 删除账号的命令
/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf 启动pure-ftpd
3,4 pureftp部署和优化-2
测试pure-ftpd
客户端
yum install -y lftp
lftp ftp_user1@127.0.0.1 账号密码登陆(服务端ip)
touch /tmp/ftp/123.txt
ls
get 12.txt 下载文件12.tet
服务端也可以上传文件
lftp ftp_user1@127.0.0.1 账号密码登陆(服务端ip)
put 12.txt 上传文件
命令 ftp127.0.0.1 登陆ftp,与lftp有点区别
windows下操作ftp:安装ftp软件
3,5vsftp部署和优化-1
vsftp是centos自带的ftp软件
安装vsftp
yum install -y vsftpd
启动 /etc/init.d/vsftpd start
(若启动失败,有可能21端口被占用了
netstat -lnp 查看端口
若发现21端口被其他进程占用,停用该进程
killall pure-ftpd)
客户端登陆
lftp user1@127.0.0.1
可以cd到任何目录,没有限制,非常危险
vim /etc/vsftpd/vsftpd.conf 进入到配置文件
把chroot_local_user=yes 前的#删掉
/etc/init.d/vsftpd restart
lftp user1@127.0.0.1
cd /etc
进入不了,被限制了
pwd
ls
只能访问当前目录
3,6 vsftp部署和优化-2
创建虚拟用户
useradd virftp -s /sbin/nologin
vim /etc/vsftpd/vsftpd_login
test1 (账号)
111222aaa(密码)
test2(账号)
aaa111ddd(密码)
:wq
chmod 600 /etc/vsftpd/vsftpd_login
创建二进制的库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建虚拟账号
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
vim test1
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
:wq
建立配置文件中提及的test1的家目录
mkdir /home/virftp/test1
chown -R virftp:virftp /home/virftp/test1
修改验证文件
vim /etc/pam.d/vsftpd
在最开头添加两行
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
:wq
修改vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=vsftpd
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to FTP service.
listen=YES
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES
在最后行添加
tcp_wrappers=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
:wq
启动vsftpd服务
/etc/init.d/vsftpd start
lftp test1@127.0.0.1
外部浏览器登陆
ftp://127.0.0.1
3,7 samba 部署和优化-1
samba 网络管理员使用的比较多
linux共享 windows访问
安装samba
yum install -y samba samba-client
vim /etc/samba/smb.conf 配置文件
3,8 samba 部署和优化-2
关于samba的实践
1.共享一个只读的目录,任何人都访问,不需要输入用户名和密码
vim /etc/samba/smb.conf
security = share
workgroup =WORKGROUP
在最后增加一段
[aming] comment = share all path = /tmp/sambadir browseable = yes public = yes writable = no
:wq
/etc/init.d/smb start 开启
mkdir /tmp/sambadir 创建目录
cp /etc/passwd /tmp/sambadir/1.txt
mkdir /tmp/sambadir/test chmod 777 /tmp/sambadir/test
windows下访问samba共享的文件和路径
打开运行
输入\\192.168.11.160
打开看到共享的test路径和etc/passwd的内容,而且test内不可写
linux下访问samba
smbclient //192.168.11.160/aming
enter
ls
另一种方式 挂载
yum install -y cifs-utils
mount -t cifs //192.168.11.160/aming /opt/
df-h
cd /opt/
ls
3,9 samba 部署和优化-3
实践2:共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写
vim /etc/samba/smb.conf
把刚才在最后添加的[aming]整段删掉
security = user
再最后添加一段
[aminglinux] comment = share for users path = /tmp/sambadir browseable = yes writable = yes public = no
:wq
创建用户和密码
useradd smbuser1 创建用户
pdbedit -a smbuser1 增加用户
/etc/init.d/smb restart
linux下测试
smbclient //192.168.11.160/aminglinux/ -U smbuser1
ls
windows下测试
打开运行
\\192.168.11.160\aminglinux
账号smbuser1
挂载方式
mount -t cifs -o username=smbuser1,password=密码 //192.168.11.160/aminglinux /opt/
df -h
ls
4,0 squid服务介绍
squid 代理,翻墙
cdn 缓存,提速
Squid是比较知名的代理软件,它不仅可以跑在linux上还可以跑在windows以及Unix上,它的技术已经非常成熟。目前使用Squid的用户也是十分广泛的。Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。
Squid之所以用的很多,是因为它的缓存功能,Squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O. 从经济角度考虑,它是很多网站架构中不可或缺的角色。
Squid不仅可以做正向代理,又可以做反向代理。当作为正向代理时,Squid后面是客户端,客户端想上网不管什么网都得经过Squid. 当一个用户(客户端)想要请求一个主页时,它向Squid发出一个申请,要Squid替它请求,然后Squid 连接用户要请求的网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户请求同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。使用正向代理时,客户端需要做一些设置,才能实现,也就是平时我们在IE选项中设置的那个代理。而反向代理是,Squid后面为某个站点的服务器,客户端请求该站点时,会先把请求发送到Squid上,然后Squid去处理用户的请求动作。阿铭教你一个特别容易的区分:正向代理,Squid后面是客户端,客户端上网要通过Squid去上;反向代理,Squid后面是服务器,服务器返回给用户数据需要走Squid.
也许你会问,什么时候需要配置正向代理,又什么时候配置反向代理呢?阿铭的观点是,正向代理用在企业的办公环境中,员工上网需要通过Squid代理来上网,这样可以节省网络带宽资源。而反向代理用来搭建网站静态项(图片、html、流媒体、js、css等)的缓存服务器,它用于网站架构中。
4,1 squid正向代理
安装
yum install -y squid
vim /etc/squid/squid.conf
把cache_dir前的#删掉,缓存目录
在 cache_dir的下一行添加
cache_men 28MB
在refresh_pattern下一行添加
refresh_pattern \.(jpg|png|gif|mp3|mp4|js) 1440 20% 2880 ignore-reload
下一行再添加
visible_hostname aminglinux.com
:wq
/etc/init.d/squid start 启动
netstat -lnp 查看squid监听的端口3128
curl测试
curl -x127.0.0.1:3128 www.baidu.com -I (大写i)
浏览器测试
工具--internet选项--连接--局域网设置--高级
192.168.11.160 3128
可以访问网页
设置访问限制
在acl最后一行添加
acl http proto HTTP acl good_domain dstdomain .baidu.com http_access allow good_domain
http_access deny !good_domain
(白名单,只允许访问baidu.com,黑名单用bad_domain)
:wq
squid -kcheck 检查配置文件有没有错误
squid -kre 重新加载
curl测试
4,2 squid反向代理
vim /etc/squid/squid.conf
代理百度
http_port 80 accel vhost vport
cache_peer 61.135.169.125 parent 80 0 originserver name=a cache_peer_domain a www.baidu.com (百度源ip+端口+域名)
:wq
/etc/init.d/squid restart
curl -xlocalhost:80 http://www.baidu.com/ 正常
curl -xlocalhost:80 http://www.qq.com/ 不行
反向代理主要用于缓存静态项,因为诸多静态项目尤其是图片、流媒体等比较耗费带宽,在中国,联通网访问电信的资源本例就慢,如果再去访问大流量的图片、流媒体那更会慢了,所以如果在联通网配置一个squid反向代理,让联通客户端直接访问这个联通squid,而这些静态项已经被缓存在了squid上,这样就大大加快了访问速度。也许你听说过CDN, 其实它的设计原理就是这样的思路。
4,3 tomcat中JDK安装
用Java写的网站叫jsp,目前有很多网站使用jsp的程序编写,所以解析jsp的程序就必须要有相关的软件来完成。Tomcat就是用来解析jsp程序的一个软件
Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache 独立的进程单独运行的
安装JDK
cd /usr/local/src/
wget http://www.aminglinux.com/bbs/data/attachment/forum/jdk-6u23-linux-i586.bin
mv jdk1.6.0_23 /usr/local/
设置环境变量
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.6.0_23/ JAVA_BIN=/usr/local/jdk1.6.0_23/bin JRE_HOME=/usr/local/jdk1.6.0_23/jre PATH=$PATH:/usr/local/jdk1.6.0_23/bin:/usr/local/jdk1.6.0_23/jre/bin CLASSPATH=/usr/local/jdk1.6.0_23/jre/lib:/usr/local/jdk1.6.0_23/lib:/usr/local/jdk1.6.0_23/jre/lib/charsets.jar export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH
:wq
source /etc/profile 保存文件后,使其生效
java -version 检测是否设置正确
4,4 tomcat安装
安装Tomcat
cd /usr/local/src/ wget http://www.aminglinux.com/bbs/data/attachment/forum/apache-tomcat-7.0.14.tar.gz
tar zxvf apache-tomcat-7.0.14.tar.gz mv apache-tomcat-7.0.14 /usr/local/tomcat
cp -p /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
vim /etc/init.d/tomcat
在第二行加入以下内容
# chkconfig: 112 63 37 . /etc/init.d/functions JAVA_HOME=/usr/local/jdk1.6.0_23/ CATALINA_HOME=/usr/local/tomcat
:wq
chmod 755 /etc/init.d/tomcat chkconfig --add tomcat chkconfig tomcat on
service tomcat start
ps aux |grep tomcat
浏览器中输入http://192.168.11.160:8080 你会看到tomcat的主界面
4,5 tomcat配置和优化
做一个域名或者改变监听端口
vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" 改为80
找到</Host>下一行插入新的<Host>内容如下
<Host name="www.123.com" appBase="/data/tomcatweb" unpackWARs="false" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/> </Host> (每一段host代表一个虚拟主机)
:wq
mkdir -p /data/tomcatweb
service tomcat stop service tomcat start
netstat -lnp |grep java 查看java监听的端口
测试tomcat
vim /data/tomcatweb/111.jsp
<html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html>
:wq
curl -xlocalhost:80 www.123.com/111.jsp
4,6 resin安装与配置
resin与tomcat相似,都是解析 jsp
下载
cd /usr/local/src/
wget http://www.caucho.com/download/resin-4.0.36.tar.gz
tar zxvf resin-4.0.36.tar.gz
cd resin-4.0.36
./configure --prefix=/usr/local/resin --with-java=/usr/local/jdk1.8.0_31/
make
make install
/etc/init.d/resin start (启动前先将tomcat关掉)
netstat -lnp |grep java
浏览器访问
192.168.11.160:8080
修改监听端口
vim /usr/local/resin/conf/resin.properties
将app 8080 改为80(与tomcat相似)
修改虚拟主机
vim /usr/local/resin/conf/resin.xml
在<cluster id="web">内添加
<host id="www.123.com" root-directory="."> <web-app id="/" root-directory="/tmp/resin"/>
</host>
:wq
mkdir /tmp/resin
/etc/init.d/resin stop
/etc/init.d/resin start
netstat -lnp |grep java
测试resin方式与测试tomcat一样
4,7 mysql主从配置-1
MySQL Replication 又叫做AB复制或者主从复制。它主要用于MySQL的时时备份或者读写分离。
http://www.apelearn.com/study_v2/chapter25.html
5,0 DNS介绍
dns = domain name server 域名服务器,解析域名
它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务机制。
其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。 DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间备份使用TCP。
全世界只有13台“根”服务器,1个主根服务器放在美国,其他12台为辅根服务器,DNS服务器根据角色可以分为:主DNS, 从DNS, 缓存DNS服务器,DNS转发服务器。
/etc/resolv.conf dns的配置文件
5,1 dns安装配置-1
安装dns
yum install -y bind
vim /var/named/named.ca
cat /var/named/named.localhost
/etc/init.d/named start 启动
netstat -lnp |grep named // 查看一下named进程是否监听了53端口
首先测试正向解析:dig @127.0.0.1 localhost. (dns的ip)
接着测试反解析:dig @127.0.0.1 -x 127.0.0.1 (dns的ip)
cat /etc/resolv.conf 查看dns的ip
5,2 dns安装配置-2
增加一个域名
vim /etc/named.conf
include下一段添加
zone "123.com" IN {
type master;
file "123.com.zone";
};
在port 53里加上ip192.168.11.160;
:wq
named-checkconf 检测配置文件有没有错误
vim /var/named/123.com.zone
$TTL 1D
@ IN SOA @ admin.123.com. (
2015010901 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H ) ;minimum
IN NS ns.123.com.
IN MX 5 mail.123.com.
mail IN A 192.168.11.20
ns IN A 192.168.11.160
www IN A 11.11.11.11
bbs IN CNAME www.123.com.
:wq
named-checkzone "123.com" /var/named/123.com.zone 检测配置文件有没有错误
/etc/init.d/named restart
dig @192.168.11.160 www.123.com 测试
dig @192.168.11.160 bbs.123.com 测试
dig @192.168.11.160 mail.123.com 测试
编辑反解析
vim /etc/named.conf
zone "11.168.192.in-addr.arpa" IN {
type master;
file "11.168.192.zone";
};
:wq
vim /var/named/11.168.192.zone
$TTL 1D
@ IN SOA @ admin.123.com. (
2015010901 ;serial
1D ;refresh
1H ;retry
1W ;expire
3H ) ;minimum
IN NS ns.123.com.
160 IN PTR ns.123.com.
20 IN PTR mail.123.con.
:wq
named-checkzone "11.168.192.in-addr.arpa" 11.168.192.zone
/etc/init.d/named restart
dig @192.168.11.160 -x 192.168.11.160 测试
dig @192.168.11.160 -x 192.168.11.20 测试
5,3 dns安装配置-3
配置dns的主从
在从服务器上 yum install -y bind
vim /etc/named.conf
zone "abc.com" IN {
type slave;
file "slaves/123.com.zone";
masters { 192.168.11.160; };
};
zone "11.168.192.in-addr.arpa" IN {
type slave;
file "slaves/11.168.192.zone";
masters { 192.168.11.160; };
};
:wq
named: /etc/init.d/named start
在主的配置文件里正反解析zone的file下都要添加两段
notify yes;
also-notify {192.168.11.20;}; 使主从能立马同步,该ip为从的ip
在从上测试和之前在主的正反测试一样
5,4 腾讯企业邮箱免费版
使用第三方邮箱
exmail.qq.com
5,5 iredmail安装
自己创建邮箱
大家注意: iRedMail版本更新太快,官方下载地址是 http://www.iredmail.com/download.html
下载下来后,解压压缩包。
安装命令是: IREDMAIL_MIRROR=‘http://42.159.241.31‘ bash iRedMail.sh
不需要再执行 sed了。
Linux常用服务部署与优化