rhel7 http实例

  1. 配置web:虚拟主机配置;https;不同端口虚拟主机

配置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 xxx@www.abc.xxx

#系统管理员的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://cla***oom.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