1. 程式人生 > >Linux常用服務部署與優化

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 [email protected] 賬號密碼登陸(服務端ip)

touch /tmp/ftp/123.txt

ls

get 12.txt 下載文件12.tet

服務端也可以上傳文件

lftp [email protected] 賬號密碼登陸(服務端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 [email protected]

可以cd到任何目錄,沒有限制,非常危險

vim /etc/vsftpd/vsftpd.conf 進入到配置文件

把chroot_local_user=yes 前的#刪掉

/etc/init.d/vsftpd restart

lftp [email protected]

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 [email protected]

外部瀏覽器登陸

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常用服務部署與優化