http服务和apache

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http服务和apache相关的知识,希望对你有一定的参考价值。

网页网络服务是一种被动访问的服务程序,只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的网络服务器会通过HTTP(超文本传输协议)或HTTPS(安全超文本传输协议)把请求的内容传送给用户。
??提供Web网络服务的程序有IIS,Nginx和Apache等。其中,IIS互联网信息服务是Windows系统中默认的Web服务程序,是图形化的网站管理工具,提供的Web网站服务,提供FTP,NMTP,SMTP等服务。IIS只能在视窗系统中使用

技术分享图片

Apache跨平台和安全性广泛被认可且拥有快速,可靠,简单的API扩展。Apache服务程序可以运行在Linux的系统,UNIX系统甚至是视窗系统中,支持基于IP,域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块,安全套接字层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。

网站服务程序

第1步:把光盘设备中的系统镜像挂载

mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom

第2步:使用Vim的文本编辑器创建荫仓库的配置文件

vim /etc/yum.repos.d/cdrom.repo
    [cdrom]
    name= cdrom
    baseurl=fille:///media/cdrom
    gpgcheck=0

第3步:安装Apache服务程序

yum install httpd -y

第4步:启用的httpd服务程序

systemctl start httpd
systemctl enable httpd
ln -s‘/usr/lib/systemd/system/httpd.service‘‘/etc/systemd/system/multi-user.target.wants/httpd.service‘
地址栏中输入http://127.0.0.1并按回车键,提供网络服务的httpd的服务程序的默认页面

配置服务文件参数

服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log

配置httpd服务

ServerRoot  服务目录
ServerAdmin 管理员邮箱
User    运行服务的用户
Group   运行服务的用户组
ServerName  网站服务器的域名
DocumentRoot    网站数据目录
Listen  监听的IP地址与端口号
DirectoryIndex  默认的索引页页面
ErrorLog    错误日志文件
CustomLog   访问日志文件
Timeout 网页超时时间,默认为300秒

虚拟网站主机功能

??利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。Apache的虚拟主机功能是服务器基于用户请求的不同IP地址、主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术,用户请求的资源不同,最终获取到的网页内容也各不相同

基于IP地址

如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的IP地址时,会访问到不同网站的页面资源
注意:在配置完毕并重启网卡服务之后,记得检查网络的连通性,确保三个IP地址均可正常访问

第1步:分别在/home/wwwroot中创建用于保存不同网站数据的3个目录,并向其中分别写入网站的首页文件
mkdir -p /home/wwwroot/10
mkdir -p /home/wwwroot/20
mkdir -p /home/wwwroot/30
echo "IP:192.168.10.10" > /home/wwwroot/10/index.html
echo "IP:192.168.10.20" > /home/wwwroot/20/index.html
echo "IP:192.168.10.30" > /home/wwwroot/30/index.html

第2步:httpd服务的配置文件追加写入三个基于IP地址的虚拟主机网站参数,保存退出,重启httpd服务
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
    ………………………………
     <VirtualHost 192.168.10.10>
     DocumentRoot /home/wwwroot/10
     ServerName www.linuxzhao.com
     <Directory /home/wwwroot/10 >
     AllowOverride None
     Require all granted
     </Directory>
     </VirtualHost>

     <VirtualHost 192.168.10.20>
     DocumentRoot /home/wwwroot/20
     ServerName bbs.linuxzhao.com
     <Directory /home/wwwroot/20 >
     AllowOverride None
     Require all granted
     </Directory>
     </VirtualHost>

     <VirtualHost 192.168.10.30>
     DocumentRoot /home/wwwroot/30
     ServerName tech.linuxzhao.com
     <Directory /home/wwwroot/30 >
     AllowOverride None
     Require all granted
     </Directory>
     </VirtualHost>
    ………………………………

第3步:使用restorecon命令让新设置的SELinux安全上下文立即生效
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
restorecon -Rv /home/wwwroot

基于主机域名

当服务器无法为每个网站都分配一个独立IP地址的时候,可以尝试让Apache自动识别用户请求的域名,从而根据不同的域名请求来传输不同的内容
注意:/etc/hosts是Linux系统中用于强制把某个主机域名解析到指定IP地址的配置文件

第1步:手工定义IP地址与域名之间对应关系的配置文件

vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10 www.linuxzhao.com bbs.linuxzhao.com tech.linuxzhao.com

第2步:分别在/home/wwwroot中创建用于保存不同网站数据的三个目录,并向其中分别写入网站的首页文件

mkdir -p /home/wwwroot/www
mkdir -p /home/wwwroot/bbs
mkdir -p /home/wwwroot/tech
echo "www.linuxzhao.com" > /home/wwwroot/www/index.html
echo "BBS.linuxzhao.com" > /home/wwwroot/bbs/index.html
echo "TECH.linuxzhao.com" > /home/wwwroot/tech/index.html

第3步:httpd服务的配置文件追加写入三个基于主机名的虚拟主机网站参数,保存退出,重启httpd服务
vim /etc/httpd/conf/httpd.conf
    ………………………………
    <VirtualHost 192.168.10.10>
    DocumentRoot "/home/wwwroot/www"
    ServerName "www.linuxzhao.com"
    <Directory "/home/wwwroot/www">
    AllowOverride None
    Require all granted
    </directory> 
    </VirtualHost>

    <VirtualHost 192.168.10.10>
    DocumentRoot "/home/wwwroot/bbs"
    ServerName "bbs.linuxzhao.com"
    <Directory "/home/wwwroot/bbs">
    AllowOverride None
    Require all granted
    </Directory>
    </VirtualHost>

    <VirtualHost 192.168.10.10>
    DocumentRoot "/home/wwwroot/tech"
    ServerName "tech.linuxzhao.com"
    <Directory "/home/wwwroot/tech">
    AllowOverride None
    Require all granted
    </directory>
    </VirtualHost>
    …………….………………

第4步:使用restorecon命令让新设置的SELinux安全上下文立即生效
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
restorecon -Rv /home/wwwroot

基于端口号

基于端口号的虚拟主机功能可以让用户通过指定的端口号来访问服务器上的网站资源

第1步:分别在/home/wwwroot中创建用于保存不同网站数据的两个目录,并向其中分别写入网站的首页文件

mkdir -p /home/wwwroot/6111
mkdir -p /home/wwwroot/6222
echo "port:6111" > /home/wwwroot/6111/index.html
echo "port:6222" > /home/wwwroot/6222/index.html

第2步:在httpd服务配置文件分别添加用于监听6111和6222端口的参数。

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf 
    ……………………………… 
     \#
     \# Listen: Allows you to bind Apache to specific IP addresses and/or
     \# ports, instead of the default. See also the <VirtualHost>
     \# directive.
     \#
     \# Change this to Listen on specific IP addresses as shown below to 
     \# prevent Apache from glomming onto all bound IP addresses.
     \#
     \#Listen 12.34.56.78:80
     Listen 80
     Listen 6111
     Listen 6222
    ……………………………… 

第3步:httpd服务的配置文件追加写入两个基于端口号的虚拟主机网站参数,保存退出,重启httpd服务

vim /etc/httpd/conf/httpd.conf
    ……………………………… 
    <VirtualHost 192.168.10.10:6111>
    DocumentRoot "/home/wwwroot/6111"
    ServerName www.linuxzhao.com
    <Directory "/home/wwwroot/6111">
    AllowOverride None
    Require all granted
    </Directory> 
    </VirtualHost>

    <VirtualHost 192.168.10.10:6222>
    DocumentRoot "/home/wwwroot/6222"
    ServerName bbs.linuxzhao.com
    <Directory "/home/wwwroot/6222">
    AllowOverride None
    Require all granted
    </Directory>
    </VirtualHost>
    ………………………………

第4步:使用restorecon命令让新设置的SELinux安全上下文立即生效
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*
restorecon -Rv /home/wwwroot/
#使用semanage命令查询并过滤出所有与HTTP协议相关且SELinux服务允许的端口列表
semanage port -l | grep http

第5步:将这两个端口号手动添加进去SELinux允许的与HTTP协议相关的端口号
semanage port -a -t http_port_t -p tcp 6111
semanage port -a -t http_port_t -p tcp 6222
semanage port -l| grep http

以上是关于http服务和apache的主要内容,如果未能解决你的问题,请参考以下文章

环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段

org.apache.http.NoHttpResponseException:目标服务器响应失败

接口-httpClient

安全漏洞 Apache Solr JMX服务远程代码执行漏洞

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段

如何在 Apache JClouds 中设置 HTTP 标头?