Centos+Apache实现多站点及强制https访问

简介: 本文介绍了如何通过Centos+Apache在一个服务器上搭建多个http站点,以及如何实现http访问时,强制跳转到https。

一、安装Apache和mod_ssl

1.1安装Apache服务

1.1.1查看当前安装的Apache服务

rpm -qa|grep httpd

e7ce373b985058964ea2494d13641fdd8e0dada8

1.1.2 若需要重新安装,需先卸载(不需要请跳过卸载步骤1.1)

1.1.2.1  停止httpd服务

service httpd stop

1.1.2.2  卸载httpd服务

 rpm -e httpd-2.4.6-45.el7.centos.4.x86_64 --nodeps

“httpd-2.4.6-45.el7.centos.4.x86_64”为1.1.1返回结果的最后一个包

1.1.2.3  验证是否卸载成功

rpm -qa|grep httpd

1.1.3 安装Apache

yum install httpd

1.2 安装 mod_ssl

1.1.1查看当前安装的mod_ssl

rpm -qa|grep mod_ssl

1.1.2 若需要重新安装,需先卸载(不需要请跳过卸载步骤)

1.1.2.1  卸载mod_ssl服务

 rpm -e mod_ssl-2.4.6-45.el7.centos.4.x86_64 --nodeps

“mod_ssl-2.4.6-45.el7.centos.4.x86_64”为1.1.1返回结果的最后一个包

1.1.2.3  验证是否卸载成功

rpm -qa|grep mod_ssl

1.1.3 安装mod_ssl

yum install mod_ssl

温馨提示:

apache服务启动停止命令:

service httpd start 启动

service httpd restart 重新启动

service httpd stop 停止服务

1.3上传web文件

cd  /var/www/html  //上传文件的路径

wget http://test.oss-cn-shenzhen.aliyuncs.com/web/index.html  //wget跟的网页文件的下载地址。

1.4访问测试

1.4.1 启动web 服务

service httpd start

1.4.2 浏览器输入服务器公网地址访问测试

二、配置一个服务器对应多个站点

2.1 新增站点配置文件目录

cd /etc/httpd

sudo mkdir vhost-conf.d

2.2  我们在 vhost-conf.d 目录下新增我们的虚拟主机配置文件 w1-test-com.conf 和 w2-test-com.conf,以 w1-test-com.conf 为例:

cd /etc/httpd/vhost-conf.d

vim w1-test-com.conf

粘贴内容如下:

<VirtualHost *:80>

    ServerName w1.test.com

    DocumentRoot /var/www/html/

    <Directory " /var/www/html/">

          Options FollowSymLinks

          AllowOverride All

          #Require all denied

          Require all granted

    </Directory>

</VirtualHost>

说明: 1. ServerName 为网站的正确访问域名

2. DocumentRoot 为网页文件本地路径

3. Directory为网页文件本地路径

其他内容不用更改。

针对 w2-test-com.conf 改变相应的配置,即修改 ServerName w2.test.comDocumentRoot Directory 修改为/var/www/web/

2.3在主配置中引入我们的虚拟主机配置

vim /etc/httpd/conf/httpd.conf

# 在主配置文件末尾添加以下内容

Include vhost-conf.d/*.conf

2.4:在对应目录放入项目代码

我们的 w1项目代码放在/var/www/html/,w2 项目代码放在/var/www/web/,w1的目录已经创建,还需要创建w2,那么我们在对应目录下创建对应目录并赋予相应权限:

sudo mkdir -p /var/www/web/

然后在/var/www/web/ 下放入项目代码,这里为了测试就新建 index.html,内容如下:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

</head>

<body>

<h1>Apache-centos-20170717-20170725</h1>

<h1>site-2</h1>

</body>

</html>

赋予相应的权限:

sudo chmod -R 777 /var/www/web/

2.5:修改 /etc/hosts 文件

vim /etc/hosts 文件,开头是:

127.0.0.1   localhost

我们在该行后面添加:

127.0.0.1   w1.test.com

127.0.0.1   w2.test.com

 

2.6:重启 apache 服务器并测试

重启 apache 服务器使得配置生效:

service httpd restart 重新启动

三、购买阿里云证书

3.1 购买证书

参考链接:https://help.aliyun.com/document_detail/28548.html?spm=5176.doc28542.6.554.ieFKC1的一二点,三四点可以忽略。

注意:

验证方式选择DNS时,需要在DNS添加证书要求的DNS记录。证书颁发下来之后,既可以下载到本地了。

四、配置HTTPS

4.1上传证书到对应的目录

public.pem /etc/pki/tls/certs/

214150120520385.key /etc/pki/tls/private/

chain.pem /etc/pki/tls/certs/

4.2  修改ssl.conf的配置文件

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

修改下列参数—引入证书路径:

SSLCertificateFile /etc/pki/tls/certs/public.pem

# 证书私钥配置

SSLCertificateKeyFile /etc/pki/tls/private/214150120520385.key

# 证书链配置,如果该属性开头有 '#'字符,请删除掉

SSLCertificateChainFile /etc/pki/tls/certs/chain.pem

修改下列参数—修改web站点文件目录:

DocumentRoot "/var/www/html"

ServerName w1.test.com:443

 

78ad482a29fa4c7f6243ad23f3f106e1af90e3e9

注意:需要重启阿帕奇服务器

五、验证HTTPS和多站点访问

http://w1.test.com

https://w1.test.com
http://w2.
test.com

六、实现强制HTTPS访问

6.1修改虚拟主机配置文件

vim /etc/httpd/vhost-conf.d/w1-test-com.conf

添加如下内容:

RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]

eebdf4ce4e99f6f7fc66775ea90ab62dd76e73e8

注意:需要重启阿帕奇服务器

6.2 验证

使用http访问网站,验证其是否会跳转到https。

基于ECS使用FileZilla Server建立安全的SSL/TLS FTP

Window server自带组件搭建FTP服务

目录
相关文章
|
4月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
368 1
|
6月前
|
安全 Linux 网络安全
如何在 CentOS 7 上为 Apache 创建 SSL 证书
如何在 CentOS 7 上为 Apache 创建 SSL 证书
94 0
|
4月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
66 1
|
6月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
6月前
|
安全 Java 应用服务中间件
在CentOS 7上安装Apache Tomcat 8的方法
在CentOS 7上安装Apache Tomcat 8的方法
199 0
|
6月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
274 0
|
6月前
|
关系型数据库 MySQL Linux
在 CentOS 7 服务器上安装和保护 phpMyAdmin 与 Apache 的方法
在 CentOS 7 服务器上安装和保护 phpMyAdmin 与 Apache 的方法
99 0
|
2月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
363 33
The Past, Present and Future of Apache Flink
|
4月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
982 13
Apache Flink 2.0-preview released
|
4月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
160 3