首页 > 代码库 > 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常用服务部署与优化