rhel7 http实例
配置WWW
/etc/httpd/conf/httpd.conf是主要配置文件
/etc/httpd/conf.d/*.conf很多额外的参数文件,扩展名是.conf,一般在这里面配置,好处是当升级系统时,不需要改动原来的配置文件,只要将.conf复制到正确的地点即可。维护更方便!尤其是虚拟主机经常使用这样的设置,在迁移时很方便。
服务器环境设置参数:
Listen 80
#与监听接口有关,默认开放在所有的网络接口。也可以修改端口,如8080
LoadModule auth_basic_module modules/mod_auth_basic.so
……
#加载模块的设置项目。Apache提供很多有用的模块(就是外挂)给我们使用
Include conf.d/*.conf
#因为这一行,所以放置到/etc/httpd/conf.d/*.conf的设置都会被读入
User apach
Group apache
#prework、worker等模块所启动的process的属主与属组设置
#这个设置很重要,因为未来你提供的网页文件能不能被浏览都与这个身份有关
ServerAdmin [email protected]
#系统管理员的E-mail,当网站出现问题时,错误信息会显示的联系邮箱(错误回报)
ServerName server0
#设置主机名,这个值如果没有指定的话,默认会以hostname的输出为依据
#千万记得,你填入这个主机名要找的到IP(DNS或/etc/hosts)
UseCanonicalName Off
#是否使用标准主机名?如果你的主机有多个主机名,若这个设置为On,那么Apache只接受上面servername指定的主机名连接而已。请使用Off
DocumentRoot "/var/www/html"
#主页的放置目录,但是必须要特别留意这个设置目录的权限以及selinux的相关规则与类型(type)
DirectoryIndex index.html index.html.var index.cgi
#首页"文件的文件名"设置,Apache默认以index.*为开关,windows则以default.*开关。
目录相关权限:
<Directory>
Options Indexes FollowsYmLinks……
AllowOverride ALL AuthConfig……
Order、allow,deny deny, allow……
deny、allow from all、172.25.0.11、172.25.0.0/24 、valid-user……
</Directory>
Options(目录参数)
此设置值表示在这个目录内能够让Apache进行的操作,也就是针对Apache的程序的权限设置。主要的参数值有:
Indexes:
如果在此目录下找不到首页文件(默认为index.html)时,就显示整个目录下的文件名,至于首页文件名则与DirectoryIndex设置有关。
FollowSymLinks:
这是follow sysmbolic links的缩写,字面意义是让连接文件可以生效。我们知道首页目录在/var/www/html,既然是www的根目录,理论上就像被chroot一般。一般来说被chroot的程序将无法离开其目录,也就是说默认的情况下,你在/var/www/html下面的连接文件只要链接到非此目录的其它目录。则该连接文件默认是失效的。但使用此设置即可以让连接文件有效地离开本目录。
ExecCGL:
让此目录具有执行CGI程序的权限,非常重要。举例来说,之前热门的openwebmail使用了很多的perl程序,你要让openwebmail可以执行,就需要在该程序所在的目录拥有ececCGI的权限才行。但请注意,不要让所有目录均可使用ececCGI。
includes:
让一些server-side include程序可以运行。建议加上去!
MultiViews:
这个有像是多国语言的支持,与语言数据(LanguagePriority)有关。在错误信息的回报内容中最常见,在同一台主机中,可以依据客户端的语言而给予不同的语言显示。默认在错误回报信息当中存在,你可以检票一下/var/www/error/目录下的数据。
AllowOverride(允许的覆盖参数功能)
表示是否允许额外配置文件.htaccess的某些参数覆盖。我们可以在httpd.conf内设置好所有的权限,不过如此一来,若用户自己的个人网页想要修改权限时将会对管理员造成困扰。因此,apache默认可以让用户以目录下面的.htaccess文件内覆盖<Directory>内的某些功能参数。这个项目则是在规定.htaccess可以覆盖的权限类型有哪些。常见的有:
ALL:
全部的权限均可被覆盖。
AuthConfig:
仅有网页认证(账号与密码)可覆盖。
Indexes:
仅允许Indexes方面的覆盖。
Limits:
允许用户利用Allow、Deny与Order管理可浏览的权限。
None:
不可覆盖,也就是让.htaccess文件失效。
Order、allow、deny(能否登录浏览的权限)
决定此目录是否可被Apache的PID所浏览的权限设置。能否被浏览主要有两种判断的方式:
deny,allow:以deny优先处理,但没有写入规则的则默认为allow。
allow,deny: 以allow优先处理,但没有写入规则的则默认为deny。
实例:
第十三题http
在server0上搭建一个域名为server0.example.com的web服务器其主目录位置随意,下载ftp://server.domain0.example.com/pub/html/server0.html到网站的家目录下,并更改命名为index.html,请勿修改网页内容。
服务器
yum -y install http*
firewall-cmd --per --add-serve=http
firewall-cmd --relo
cd /var/www/html
vim index.html
12
cd /etc/httpd/conf.d
cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf hrr.conf
vim hrr.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/"
ServerName server0.example.com
ErrorLog "/var/log/httpd/server0.example.com-error_log"
CustomLog "/var/log/httpd/server0.example.com-access_log" common
</VirtualHost>
setsebool -P httpd_read_user_content 1
systemctl restart httpd
客户机
[root@desktop0 conf.d]# curl http://server0
12
[root@desktop0 conf.d]#
第十四题 https
请在server0上针对server0.example.com网站开启ssl功能,请从ftp://classroom.example.com/pub/http/ssl/处下载caert.crt,httpd.crt,httpd.key三个证书文件到你本地的合适的目录下
服务器
yum -y install *ssl*
vim /etc/httpd/conf.d/hrr.conf
<VirtualHost *:443>
DocumentRoot "/var/www/html/"
ServerName server0.example.com
ErrorLog "/var/log/httpd/server0.example.com-error_log"
CustomLog "/var/log/httpd/server0.example.com-access_log" common
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLHonorCipherOrder on
SSLCertificateFile /etc/pki/tls/certs/server0.crt
SSLCertificateKeyFile /etc/pki/tls/private/server0.key
SSLCertificateChainFile /etc/pki/tls/certs/example-ca.crt
</VirtualHost>
setsebool -P httpd_read_user_content 1
firefox
systemctl restart httpd
客户机
[root@desktop0 conf.d]# curl https://server0:443
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle fil