坚持#第236天~Apache之httpd与周五测试

来源:互联网 发布:大众软件2014电子版 编辑:程序博客网 时间:2024/05/21 14:59

进入终端:最好用ssh -X(图形化) 连接进去

 

apache的进程模式是怎么进行的?

一个子进程对应一个线程(创建和销毁线程、排队)

优点:一个线程坏掉不会影响整个进程

缺点:占内存

线程

一个子进程对应多个线程(创建线程)

优点:高并发

缺点:一个线程坏掉了那么整个进程就都坏掉了

 

守护进程:不间断地在后台运行

 

logrotate -f/etc/logrotate.conf切分日志轮转的配置文件相当于将所有的日志都切分了

 

将ssh单独隔开切分

vim /etc/ssh/sshd_config

SyslogFacility local2(对象为local2自定义的有local0~7)

vim /etc/rsyslog.conf

local2.*        /var/log/anquan

 

昨天学完了个人主页,今天来学虚拟主机

服务器/var/www/html/index.html

客户端使用http://ip访问

对于客户端不知道ip/后面的名字,而且要加8080,并且ip要收费

直接输入主机名来代替输入ip怎么做:

通过/etc/hosts提供解析声名ip对应的是什么主机名

/var/www/html/localyum正在挂载:mount | greplocalyum(用df查不出来)

echo “hello” >/var/www/html/index.html

转到客户端(要在客户端那边指定/etc/hosts)

vim /etc/hosts进入ip和字符串的对等关系

192.168.1.61   www.litao.com表示对等关系,添加IP = 输入的字符串

转到服务器

cp/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d将虚拟主机属性的配置文件复制到子配置目录下面(因为那个2.4.6的目录下不生效)

vim/etc/httpd/conf.d/httpd-vhosts.conf

*:80

DocumentRoot  “/var/www/www” 文档目录

ServerName  www.litao.com刚才指定了的hosts里面一样(试一下若不写hosts里面会怎样,必须要解析呀)

ServerAlias  litao别名随便取 等价于上面的名字(可以不写别名)

ErrorLog “/var/log/httpd/www-error_log”

CustomLog "/var/log/httpd/www-access_log" common保存退出

 

mkdir /var/www/www/var/www/bbs

echo “www” > /var/www/www/index.html

重启服务然后在客户端上firefoxwww.litao.com或litao就行了

 

那么问题来了,默认的路径是/var/www,想访问根目录下的/blogs怎么办?(提示:容器)

转到服务器

mkdir /blogs

echo “blogs vhosts” >/blogs/index.html

DocumentRoot “/blogs”换一个文档目录

重启服务

 

vim/etc/httpd/conf/httpd.conf

conf.modules.d里的00-base.conf文件里表示加载的模块

 

主配置文件里面可以写容器,vhosts.conf虚拟主机配置文件里面也可以写容器

 

 

中午作业

转到服务器

ls /etc/httpd/logs是httpd的全部日志

统计:这个ip访问了多少次,200成功访问有多少次,404有多少次,404有多少次

vim /etc/httpd/logs/access_log访问的日志,查看所有人访问,简直就是叼爆了

cut -d”” -f1 /etc/httpd/logs/access_log |sort | uniq -c

cut -d”” -f1,9 /etc/httpd/logs/access_log |sort | uniq -c | grep “404$”

 

httpd访问控制:(注意关闭/etc/hosts里的ip删掉或注释掉)

1.关闭站点,就是禁止所有人进来

# vim/etc/httpd/conf/httpd.conf

<Directory"/var/www/html">

    Require all denied

</Directory>

# systemctl restart httpd

客户端:

测试:firefoxhttp://192.168.1.252

403

Forbidden

You don't have permission toaccess / on this server.

结果:无法访问

-------------------------------------------------

2.拒绝某台主机

# vim/etc/httpd/conf/httpd.conf

<Directory "/var/www/html">

    order allow,deny

    allow from all

    deny from 192.168.1.250

</Directory>

# systemctl restart httpd

测试:

1.用192.168.1.249这台pc访问web服务器,结果拒绝访问,错误403

2.用其他pc访问,结果是可以正常访问

------------------------------------------------------

3.只允许某台主机

# vim/etc/httpd/conf/httpd.conf

<Directory"/var/www/html">

    order deny,allow

    deny from all

    allow from 192.168.1.250

</Directory>

-------------------------------------------------------

用户验证

提供apache用户

语法:命令 [-c]  文件 http用户名   

# htpasswd -c /var/www/html/htpasswdhttp1

New password:

Re-type new password:

Adding password for userhttp1

 

-c是创建一个新文件或覆盖原来的文件

不加-c是添加

-m是md5(默认的可不写)

用户认证(设置httpd账户,密码),登陆时要输入账号密码(还可以设置有效的用户可以登录,禁止所有人登陆,尽管输入对了账户和密码也进不去),配置文件,主配置文件,有固定的目录(注意改了之后要注释下面的所有人放行,重启服务)

 

配置文件

# vim/etc/httpd/conf/httpd.conf

<Directory"/var/www/html">

    AllowOverride AuthConfig  

    AuthType Basic    //验证类型:基本类型

    AuthName "uplooking auth"   //验证的名字

    Authuserfile"/var/www/html/htpasswd"   //验证文件的位置

    Require user http1  //指定单独用户

</Directory>

 

# systemctl restart httpd

 

测试:

http://192.168.1.252

需要输入用户名和密码才可以登陆 ,且只有http1用户输入正确的密码才可以登陆

-----------------------------------------------

# vim/etc/httpd/conf/httpd.conf

<Directory"/var/www/html">

    AllowOverride AuthConfig  

    AuthType Basic    //验证类型:基本类型

    AuthName "uplooking auth"   //验证的名字

    Authuserfile"/var/www/html/htpasswd"   //验证文件的位置

    Require valid-user  //合法用户可以访问

</Directory>

不会给普通用户的个人主页设置访问控制啊

 

 

 

周五测试:

1.每个月的星期1的2:00重启电脑?

crontab -e

0   2   0    *    1   root  reboot

2.只允许root用户使用crond

vim /etc/cron.allow

root保存退出

 

3.两台服务器之间使用ssh服务互相管理都不需要输入密码

假设第一台服务器的ip是192.168.1.251

假设第二台服务器的ip是192.168.1.252

首先在192.168.1.251上操作:

ssh-keygen制作密钥

ssh-copy-id -i 192.168.1.252将公钥发送给192.168.1.252

转到192.168.1.252

ssh-keygen制作密钥

ssh-copy-id -i 192.168.1.251将公钥发送给192.168.1.251

 

4.配置nfs服务,将/common目录以读写rw的方式共享给example.com域用户,当客户端用root用户身份在此网络磁盘上写数据的时候文件的拥有人和所属组为root,以只读方式共享给cracker.org域用户。

假设服务器的ip为192.168.1.251

mkdir /common

chmod o+w /common

vim /etc/exports

/common    example.com(rw,no_root_squash)

/common    cracker.org(ro)保存退出

systemctl reload nfs-server

转到example.com域的客户端

mount.nfs  192.168.1.251:/common/opt

转到cracker.org域的客户端

mount.nfs  192.168.1.251:/common/opt

 

 

5.http服务中,仅允许192.168.1.0/24这个网段访问主页,如何设置?

vim /etc/httpd/conf/httpd.conf进入主配置文件设置httpd访问控制

<Directory"/var/www/html">

    order deny,allow

    deny from all

    allow from 192.168.1. 255.255.255.0

</Directory>保存退出

systemctl restart httpd

 

6.为tom用户提供一个个人主页,需要提供apache的账户和密码才可以访问?

vim /etc/httpd/conf.d/userdir.conf进入修改子配置文件之一(个人主页)

注释UserDir disabled

开启UserDir public_html保存退出

su - jim普通用户

mkdir public_html家目录下创建public_html目录,这个是固定死的不能改其他名字,要想改其名,就要去个人主页的配置文件里面去改

echo “jim home index”>> public_html/index.html

exit

cat /home/jim/public_html/index.html

systemctl restart httpd

chmod 755(rw) /home/jim

vim/etc/httpd/conf/httpd.conf进入主配置文件设置httpd访问控制

<Directory "/home/*/public_html">

    AllowOverride AuthConfig  

    AuthType Basic    //验证类型:基本类型

    AuthName "uplooking auth"   //验证的名字

    Authuserfile"/var/www/html/htpasswd"   //验证文件的位置

    Require user http1  //合法用户可以访问

</Directory>

htpasswd -c/var/www/html/htpasswd http1

systemctl restart httpd

 

7.进程模式和线程模式的优缺点?

prefork进程模式

优点:非常稳定的模式,兼容性高

缺点:占内存,不适用于高流量,需要排队

worker线程模式

优点:占内存少,高流量

缺点:安全性低、一个线程坏掉了就整个子进程都坏掉了
原创粉丝点击