linux中的APACHE配置

APACHE

curl -I www.baidu.com ###查看所用的服务类型
查看服务端口:  netstat -lntup |grep httpd
apache日志: /etc/httpd/logs/*
注意:如果selinux未关,修改安全上下文为httpd_sys_content_t

一、介绍

apache是企业中常用的web服务,用来提供http://(超文本传输协议)

二、apache的安装

yum install httpd -y       #安装apache软件包

systemctl start httpd      #打开服务

systemctl enable httpd    #开机自启动

systemctl stop firewalld     #关闭防火墙

systemctl disable firewalld   #开机不启动防火墙

yum install httpd -y       #安装apache软件包

linux中的APACHE配置_第1张图片

linux中的APACHE配置_第2张图片
 

systemctl start httpd      #打开服务

systemctl enable httpd    #开机自启动


 

firewalld-cmd --permanent --add-service=http  #在防火墙策略中添加http和https服务

firewalld-cmd --permanent --add-service=https

firewalld-cmd --reload  #重新加载策略

linux中的APACHE配置_第3张图片

linux中的APACHE配置_第4张图片

测试:

访问apache默认页面http://172.25.254.110

linux中的APACHE配置_第5张图片

 

apache还有一个使用手册:需要安装httpd-manual包

linux中的APACHE配置_第6张图片

linux中的APACHE配置_第7张图片

访问http://主机ip/manual可以查看,自带的手册,点中文翻译没用

linux中的APACHE配置_第8张图片

apache手册中文版,在百度中搜索apache手册,语言转换即可:

linux中的APACHE配置_第9张图片

三、apache的基础信息

四、配置apache服务

1.在默认发布目录发布内容

vim /var/www/html/index.html   ##默认发布文件

hello world

主配置目录: /etc/httpd/conf

主配置文件:/etc/httpd/conf/httpd.conf

子配置目录:/etc/httpd/conf.d

子配置文件:/etc/httpd/conf.d/*.conf

默认发布目录:/var/www/html

默认发布文件:index.html

默认端口:80

默认安全上下文:httpd_sys_content_t

程序开启默认用户:apache

apache日志:/etc/httpd/logs/*

systemctl restart httpd

访问http://172.25.254.110

linux中的APACHE配置_第10张图片

netstat -antlupe | grep httpd   ##查看当前http服务的网络接口

2.修改默认端口

vim /etc/httpd/conf/httpd.conf

42 Listen 8080                      ##修改默认端口为8080

linux中的APACHE配置_第11张图片

[root@apache html]# firewall-cmd --permanent --add-port=8080/tcp

[root@apache html]# firewall-cmd --reload

[root@apache html]# systemctl restart httpd

测试:

linux中的APACHE配置_第12张图片

3.修改默认发布文件:

恢复实验环境:将apache的端口恢复为80

linux中的APACHE配置_第13张图片

默认发布文件就是访问apache时没有指定文件名称时默认访问的文件。

这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf

164     DirectoryIndex  westos.html   index.html

##当index.html不存在时,访问westos.html

                                          
##如果将westos.html放到index.html前面,

在两个文件都存在的情况下会默认访问westos.html里面的内容

linux中的APACHE配置_第14张图片

 

 

[root@apache html]# vim westos.html

[root@apache html]# cat westos.html

westos.html

[root@apache html]# ls

index.html  westos.html

[root@apache html]# rm -f index.html

[root@apache html]# ls

westos.html

linux中的APACHE配置_第15张图片

##如果没编辑/etc/httpd/conf/httpd.conf(没添加加westoshtml),

要想看到westos的页面,则在浏览器中输入:http端IP/westos.html 即可
[root@apache html]# systemctl restart httpd.service   修改完配置文件记得一定要重启服务生效

ctrl shift delete 清除缓存

 

  

linux中的APACHE配置_第16张图片

测试:

linux中的APACHE配置_第17张图片

4.修改默认发布目录

vim /etc/httpd/conf/httpd.conf

120 DocumentRoot "/www/html"

121 

122         Require all granted

123 

将119行的DocumentRoot "/var/www/html"注释掉复制到下面编辑新的默认发布目录,

再将124-128行的内容复制到,121行到125行,

在删掉AllowOverride None   # Allow open access:,

将/var/www 改为/www/html即可

##将原本的DocumentRoot "/var/www/html"替换为以上内容

linux中的APACHE配置_第18张图片

mkdir /www/html -p

vim /www/html/index.html

systemctl restart httpd

为了方便期间我的selinux设置为disabled

注意:如selinux为enforcing则操作如下(改为enforcing重启)

将新建的文件夹的安全上下文改为与/var/www/相同即可

[root@desktop ~]# ls -Zd /var/www/html/

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

[root@desktop ~]# ls -Zd /www/html/

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /www/html/

由于selinux的存在,新建的目录安全上下文和默认发布目录是不同的

semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'  ##修改安全上下文

restorecon -FvvR /www/         ##刷新安全上下文

[root@desktop ~]# ls -Z /www/html/ -d

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /www/html/

linux中的APACHE配置_第19张图片

systemctl restart httpd.service 

测试

linux中的APACHE配置_第20张图片

五、apache的虚拟主机

index.html:apache默认发布文件

news.conf 或 music.conf:apache子配置文件

1.

恢复默认发布目录,并创建默认文件index.html

[root@desktop conf.d]# cat /var/www/html/index.html 

172.25.254.110

mkdir /var/www/virtual/news/html -p    #虚拟主机放置路径

mkdir /var/www/virtual/music/html -p    #第二个虚拟主机路径

vim /var/www/virtual/news/html/index.html  #建立虚拟主机发布文件

 

news.westos.com

vim /var/www/virtual/music/html/index.html

music.westos.com

linux中的APACHE配置_第21张图片
 

cd /etc/httpd/conf.d/                       #进入apache服务子配置目录

vim adefault.conf                          #建立默认发布目录配置文件



       DocumentRoot /var/www/html            #发布文件路径
       CustomLog "logs/adefault.log" combined  #日志路径,这里写相对路径,内容在/etc/httpd/logs/*.log里面

 

linux中的APACHE配置_第22张图片
 

vim news.conf                            #建立虚拟发布目录文件

   

           ServerName news.westos.com              #虚拟主机的域名

           DocumentRoot /var/www/virtual/news/html  #发布目录
           Customlog "logs/news.log" combined        #站点日志,combined表示四种日志类型的合集

   

  

           Require all granted                        #建立认证关系

  

linux中的APACHE配置_第23张图片
 

vim music.conf

  1 

  2         ServerName music.westos.com

  3         DocumentRoot /var/www/virtual/music/html

  4         Customlog "logs/music.log" combined

  5 

  6 

  7         Require all granted

  8 

linux中的APACHE配置_第24张图片

systemctl restart httpd.service

测试:

在客户端访问以上网页时,做好本地解析:

vim /etc/hosts

 

linux中的APACHE配置_第25张图片

linux中的APACHE配置_第26张图片

linux中的APACHE配置_第27张图片

做完后清空环境

http端:

linux中的APACHE配置_第28张图片

浏览器端:

linux中的APACHE配置_第29张图片

恢复apache主配置文件的默认发布目录

linux中的APACHE配置_第30张图片

六、apache访问限制(http端IP:172.25.254.110 浏览器端:172.25.254.210)

重新编辑apache默认发布文件

linux中的APACHE配置_第31张图片

1.通过黑白名单

vim /etc/httpd/conf.d/a_default.conf

DocumentRoot "/var/www/html"

        order deny,allow      #deny和allow哪个在前就先读取下面的哪个配置
        allow from 172.25.254.210##允许210这台主机访问
        deny from all    ##拒绝所有

        

linux中的APACHE配置_第32张图片

测试端:

IP(210)

linux中的APACHE配置_第33张图片

IP(57)

linux中的APACHE配置_第34张图片

直接访问html文件:

linux中的APACHE配置_第35张图片

2.通过密码

1)创建密码文件:

[root@fuwu conf.d]# htpasswd -cm /etc/httpd/userpass admin

New password:                           ##输入密码

Re-type new password:                   ##确认密码

Adding password for user admin

linux中的APACHE配置_第36张图片

如果还要增加一个用户要去掉c参数,否则会覆盖原来的用户密码

htpasswd -m /etc/httpd/userpass admin1

密码文件在这里:

[root@fuwu conf.d]# cat /etc/httpd/userpass 

admin:$apr1$GNsdwvzs$ONpK.ap5kzyJYUBe0XPRg/

admin1:$apr1$8KpmN94R$KRkKghToPsRf9X4vCdhGB0

可以查看一下,系统中是没有admin用户的,这是http服务建立的

[root@fuwu conf.d]# id admin

id: admin: no such user

2)增加配置

mkdir /var/www/html/admin

vim /var/www/html/admin/index.html

改革春风吹满地admin

linux中的APACHE配置_第37张图片

vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html"

#    Require all granted

AuthUserFile /etc/httpd/userpass   #密码存放位置

AuthName "Input Name and Password" #登陆前提示语

AuthType basic                     #(最小化)基本模式

Require valid-user   #允许所有/etc/httpd/userpass里面的用户

#Require user admin  #只允许/etc/httpd/userpass里面的admin用户

linux中的APACHE配置_第38张图片

访问http://172.25.254.142/admin,需要密码登陆,输入刚才创建的用户和密码即可

linux中的APACHE配置_第39张图片

输入用户和密码:admin 和******

linux中的APACHE配置_第40张图片

七、apache支持的语言(html,php)

1.php

yum install php -y        #安装php包

linux中的APACHE配置_第41张图片

linux中的APACHE配置_第42张图片

清理环境:

linux中的APACHE配置_第43张图片

vim /var/www/html/index.php    #默认发布目录下写一个php文件(编写php测试页)

  

           phpinfo();

  ?>

linux中的APACHE配置_第44张图片

vim /etc/httpd/conf/httpd.conf

164     DirectoryIndex index.php index.html   ##将php文件加入到服务识别中linux中的APACHE配置_第45张图片

 

systemctl restart httpd.service

在客户端(210):

linux中的APACHE配置_第46张图片

 

2.cgi

cd /var/www/cgi-bin/

vim index.cgi  wq退出保存,不编辑

chmod +x index.cgi       #增加可执行权限

linux中的APACHE配置_第47张图片

vim index.cgi              #建立相关文件

 

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print `date`;              #表示执行date这个命令(脚本)

vim /etc/httpd/conf.d/a_default.conf

[root@fuwu cgi-bin]# cat /etc/httpd/conf.d/a_default.conf

    DocumentRoot "/var/www/html"
    CustomLog logs/default.log combined


    Options ExecCGI       #告诉系统可以执行index.cgi中的命令(脚本)

    AddHandler cgi-script .cgi   #识别的文件类型是cgi-script或以cgi结尾的

vim /etc/httpd/conf/httpd.conf

164     DirectoryIndex index.php index.html index.cgi

systemctl restart httpd.service

测试:可见执行了`date`这个命令,这里也可以是一个脚本执行后的结果

 

linux中的APACHE配置_第48张图片

[root@fuwu cgi-bin]# systemctl restart httpd

测试:

linux中的APACHE配置_第49张图片

3.其他

 

还支持jsp和asp,但不能直接使用,还需要中间键(程序)支持,如tomcat等。

 

 

八、https(ssl加密认证)

 

 

1.ssl制作与使用

vim /var/www/html/index.html

westso

yum install mod_ssl -y         #安装ssl认证模块

yum install crypto-utils -y     #安装ssl生成工具

genkey www.westos.com     #执行命令运行ssl生成工具进入文本化图形

 

加密大小选择1024即可,太大的话文件生成过程也会变长:

 

等待加密过程:

 

到这一步需要到发布服务的主机上不停的随机敲字母,否则进度条会一直停止不动。

具体原因与/dev/random文件有关,随机敲字母这个文件会随之增大:

 

是否加入CA认证(需要互联网|需要收费),选择否:

 

密码这里选择空-->Next,否则一会儿打开网页认证还需要输入此密码:

 

填写注册信息:

 

[root@desktop ~]# genkey www.redhat.com
                                ...
output will be written to /etc/pki/tls/certs/www.redhat.com.crt   #生成的证书位置
output key written to /etc/pki/tls/private/www.redhat.com.key    #生成的锁的位置
                               ...
vim /etc/httpd/conf.d/ssl.conf           #修改ssl配置文件,用下面内容替换原来行的内容,将新生成的证书和锁加进配置文件中

101 SSLCertificateFile /etc/pki/tls/certs/www.redhat.com.crt

109 SSLCertificateKeyFile /etc/pki/tls/private/www.redhat.com.key

systemctl restart httpd.service        #重启http服务

用https加密方式访问172.25.254.110服务器:

 

添加完认证证书就可以访问110主机发布的内容了

 

查看一下我们的ssl证书:

 

 

 

2.设定https虚拟主机和网页重写

1)设定https虚拟主机

vim /etc/httpd/conf.d/login.westos.conf

   #虚拟主机,与ssl加密服务同一个端口
        ServerName login.westos.com    #域名
        DocumentRoot /var/www/virtual/login    #服务发布目录
        CustomLog "logs/login.logs" combined    #日志存放目录
        SSLEngine on        #打开ssl加密
        SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key   #两个加密文件

mkdir -p /var/www/virtual/login

vim /var/www/virtual/login/index.html

ssl虚拟主机


systemctl restart httpd.service
vim /etc/hosts    #客户端主机做一个域名解析

172.25.254.110   login.westos.com

在客户端浏览器输入https://login.westos.com

 

2)网页重写

一般我们在访问一个域名的时候是不会在域名前面加一个https://的,

那如何保证访问的安全性呢?

用户访问百度的时候输入www.baidu.com,

等网页加载完成后的网址会变成https://www.baidu.com可以看到前面有一个 ssl认证(锁)的标识。

这里可以用网页重写来实现,用户不用在域名前面特意输入https://就能自动以https安全方式访问。

 

修改虚拟主机配置文件:

vim /etc/httpd/conf.d/login.redhat.conf


        ServerName login.westos.com
        DocumentRoot /var/www/virtual/login
        CustomLog "logs/login.logs" combined
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key

        #网页重写,客户端访问apache默认会访问80端口,因此重写也在这个端口
        ServerName login.westos.com
        RewriteEngine on    #打开网页重写功能
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]    #网页重写规则,^(/.*)$用户输入的内容;https://%{HTTP_HOST}转换成https格式;$1代表用户刚才输入的内容; [redirect=301]临时转换

 

systemctl restart httpd.service

可以看到输入login.westos.com的域名,等网页加载完毕变成了https的方式。

其实就是本身要访问默认80端口的服务却被重新定向到了443的ssl虚拟主机上,

并且强制以https方式访问内容。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux中的APACHE配置)