Web服务是Internet上最重要的服务之一,人们可以通过它访问网页、查找资料、发布信息。使用Web服务需要架设Web服务器,只有通过Web服务器才能实现与Internet的交流。本章将详细介绍如何在 Linux centos 7操作系统中利用Apache软件架设Web服务器的方法。
- 本来它只用于小型和试验网络,后来逐步扩充到各种UNIX系统中,尤其对Linux的支持相当完美。Apache拥有以下特性:
- 支持最新的HTTP通信协议。
- 拥有简单而强有力的基于文件的配置过程。
- 支持通用网关接口。
- 支持基于IP和基于域名的虚拟主机。
- 支持多种方式的HTTP认证。
- 集成Perl处理模块。
- 集成代理服务器模块。
- 支持实时监视服务器状态和定制服务器日志。
- 支持服务器端包含指令(SSI)。
- 支持安全Soceket层(SSL)。
- 提供用户会话过程的跟踪。
- 支持JSP、PHP、CGI和FastCGI。
- 通过第三方模块可以支持Java Servlets。
- 实现了动态对象的共享,允许在运行时动态装载功能模块。
Apache服务器的安装很简单,这里演示使用yum 源代码方式进行安装。在linux centos 7操作系统中,Apache服务器名为httpd
第一步:安装web服务
- yum install httpd -y
第二步:创建一个用来存放web页面内容的index.html文件(index.html是默认的可更改)
- mkdir -p /www/wwwroot/
把需要的内容放到index.html文件中
- echo Welcome to 2020…… > /www/wwwroot/index.html
第三步:修改web服务的配置文件
Apache的主配置文件/etc/httpd/conf/httpd.conf 配置文件包含各种影响服务器运行的配置选项
- vi /etc/httpd/conf/httpd.conf
将104行的Require all denied修改为Require all granted
将119行的DocumentRoot “/var/www/html“修改为DocumentRoot “/www/wwwroot“
“#”表示关闭此功能
第四步:重启服务
- systemctl stop httpd.service #暂停
- systemctl start httpd.service #运行
第五步:临时关闭selinux
- setenforce 0
重要: 查看状态:getenforce
setenforce 0
状态:Permissive
setenforce 1
状态:Enforcing
大功告成 测试
在centos 7 本身进行测试打开浏览器输入localhost或者ip地址即可
希望能在物理机访问需要关闭防火墙
- systemctl stop firewalld.service #关闭防火墙
在防火墙开启的情况下允许单独的web服务通过防火墙
- firewall-cmd –permanent –add-service=httpd
- firewall-cmd –reload
在物理机浏览器输入虚拟机centos的IP地址
- 节约成本 :利用虚拟主机技术可在一台计算机中建立多个虚拟主机,都分别提供Web服务,这样不必购买多台计算机,也不必另外安装线路,更不需要增加管理人员,所以就大大地节省了人力和物力。
- 稳定的性能
创建虚拟站点配置文件
用于设置访问的主机名和端口号,也可以设置为主机的IP地址。默认指定主机名为http://www.example.com,端口号为80。
- vi /etc/httpd/conf.d/virtual.conf
内容如下:
<VirtualHost 192.168.1.111:80>
ServerName x.qq.com
DocumentRoot “/qwer/abc”
</VirtualHost>
x.qq.com 是dns解析的域名地址 https://www.ddoslinux.com/forum.php?mod=viewthread&tid=62
“/qwer/abc”这一个目录是虚拟站点的index.html文件的存放目录
设置网站内容:
- echo 123456 > /qwer/abc/index.html
注:其中123456为内容
临时关闭selinux
- setenforce 0
访问测试:
为web单站点配置ssl证书服务(https)
安装证书服务
- yum install mod_ssl* -y
- mkdir /etc/httpd/ssl
生成密钥
- openssl genrsa -out service.key 1024
生成证书
- openssl req -new -x509 -key service.key -out service.crt
生成证书的过程需要填写如下内容,无需理会直接随便输入英文即可
Country Name (2 letter code) [XX]:随便输入
State or Province Name (full name) []:随便输入
Locality Name (eg, city) [Default City]:随便输入
Organization Name (eg, company) [Default Company Ltd]:随便输入
Organizational Unit Name (eg, section) []:随便输入
Common Name (eg, your name or your server’s hostname) []:随便输入
Email Address []:随便输入
编辑虚拟站点配置文件:
在/etc/httpd/conf.d文件夹里面创建virtual.conf文件,#用于设置访问的主机名和端口号,也可以设置为主机的IP地址。默认指定主机名为http://www.example.com,端口号为80。
“#”表示注释
如下内容:
<VirtualHost 192.168.1.200:80> #用于设置访问的主机名和端口号,也可以设置为主机的IP地址
DocumentRoot “/www/wwwroot” #指定Apache服务器默认存放网页文件的目录位置,这个值可以根据自己的需要进行更改,默认设置为/var/www/html目录
ServerName http://www.qq.com:443
<Directory “/www/wwwroot”>
AllowOverride None
# Allow open access:
Require all granted
</Directory>
</VirtualHost>#配置https模式
<VirtualHost 192.168.1.200:443> #用于设置访问的主机名和端口号,也可以设置为主机的IP地址
DocumentRoot “/www/wwwroot” #指定Apache服务器默认存放网页文件的目录位置,这个值可以根据自己的需要进行更改,默认设置为/var/www/html目录
ServerName http://www.qq.com:443
<Directory “/www/wwwroot”>
AllowOverride None
# Allow open access:
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/service.crt #证书存放路径
SSLCertificateKeyFile /etc/httpd/ssl/service.key #密钥存放路径
</VirtualHost>
Apache的服务概览如下:
- 服务类型:由Systemd启动的守护进程
- 配置单元: /usr/lib/systemd/system/httpd.service
- 守护进程: /usr/sbin/httpd
- 端口: 80(http), 443(https)
- 配置: /etc/httpd/
- Web文档: /var/www/
- 相关软件包: mod_ssl
- #systemctl start httpd.service \\启动apache
- #systemctl stop httpd.service \\停止apache
- #systemctl restart httpd.service \\重启apache
- #systemctl enable httpd.service \\设置apache开机启动
重要: 查看状态:getenforce
setenforce 0
状态:Permissive
setenforce 1
状态:Enforcing