笔记

一 oop


Mr.kang博客


二  linux性能监控

[root@iZ25hy5x498Z ~]# sar -u 3 5

Linux 2.6.32-573.22.1.el6.x86_64 (iZ25hy5x498Z) 11/01/2017 _x86_64_ (4 CPU)


04:55:22 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle

04:55:25 PM     all     89.42      2.42      8.08      0.00      0.08      0.00

04:55:28 PM     all     88.92      2.50      8.58      0.00      0.00      0.00

04:55:31 PM     all     90.42      1.75      7.74      0.00      0.08      0.00

04:55:34 PM     all     90.92      1.75      7.24      0.00      0.08      0.00

04:55:37 PM     all     89.94      2.08      7.90      0.00      0.08      0.00

Average:        all     89.93      2.10      7.91      0.00      0.07      0.00


使用sar命令


解读:sar -u 3 5  没三秒刷新一次,一共显示5行

 

user:    显示用户进程消耗的CPU百分比

nice:    显示正常运行进程消耗CPU百分比

system:  系统进程消耗CPU时间百分比

iowait:  io等待所占的CPU百分比

steal:    内存紧张的环境下pagein强制对不同页面进行的steal操作

idle:     CPU处于空闲状态的时间百分比




[root@iZ25hy5x498Z ~]# vmstat 2 3

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

128  0      0 217556 285428 1117704    0    0     3   866    4    4 87 10  2  1  0

82  0      0 244480 285432 1115456    0    0     0  3050 6569 5779 90 10  0  0  0

66  0      0 275648 285432 1115504    0    0     0  3140 6587 5562 90 10  0  0  0



系统监控   每2秒更新一次  共更新三次

r:

b:

free: 当前空闲内存数量

buff: 表示buffers cache的内存数量,一般对块设备的读写才需要缓冲

cache: 表示page cache的内存数量,一般作为文件系统缓冲,频繁访问的文件会被cache,此值较大,说明cached的文件较多,如果此时io中bi较小,说明文件系统效率比较好。

swap区中:

si:   表磁盘调入内存

so:   由内存进入磁盘







[root@iZ25hy5x498Z ~]# sar -n DEV 3 5

Linux 2.6.32-573.22.1.el6.x86_64 (iZ25hy5x498Z) 11/01/2017 _x86_64_ (4 CPU)


05:28:40 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

05:28:43 PM        lo   4963.25   4963.25   1634.00   1634.00      0.00      0.00      0.00

05:28:43 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

05:28:43 PM      eth1   1186.75    985.43     71.09    154.21      0.00      0.00      0.00


05:28:43 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

05:28:46 PM        lo   4750.33   4750.33    443.69    443.69      0.00      0.00      0.00

05:28:46 PM      eth0      0.33      0.33      0.12      0.03      0.00      0.00      0.00

05:28:46 PM      eth1   1101.67    918.33     66.71    143.65      0.00      0.00      0.00


05:28:46 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

05:28:49 PM        lo   4995.33   4995.33    464.67    464.67      0.00      0.00      0.00

05:28:49 PM      eth0      0.33      0.33      0.01      0.01      0.00      0.00      0.00

05:28:49 PM      eth1   1176.00   1023.67     70.13    198.38      0.00      0.00      0.00


05:28:49 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

05:28:52 PM        lo   5086.96   5086.96    763.25    763.25      0.00      0.00      0.00

05:28:52 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

05:28:52 PM      eth1   1132.11    955.85     68.56    150.31      0.00      0.00      0.00


05:28:52 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

05:28:55 PM        lo   4943.19   4943.19    575.40    575.40      0.00      0.00      0.00

05:28:55 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

05:28:55 PM      eth1   1163.79   1001.33     69.82    151.75      0.00      0.00      0.00


Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

Average:           lo   4947.74   4947.74    777.22    777.22      0.00      0.00      0.00

Average:         eth0      0.13      0.13      0.03      0.01      0.00      0.00      0.00

Average:         eth1   1152.13    976.96     69.27    159.65      0.00      0.00      0.00

[root@iZ25hy5x498Z ~]# netstat -r

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

101.200.172.0   *               255.255.252.0   U         0 0          0 eth1

10.44.168.0     *               255.255.248.0   U         0 0          0 eth0

link-local      *               255.255.0.0     U         0 0          0 eth0

link-local      *               255.255.0.0     U         0 0          0 eth1

172.16.0.0      10.44.175.247   255.240.0.0     UG        0 0          0 eth0

100.64.0.0      10.44.175.247   255.192.0.0     UG        0 0          0 eth0

10.0.0.0        10.44.175.247   255.0.0.0       UG        0 0          0 eth0

default         101.200.175.247 0.0.0.0         UG        0 0          0 eth1


调试进程  straace -p xxx  

  gdb -p xxx



三、Apache配置

1:使用yum安装

yum install -y httpd


2:查看安装包的版本

rpm -qi httpd


rpm -ql httpd | less    查看安装的httpd生成的目录或者文件有哪些


[ceshiji@localhost ~]$ rpm -ql httpd | less

/etc/httpd

/etc/httpd/conf

/etc/httpd/conf.d

/etc/httpd/conf.d/README

/etc/httpd/conf.d/welcome.conf

/etc/httpd/conf/httpd.conf

/etc/httpd/conf/magic       

/etc/httpd/logs

/etc/httpd/modules

/etc/httpd/run

/etc/logrotate.d/httpd

/etc/rc.d/init.d/htcacheclean

/etc/rc.d/init.d/httpd            服务脚本       

/etc/sysconfig/htcacheclean

/etc/sysconfig/httpd              服务脚本的配置文件

/usr/lib64/httpd

/usr/lib64/httpd/modules

/usr/lib64/httpd/modules/mod_actions.so

/usr/lib64/httpd/modules/mod_alias.so

/usr/lib64/httpd/modules/mod_asis.so

/usr/lib64/httpd/modules/mod_auth_basic.so

/usr/lib64/httpd/modules/mod_auth_digest.so

/usr/lib64/httpd/modules/mod_authn_alias.so

/usr/lib64/httpd/modules/mod_authn_anon.so

/usr/lib64/httpd/modules/mod_authn_dbd.so

/usr/lib64/httpd/modules/mod_authn_dbm.so

/usr/lib64/httpd/modules/mod_authn_default.so

/usr/lib64/httpd/modules/mod_authn_file.so

/usr/lib64/httpd/modules/mod_authnz_ldap.so

/usr/lib64/httpd/modules/mod_authz_dbm.so

/usr/lib64/httpd/modules/mod_authz_default.so




3:查看服务器版本

cat /etc/redhat-release


4:查看安装包所带的软件

yum list | grep httpd


yum install -y httpd-*   安装所有自带的功能


5:启动httpd服务

service httpd start |stop | start|graceful  优雅的重启:完成所有的配置后重启 |graceful-stop 优雅的关闭


6:设置开机启动

 chkconfig httpd on


7:apache的配置文件基本保存在 /etc/httpd/ 的目录下 ,共5个目录

conf      存放主配置文件

conf.d    存放Apache的模块文件的配置文件

logs      Apache的日志文件

modules   功能模块

run       Apache运行时的进程的主进程



8:Apache默认的根目录是

  /var/www/   

  

  默认的网页目录为

 /var/www/html/


9:Apache安装后有一个默认用户

cat /etc/passwd | grep apache    查看



二 : 概览


1:进程  默认的tcp协议的80端口

   启动一个主进程(控制进程)和多个子进程


2:查看Apache进程

ps aux | grep httpd


主进程 一个(root)   其它的辅进程   主进程是控制子进程的   子进程和web交互的



3:Apache是一个模块化设计的服务,核心只包含主要功能,扩展功能通过模块实现。不同模块可以被静态的编译程序,也可以动态加载。

  动态加载模块通过DSO实现。

  可以使用 apxs 编译Apache模块

  


查看模块:  httpd -M

查看静态的编译模块  :httpd -l




4:MPM apche通过MPM实现网络监听、请求的处理功能,不同的平台使用不同版本的MPM ,linux使用 prefork、worker    windows下使用mpm_winnt

使用命令查看锁使用的MPM:

httpd -l

httpd -V


liunx 下默认使用 prefork

prefork:是非线程、预生成进程型MPM,它会先启动一些子进程,每个子进程一个时间点只能处理一个请求,并且会根据并发请求数量动态生成更多子进程。优点:安全,效率高。缺点:内存占用高


worker: 是线程化,多进程的MPM,每个进程可以生成多个线程,每个线程处理一个请求


ab -c 16 -n 1000 host   ab并发测试  可以看到prefork 增加子进程的过程和减少子进程过程


打开 /etc/httpd/conf/httpd.conf   看到prefork模块配置

<IfModule prefork.c>

StartServers       8          //默认启动子进程

MinSpareServers    5          //保留空闲服务器进程的最小数量

MaxSpareServers   20          //保留空闲服务器进程的最大数量

ServerLimit      256          //限制MaxClients 最大数量

MaxClients       256          //最大处理并发量  根据内存配置

MaxRequestsPerChild  4000     //每个子进程最多能处理的请求数量,到达数量之后会自动杀掉重新生成

</IfModule>



三  配置

主要有 三类

一:全局配置  ### Section 1: Global Environment  三个#号开头

作用:配置所有服务的

主要配置项有: 

1、ServerTokens OS 可以配置错误页面时显示的服务器信息

2、ServerRoot "/etc/httpd"  配置服务器的主目录,不可更改

3、PidFile run/httpd.pid  Apache主进程id 

4、Timeout 60  配置Apache服务超时时间

5、KeepAlive Off  配置tcp连接 默认关闭的  打开情况下一个tcp连接可以发起多次请求

6、MaxKeepAliveRequests 100  tcp连接最大的请求次数,如果设置为0  则没有限制

7、KeepAliveTimeout 15      一个tcp两次连接之间最大的间隔时间 单位秒


8、prefork模块配置:

<IfModule prefork.c>

StartServers       8          //默认启动子进程

MinSpareServers    5          //最小存在进程数量

MaxSpareServers   20          //最大进程数量

ServerLimit      256          //限制MaxClients 最大数量

MaxClients       256          //最大处理并发量  根据内存配置

MaxRequestsPerChild  4000     //每个子进程最多能处理的请求数量,到达数量之后会自动杀掉重新生成

</IfModule>


9、Listen 80   设置服务器端口号  默认80   可以指定IP地址监听


10、DSO配置

如:

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule auth_digest_module modules/mod_auth_digest.so

LoadModule authn_file_module modules/mod_authn_file.so

LoadModule authn_alias_module modules/mod_authn_alias.so

不用的可以注释或者删除


11、Include conf.d/*.conf   配置额外模块路径  每个模块都可以有独立的配置文件


12、User apache

    Group apache

设置子进程使用哪个身份运行的




二:主服务配置 ### Section 2: 'Main' server configuration  默认网站的配置


1、ServerAdmin root@localhost  管理员邮箱  出现错误会提示管理员邮箱

2、#ServerName www.example.com:80  配置域名

3、UseCanonicalName Off  是否严格使用合法域名  默认是关闭的  如果打开只能通过ServerName 访问

4、DocumentRoot "/var/www/html"   设置默认网站的根目录

5、

<Directory />   对指定目录实施访问控制的

    Options FollowSymLinks   控制条件

    AllowOverride None       控制条件

</Directory>


Options 选项

None:不支持任何选项

Indexes:允许索引目录

FollowSymLinks:允许访问符号链接指向的源文件

Includes:允许执行服务端包含(SSI)

ExecCGI:允许运行CGI脚本

All:支持所有选项


AllowOverride:是否允许覆盖 覆盖下面Order选项 控制访问权限

如:

AllowOverride AuthConfig    认证配置覆盖用户请求

AuthType Basic              认证类型

AuthName 'xxxxx'              认证的名称

AuthUserFile '/etc/httpd/conf/htpasswd'  基于用户的认证   路径

Require user xxx xxx                指定配置表里的用户登录  多个用户用空格隔开

Require valid-user            配置表里面所有的用户都可以登录 


创建认证用户

htpasswd -c -m /etc/httpd/conf/htpasswd kangge  第一次创建用户必须使用-c -m指定为MD5加密

htpasswd -m /etc/httpd/conf/htpasswd kangsao


cat htpasswd   查看用户

             


Order allow,deny      服务器访问控制列表   deny是默认值  次序很关键

    Allow from all     允许说有客户机访问

或者

    deny from           禁止指定或者所有客户机访问 多个客户机ip用空格分开


6、

<IfModule mod_userdir.c>  条件化的模块加载   如果加载了mod_userdir.c这个模块  里面的条件生效 生成用户家目录

    #

    # UserDir is disabled by default since it can confirm the presence

    # of a username on the system (depending on home directory

    # permissions).

    #

    UserDir disabled


    #

    # To enable requests to /~user/ to serve the user's public_html

    # directory, remove the "UserDir disabled" line above, and uncomment

    # the following line instead:

    # 

    #UserDir public_html


</IfModule>

7、DirectoryIndex index.html index.html.var  如果没有设置首页  默认index.html  左到右查找

8、AccessFileName .htaccess   访问控制   控制条件写入.htaccess   文件中,加载进入 一般禁止 执行效率低

9、

<Files ~ "^\.ht">  对文件访问进行控制,  如 对后缀为.ht的文件不允许访问

    Order allow,deny

    Deny from all

    Satisfy All

</Files>

10、TypesConfig /etc/mime.types   指定mime文件路径

11、DefaultType text/plain        指定网页的类型   默认的为纯文本

12、HostnameLookups Off           是否进行域名的解析  默认为关闭

13、ErrorLog logs/error_log       服务器错误日志

14、LogLevel warn                 配置错误日志的类别

15、

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

配置错误日志的详细信息,如格式 ip等

16、#CustomLog logs/access_log common   访问日志的默认位置

17、ServerSignature On          控制服务器报错信息的详细程度  和全局的ServerTokens OS的功能相像

18、Alias /icons/ "/var/www/icons/"   服务器路径别名  既直接访问icons 相当于访问/var/www/icons/ 这个路径

19、ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"   脚本别名

20、AddDefaultCharset UTF-8           指定默认网页的编码

21、

BrowserMatch "Mozilla/2" nokeepalive

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

BrowserMatch "RealPlayer 4\.0" force-response-1.0

BrowserMatch "Java/1\.0" force-response-1.0

BrowserMatch "JDK/1\.0" force-response-1.0

基于特定浏览器做特定的配置


三:虚拟主机的配置 ### Section 3: Virtual Hosts







安装HTTPS服务器

1、安装mod_ssl

yum install -y mod_ssl

2、查看安装的mod_ssl

[root@localhost httpd]# rpm -ql mod_ssl   命令

/etc/httpd/conf.d/ssl.conf                配置

/usr/lib64/httpd/modules/mod_ssl.so       模块

/var/cache/mod_ssl           缓存

/var/cache/mod_ssl/scache.dir

/var/cache/mod_ssl/scache.pag

3、安装CA服务   另一台Linux服务器上

如在10.0.3.119上

 cd /etc/pki/CA/

 (umask 077;openssl genrsa -out private/cakey.pem 2048)

umask在peivate目录下生成一个2048位的077的证书



elinks  纯文本浏览工具



  • 上一篇:没有了
  • 下一篇: 学习
白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论