企业级apach 配置(上)

Apache简介:

企业常用的web 服务器,用来对外提供http:// (超文本传输协议)。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

Apache的安装部署

1. 安装apache软件及手册

[root@apache-server ~]# yum install httpd -y

[root@apache-server ~]# yum install httpd-manual -y

2.开启apache

3.火墙策略(允许apache)

[root@apache-server ~]# firewall-config

4. 查看apache 服务的端口(80 端口)

5. 发布目录

 /var/www/html            apache的 / 目录,默认发布目录

 /var/www/html/index.html       apache的默认发布目录

测试:

apache的基础信息

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

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

ServerRoot "/etc/httpd" //用于指定 Apache 的运行目录

Listen 80 //监听端口

User apache 运行 apache //程序的用户和组

Group apache ServerAdmin root@localhost //管理员邮箱

DocumentRoot "/var/www/html" //网页文件的存放目录(默认发布目录)


<Directory "/var/www/html"> // <Directory> 语句块自定义目录权限

Require all granted

</Directory> ErrorLog "logs/error_log" //错误日志存放位置


AddDefaultCharset UTF-8 //默认支持的语言

IncludeOptional conf.d/*.conf   //加载其它配置文件
DirectoryIndex index.html   //默认主页(默认发布文件)名称

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

4. 默认端口 : 80

查看apache 的端口信息:
[root@apache-server html]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

修改默认端口:

[root@apache-server html]# vim /etc/httpd/conf/httpd.conf

42 Listen 8080

[root@apache-server html]# systemctl restart httpd.service
[root@apache-server html]# netstat -antlupe | grep httpd
tcp6       0      0 :::8080                 :::*                    LISTEN      0          51233      3281/httpd

5. 默认安全上下文:httpd_sys_content_t

6. 程序开启默认用户:apache

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

8. 默认发布文件:/var/www/html/index.html

更改默认发布文件:

[root@apache-server html]# vim /etc/httpd/conf/httpd.conf

164     DirectoryIndex  westos.html index.html

[root@apache-server html]# vim westos.html

<h1>westos.html</h1>
[root@apache-server html]# systemctl restart httpd.service

测试:

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

更改默认发布目录为 /westos/web/html :

[root@apache-server html]# mkdir -p /westos/web/html

[root@apache-server www]# cd /westos/web/html/
[root@apache-server html]# pwd
/westos/web/html
[root@apache-server html]# vim westos.html

<h1>westos.html</h1>

[root@apache-server html]# vim /etc/httpd/conf/httpd.conf

120 DocumentRoot "/westos/web/html/"
121 <Directory "/westos/web/html/">
122          Require all granted
123 </Directory>

[root@apache-server html]# setenforce 0
[root@apache-server html]# systemctl restart httpd.service

测试:

 

注意:在selinux 强制模式下,要更改apache的默认发布目录,还需对该目录的安全上下文进行更改。

[root@apache-server html]# semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
[root@apache-server html]# restorecon -RvvF /westos/[root@apache-server html]# getenforce
Enforcing


apache内部的访问控制

基于ip的访问控制

[root@apache-server html]# vim /etc/httpd/conf/httpd.conf

120 DocumentRoot "/westos/web/html/"
121 <Directory "/westos/web/html/">
122          Require all granted
123          Order Allow,Deny     ##先读allow 的限制,再读deny 的指定
124          Allow from ALL
125          Deny from ALL        ##允许所有人,又禁止所有人,即都禁止
126 </Directory>

[root@apache-server html]# systemctl restart httpd.service

测试:

测试:

基于用户的访问控制:

htpasswd 命令用于在 .htpasswd 文件中管理用户 :

htpasswd -cm authfile admin //第一次创建新的用户,需要加-c

htpasswd -m authfile admin1... //后面的都是额外添加的,不用-c,如果有-c就会重新创建用户,之前创建的就没了

修改配置文件,添加规则:
 

121 <Directory "/westos/web/html/">
122 #       Require all granted                               //允许所有人登陆,密码访问要注释掉
123         AUthUserFile /etc/httpd/conf/http_userlist     //认证文件
124         AuthName "Please input username and password !!"   //提示信息
125         AuthType basic                     //认证方式
126 #       Require user admin            //允许用户admin
127         Require valid-user                //允许所有有身份的用户
128 </Directory>

测试:

//重新打开网站,需要输入用户及认证密码

虚拟主机

虚拟主机允许您从一个 httpd 服务器同时为多个网站提供服务。
现在讲解基于名称的虚拟主机其中多个主机名都指向同一个 IP 地址 , 但是 Web 服务器根据用于到达站点的主机名提供具有不同内容的不同网站。

[root@apache-server conf.d]# vim a_default.conf
[root@apache-server conf.d]# vim music.conf
[root@apache-server conf.d]# vim news.conf

[root@apache-server conf.d]# cat a_default.conf
<VirtualHost _default_:80>
    DocumentRoot /var/www/html
    CustomLog  logs/default.log combined
</VirtualHost>
[root@apache-server conf.d]# cat music.conf
<VirtualHost *:80>
    ServerName music.westos.com    //指定站点名称
    DocumentRoot /var/www/westos.com/music/html        //站点默认发布目录
    CustomLog  logs/music.log combined     //站点日志混合型
</VirtualHost>
<Directory "/var/www/westos.com/music/html">
    Require all granted
</Directory>

[root@apache-server conf.d]# systemctl restart httpd.service

测试:

在测试机里进行本地解析

172.25.254.102  www.westos.com music.westos.com news.westos.com

可以看到当我们访问不同的web的服务器时,显示不同的界面但是这些都指向同一个IP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值