欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于Linux系统下Apache服务器的安装部署

程序员文章站 2022-03-15 23:44:54
...

一、Web服务器软件Apache简介

企业中常用的web服务,用来提供http://(超文本传输协议)。
web系统是客户端/服务器模式的,所以应该有服务器和客户端里两个部分。常用的服务器程序时Apache,常用的客户端程序是浏览器。www服从http协议,默认的TCP/IP端口是80,客户端和服务器的通信过程简述如下:

  • 客户端(浏览器)和web服务器建立TCP连接,然后向web服务器发出访问请求,根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息
  • web服务器受到请求后,将客户端要求的界面内容返回到客户端。如果出现错误,则返回错误代码
  • 断开与远端web服务器的连接

二、安装及配置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.105
基于Linux系统下Apache服务器的安装部署
http://172.25.254.105/manual/
基于Linux系统下Apache服务器的安装部署

三、Apache的基础信息

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

1.默认监听端口的修改

[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf 
 42 Listen 8080
[root@localhost ~]# systemctl restart httpd.service 

修改内容:将默认的80端口改为8080
基于Linux系统下Apache服务器的安装部署
测试:
默认的80端口已经无法访问
基于Linux系统下Apache服务器的安装部署
8080端口可以进行访问
基于Linux系统下Apache服务器的安装部署
2.默认发布文件的修改
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

[root@localhost html]# vim  /etc/httpd/conf/httpd.conf 
163 <IfModule dir_module>
164     DirectoryIndex test.html index.html  
165 </IfModule>
[root@localhost html]# vim test.html
<h1>This is test page !</h1>
[root@localhost html]# systemctl restart httpd.service 

具体修改内容如图:
基于Linux系统下Apache服务器的安装部署
测试:http://172.25.254.105
基于Linux系统下Apache服务器的安装部署
3.默认发布目录的修改
默认发布目录为/var/www/html 将其修改为/linux/html

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

注释掉原有的默认目录,然后加入/linux/html
基于Linux系统下Apache服务器的安装部署
编辑发布页面内容

[root@localhost html]# vim /linux/html/index.html
<h1>This is /linux/html/index.html</h1>

因为新建的目录和默认发布目录的安全上下文不同所以selinux会阻止其显示
基于Linux系统下Apache服务器的安装部署
更改安全上下文:

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t '/linux(/.*)?'
[root@localhost ~]# restorecon -RvvF /linux/
[root@localhost html]# systemctl restart httpd.service 

更改成功
基于Linux系统下Apache服务器的安装部署
测试:http://172.25.254.105/
基于Linux系统下Apache服务器的安装部署

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

1.基于ip的访问设置

[root@localhost html]# mkdir linux
[root@localhost html]# cd linux/
[root@localhost linux]# vim index.html
<h1>This is linux/index.htm</h1>
[root@localhost linux]# vim  /etc/httpd/conf/httpd.conf 

设置用户黑名单,编辑文件内容如图:
基于Linux系统下Apache服务器的安装部署
测试:在62主机连接http://172.25.254.105/linux
基于Linux系统下Apache服务器的安装部署
设置用户白名单,编辑文件内容如图:
基于Linux系统下Apache服务器的安装部署
测试:在62主机连接http://172.25.254.105/linux
基于Linux系统下Apache服务器的安装部署
2.基于用户的访问设置

[root@localhost linux]# cd  /etc/httpd/
[root@localhost httpd]# htpasswd -cm apacheuser admin##新建用户,-c会覆盖之前的内容,常用在第一次新建
[root@localhost httpd]# htpasswd -m apacheuser oldlee
[root@localhost httpd]#cat apacheuser ##查看用户
admin:$apr1$.G.eCumT$USvjvoduZHhU1ACy3Lszz1
oldlee:$apr1$ApxUCfvC$2WGdWcbF1Te4eBRNChP3C0
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf ##设置用户登录权限
[root@localhost httpd]# systemctl restart httpd.service 

允许admin用户登陆

基于Linux系统下Apache服务器的安装部署
测试:访问http://172.25.254.105/linux/
基于Linux系统下Apache服务器的安装部署
用admin用户登录:
基于Linux系统下Apache服务器的安装部署
用oldlee用户登录:
基于Linux系统下Apache服务器的安装部署
存在的用户都可登陆

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

基于Linux系统下Apache服务器的安装部署

五、建立虚拟主机

1.在测试主机做本地解析

[aaa@qq.com Desktop]# vim /etc/hosts  ##本地域名解析
172.25.254.105  www.westos.com  news.westos.com music.westos.com

基于Linux系统下Apache服务器的安装部署
2.给虚拟主机建立发布目录和页面

[aaa@qq.com conf.d]# mkdir -p /var/www/virtual/westos.com/news ##建立发布目录
[aaa@qq.com conf.d]# mkdir -p /var/www/virtual/westos.com/music
[aaa@qq.com ~]# vim /var/www/virtual/westos.com/music/index.html##建立测试页
<h1>music.westos.com</h1>
[aaa@qq.com ~]# vim /var/www/virtual/westos.com/news/index.html
<h1>news.westos.com</h1>

3.配置对应的文件

[aaa@qq.com ~]# cd /etc/httpd/conf.d/
[aaa@qq.com conf.d]# vim  default.conf
<VirtualHost _default_:80>    ##虚拟主机开启的端口
        DocumentRoot /var/www/html  ##虚拟主机默认发布目录  
        CustomLog "logs/default.log" combined  ##虚拟主机日志,/etc/httpd/logs/news.log,combined:4种混合类型日志
</VirtualHost>
[aaa@qq.com conf.d]# vim news.conf  ##指定域名news.westos.com的访问到指定默认发布目录中
<VirtualHost *:80>
        ServerName news.westos.com  ##指定站点名称
        DocumentRoot "/var/www/virtual/westos.com/news/" ##站点默认发布目录
        CustomLog "logs/news.log" combined ##站点日志,combined表示四种日志的集合
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news/"> ##给默认发布目录授权访问
        Require all granted                     ##所有用户均可访问
</Directory>
[aaa@qq.com conf.d]# vim music.conf
<VirtualHost *:80>
        ServerName music.westos.com
        DocumentRoot "/var/www/virtual/westos.com/music/"
        CustomLog "logs/music.log" combined
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music/">
        Require all granted
</Directory> 
[aaa@qq.com ~]# systemctl restart httpd.service        

测试验证:
在测试主机访问http://www.westos.com/
基于Linux系统下Apache服务器的安装部署
在测试主机访问http://www.news.com/
基于Linux系统下Apache服务器的安装部署
在测试主机访问http://music.westos.com/
基于Linux系统下Apache服务器的安装部署

六、Apache支持语言

1.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.service 

文件所写内容:
基于Linux系统下Apache服务器的安装部署
测试:http://172.25.254.105/index.php
基于Linux系统下Apache服务器的安装部署
2.CGI
[1].查看apache手册
基于Linux系统下Apache服务器的安装部署
[2].创建cgi脚本

[root@localhost html]# mkdir cgi
[root@localhost html]# vim cgi/index.cgi##创建脚本
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
[root@apache html]#chmod +x cgi/index.cgi ##给其可执行权限

脚本内容如图:
基于Linux系统下Apache服务器的安装部署
[3].创建转译文件

[aaa@qq.com cgi]# vim /etc/httpd/conf.d/default.conf
<Directory "/var/www/html/cgi">
        Options +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex index.cgi
</Directory>

内容如图所示:
基于Linux系统下Apache服务器的安装部署
在网页测试:http://172.25.254.105/cgi/
基于Linux系统下Apache服务器的安装部署

七、安全证书与网页重写

1.安装相关软件

[root@localhost conf.d]# yum install mod_ssl.x86_64 -y
[root@localhost conf.d]# yum install crypto-utils.x86_64 -y

2.进行配置

[root@localhost conf.d]# genkey www.westos.com

按照如下图示内容一步一步操作:
选择next,进入下一步
基于Linux系统下Apache服务器的安装部署
选择1024那行,快速
基于Linux系统下Apache服务器的安装部署
等待大约十秒
基于Linux系统下Apache服务器的安装部署
基于Linux系统下Apache服务器的安装部署
在这里需要不停地敲击键盘直到加载完成
基于Linux系统下Apache服务器的安装部署
不发送CSA,选择NO
基于Linux系统下Apache服务器的安装部署
选择Next
基于Linux系统下Apache服务器的安装部署
下图填写的信息,在下载证书的时候均可以查到
基于Linux系统下Apache服务器的安装部署
完成上述操作后会生成以下两个文件

基于Linux系统下Apache服务器的安装部署
3.修改配置文件

[aaa@qq.com conf.d]# ls
autoindex.conf  manual.conf  news.conf  README    tmprequest    welcome.conf
default.conf    music.conf   php.conf   ssl.conf  userdir.conf
[aaa@qq.com conf.d]# vim ssl.conf 
100 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
107 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
[aaa@qq.com conf.d]# systemctl restart httpd.service 

文件内容如图:
基于Linux系统下Apache服务器的安装部署
测试:访问https://www.westos.com/
选择红框的选项
基于Linux系统下Apache服务器的安装部署
获取证书
基于Linux系统下Apache服务器的安装部署
访问成功
基于Linux系统下Apache服务器的安装部署
4.网页重写

强制转换 http:// —–>https:// ,http默认端口80,https默认端口443

[aaa@qq.com conf.d]# pwd
/etc/httpd/conf.d
[aaa@qq.com conf.d]# vim login.conf
<VirtualHost *:443>
        ServerName login.westos.com
        DocumentRoot "/var/www/virtual/westos.com/login/"
        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/virtual/westos.com/login/">
        Require all granted
</Directory>

<VirtualHost *:80>
        ServerName login.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>              

编写内如图:
基于Linux系统下Apache服务器的安装部署
创建目录及测试页

[aaa@qq.com conf.d]# mkdir /var/www/virtual/westos.com/login -p
[aaa@qq.com conf.d]# vim  /var/www/virtual/westos.com/login/index.html
<h1>welcome to login's page!</h1>
[aaa@qq.com conf.d]# systemctl restart httpd.service 

在测试主机:

[aaa@qq.com Desktop]# vim /etc/hosts ##加入login.westos.com
172.25.254.105 www.westos.com  login.westos.com

访问 http://login.westos.com 或者 login.westos.com 自动跳转 https://login.westos.com
基于Linux系统下Apache服务器的安装部署

相关标签: apache