linux的Apache服务器的安装与管理

一、Web服务器软件Apache的了解

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

二、安装配置Apache 服务器

root@localhost ~]# yum install httpd -y ##安装apache软件 
[root@localhost ~]# yum install httpd-manual.noarch -y ##安装使用手册 
[root@localhost ~]# systemctl start httpd 
[root@localhost ~]# systemctl stop firewalld 
[root@localhost ~]# cd /var/www/html/##默认发布目录 
[root@localhost html]# vim index.html##默认发布文件 
<h1>Hello World!</h1>

 测试访问 http:// 172.25.254.110

三、 Apache的配置文件的认识和修改

配置文件含义
/etc/httpd/conf主配置目录
/etc/httpd/conf/httpd.conf主配置文件
/etc/http/conf.d子配置目录
/etc/httpd/conf.d/*.conf子配置文件
/var/www/html默认发布目录
ndex.html默认发布文件
80默认监听端口
httpd_sys_content_t默认安全上下文
apache程序开启默认用户
/etc/httpd/logs/*apache日志

1.默认监听端口的修改

[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf   ##打开主配置文件
 42 Listen 8080  ##将端口修改为8080
[root@localhost ~]# systemctl restart httpd.service  ##重启服务

测试:

访问80端口

访问8080端口

2.默认发布目录的修改

[root@localhost html]# vim /etc/httpd/conf/httpd.conf 
163 <IfModule dir_module> 
164 DirectoryIndex test.html index.html    //该文件可以指定多个,有访问顺序,(此处的test.html不存在)
165 </IfModule> 
[root@localhost html]# vim test.html 
<h1>moren's page</h1> 
[root@localhost html]# systemctl restart httpd.service 

测试:

3.默认发布目录的修改

默认发布目录为/var/www/html     将其修改为/westos/html

[root@localhost html]# mkdir -p /westos/html
[root@localhost html]# vim /etc/httpd/conf/httpd.conf 

DocumentRoot "/westos/html"


<Directory "/westos">
       Require all granted
</Directory>

[root@localhost html]# cd /westos/html
[root@localhost html]# vim  index.html

<h1>/westos/html's page</h1>

测试:

无法访问,因为默认安全上下文不一样,selinux会阻止。

修改安全上下文

[root@localhost html]# ls -Zd /westos/html/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /westos/html/
[root@localhost html]# semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?' 
[root@localhost html]# restorecon -RvvF /westos/
[root@localhost html]#  systemctl restart httpd.service 

 

四、Apache内部主机的访问控制

1.基于ip的黑白名单设置

黑名单设置:

[root@localhost html]# mkdir linux
[root@localhost html]# cd linux/ 
[root@localhost linux]# vim index.html 
<h1>linux's page!</h1> 
[root@localhost linux]# vim /etc/httpd/conf/httpd.conf 

119 DocumentRoot "/var/www/html"
120 <Directory "/var/www">
121         Order Allow,Deny
122         Allow from All
123         Deny from 172.25.254.77  //拉黑ip为77的主机,其他ip都可以登陆看到
124 </Directory>
[root@localhost linux]# systemctl restart httpd.service

测试:

白名单设置:

[root@localhost linux]# vim /etc/httpd/conf/httpd.conf 

119 DocumentRoot "/var/www/html"
120 <Directory "/var/www">
121         Order Deny,Allow
122         Deny from All
123         Allow from 172.25.254.77  //除ip为77的主机以外,其他都不能看
124 </Directory>
[root@localhost linux]# systemctl restart httpd.service

测试:

2.基于用户的访问设置

[root@localhost linux]# cd  /etc/httpd/
[root@localhost httpd]# htpasswd -cm apacheuser admin    ##新建用户,-c会覆盖之前的内容,常用在第一次新建 
[root@localhost httpd]# htpasswd -m apacheuser admin1  ##新建用户admin1 
[root@localhost httpd]#cat apacheuser    ##查看用户  admin:$apr1$9T003JNg$Or4Uxty472pFINzO5C7E6/
admin1:$apr1$WCbuYBFo$yPGRtzFGUufqhQ9KniXuw1
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf    ##设置用户登录权限 

119 DocumentRoot "/var/www/html"
120 <Directory "/var/www/html/linux">
121         AuthUserFile /etc/httpd/apacheuser
122         AuthName "Please input user and password !"
123         AuthType basic  
124         Require user admin   //只有admin能够访问
125 </Directory>

[root@localhost httpd]# systemctl restart httpd.service 

 

测试:

存在的用户都可以登陆

[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf 

119 DocumentRoot "/var/www/html"
120 <Directory "/var/www/html/linux">
121         AuthUserFile /etc/httpd/apacheuser
122         AuthName "Please input user and password !"
123         AuthType basic  
124       # Require user admin  
125         Require valid-user   //存在的所有用户都可以登陆
126 </Directory>

[root@localhost httpd]# systemctl restart httpd.service 

 五、建立虚拟主机

1.先在本地做本地解析   (在真机上做)

vim /etc/hosts
 172.25.254.110 www.westos.com news.westos.com music.westos.com

2.将8080端口恢复为80端口,并且恢复之前的操作
 vim /etc/httpd/conf/httpd.conf
ServerName www.example.com:80     //恢复80端口
DocumentRoot "/var/www/html"        //打开访问的配置文件

3.给虚拟主机建立发布目录和页面

[root@localhost ~]# cd /etc/httpd/conf.d/
vim 1_default.conf
<VirtualHost _default_:80>
                DocumentRoot /var/www/html
                CustomLog logs/default.log combined
</VirtualHost>
[root@localhost ~]# mkdir -p /var/www/virtual/westos.com/news   ##建立发布目录
[root@localhost ~]# mkdir -p /var/www/virtual/westos.com/music
[root@localhost ~]# vim /var/www/virtual/westos.com/music/index.html   ##建立测试页 
<h1>music.westos.com</h1> 
[root@localhost ~]# vim /var/www/virtual/westos.com/news/index.html 
<h1>news.westos.com</h1>

 4.配置相对应的文件

[root@localhost ~]# vim music.conf
<VirtualHost *:80>
        ServerName music.westos.com
        DocumentRoot /var/www/virtual/westos.com/music/html
        CustomLog logs/music.log combined
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music">
        Require all granted
</Directory>
[root@localhost ~]# vim news.conf
<VirtualHost *:80>
        ServerName news.westos.com
        DocumentRoot /var/www/virtual/westos.com/news/html
        CustomLog logs/news.log combined
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news">
        Require all granted
</Directory>

 5.重启服务

systemctl restart httpd

六、Apache支持的语言

1.html语言

2.PHP语言

[root@localhost conf.d]# yum install php -y
[root@localhost conf.d]# cd /var/www/html/
[root@localhost html]# vim index.php
<?php
        phpinfo();
?>
[root@localhost html]# systemctl restart httpd

 测试:

172.25.254.120/index.html

3.cgi语言

[root@localhost html]# mkdir cgi
[root@localhost html]# semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
			#//将安全上下文该为一致”httpd_sys_script_exec_t“
[root@localhost html]#  restorecon -RvvF /var/www/html/cgi/
[root@localhost html]#  vim /var/www/html/cgi/index.cgi   //创建脚本
#!/usr/bin/perl
print   "Content-type: text/html\n\n";
print   `date`;
chmod +x /var/www/html/cgi/index.cgi #//给该命令执行权限
[root@localhost html]# /var/www/html/cgi/index.cgi     #//执行该脚本确保脚本正常运行
[root@localhost html]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim 1_default.conf
<VirtualHost _default_:80>
                DocumentRoot /var/www/html
                CustomLog logs/default.log combined
</VirtualHost>
<Directory "/var/www/html/cgi">
        Options +ExecCGI  #//该目录下的文件cgi都要执行
        AddHandler cgi-script .cgi  #//以cgi-script和 .cgi结尾的都要执行
</Directory>
[root@localhost conf.d]# systemctl restart httpd

 测试:

七、Apache安全证书的添加

[root@localhost conf.d]# yum install mod_ssl.x86_64 -y
[root@localhost conf.d]# yum install crypto-utils  -y
[root@localhost conf.d]# firewall-cmd --permanent --add-service=https
[root@localhost conf.d]# firewall-cmd --reload
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# genkey www.westos.com
[root@localhost conf.d]# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
[root@localhost conf.d]# systemctl restart httpd

1.安装软件crypto-utils   和  mod_ssl

2.配置相关文件

genkey www.westos.com

 

 

不停的敲击键盘,可以快速的完成

 

CSR  不发送

在认证书上填写信息

完成之后生成安全证书和钥匙

/etc/pki/tls/certs/www.westos.com.crt

/etc/pki/tls/private/www.westos.com.key

3.修改配置文件

vim /etc/httpd/conf.d/ssl.conf

100 SSLCertificateFile   /etc/pki/tls/certs/www.westos.com.crt
107 SSLCertificateKeyFile    /etc/pki/tls/private/www.westos.com.key

4.重启服务

systemctl restart httpd

5.测试:

获取证书

八、网页重写

[root@localhost conf.d]# cd /etc/httpd/conf.d
[root@localhost conf.d]# cp -p news.conf login.conf   //重命名
[root@localhost conf.d]# mkdir -p /var/www/html/virtual/westos.com/login/html
[root@localhost conf.d]# vim /var/www/html/virtual/westos.com/login/html/index.html

login'page

[root@localhost conf.d]# vim login.conf
<VirtualHost *:443>
        ServerName login.westos.com
        DocumentRoot /var/www/html/virtual/westos.com/login/html #//创建的目录复制过来
        CustomLog logs/login.log combined
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
<Directory "/var/www/html/virtual/westos.com/login/html/"> #//复制建立的目录
        Require all granted
</Directory>
<VirtualHost *:80>
        ServerName login.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>

[root@localhost conf.d]# systemctl restart httpd

 测试:

输入login.westos.com  自动调转至http://login.westos.com   并显示网页内容。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值