修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. 建站
  4. 正文

Apache部署多网站(二级域名同理)

2019年10月16日 7369点热度 1人点赞 0条评论

Apache建站很容易,但是并不像IIS那样随便点几下就万事OK了,还是需要我们经过一些简单的配置才能正常运行。

对于Apache,我也仅仅是简单接触,最近研究了一下二级域名的配置方法,也是出于好奇吧,把我的配置过程分享一下,对于多网站,这个是完全同理的,因为多网站和二级域名都属于跨域操作。

file

1、配置httpd.conf

设置多个站点,我们需要设置Apache提供的VirtualHost功能,我在网上看了不少教程,有很多坑,我一个一个都试过了,最后找到适合我的方案。

首先打开httpd.conf,这个是Apache的配置文件,因系统不同,可能名称和路径都不相同,以自己电脑为准:

  • 我的配置:Apache/2.4.6 (CentOS)
vim /etc/httpd/conf/httpd.conf

打开后在大约80行的地方(如下图所示),找到'Main' server configuration

file

我看了很多网上的教程,都是什么直接解锁注释就OK了,很不幸,2.4.6版本已经没有注释的代码了。。。所以需要我们自己填写。不过这段注释文本已经写的很明白,我们照葫芦写即可。

所以其实这段代码不一定写在这里,不过我还是习惯在相关注释文本下写对应的代码块。将如下代码添加到此处,也就是上图的代码部分(88行开始)

其实这个就是默认配置,注释已经写明白,如果配置了<VirtualHost>,那么默认配置将会被覆盖,为了默认可以正常使用,我们需要把这段配置放在第一个。

# 这是默认站点配置
<VirtualHost *:80>
    ServerAdmin root@localhost
    ServerName localhost:80
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
        Options  Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 这是自定义的新站点配置
<VirtualHost *:80>
    ServerAdmin root@localhost  # 你的邮箱
    ServerName api.jeremyjone.com  # 该站点的访问域名
    DocumentRoot "/var/www/html2"  # 该站点文件路径
    <Directory "/var/www/html2">  # 该站点路径访问权限
        Options  Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

然后重启:

systemctl restart httpd

嗯,你没看错,他已经可以了。当然,不要忘记创建上面新建的/var/www/html2文件夹,并且声称一个index.html文件,这样,api.jeremyjone.com就可以访问了。我的测试效果如下:

file

它的确已经成功了,但是此时它显示的是"不安全",这个很头疼。因为它是新站点,需要重新配置SSL,所以,我们还需要配置一下SSL。

2、配置SSL.conf

同样的,打开vim /etc/httpd/conf.d/ssl.conf文件,不用细看,直接反倒最下面,他应该是以</VirtualHost>结尾,没有错,这个配置文档本身完完全全是为了我们的默认主站点配置的。我们现在只需要在下面创建一个新配置即可。

<VirtualHost *:443>
    DocumentRoot "/var/www/html2"
    ServerName api.jeremyjone.com
    SSLEngine on
    SSLCertificateFile 你的certificateFile文件
    SSLCertificateKeyFile 你的certificateKeyFile文件
    SSLCertificateChainFile 你的certificateChainFile文件
</VirtualHost>
  • SSL认证文件可以在各个云服务商免费索取。注意,免费的SSL认证只支持单个站点,即 www.jeremyjone.com 与 api.jeremyjone.com 不通用,需要单独索取。

嗯,同样就这么简单,他也配置好了,现在我们可以使用https://api.jeremyjone.com 访问我们的新站点了。

file

对于http跳转到https,还需要另外设置.htaccess文件,在/var/www/html2文件夹下创建一个新的.htaccess文件,把下列代码复制过去即可:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^api.jeremyjone.com [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/tz.php
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>

多个网站已经在像你招手了,快去试一下。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: Apache https 二级域名 服务器
最后更新:2019年10月16日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

文章目录
  • 1、配置httpd.conf
  • 2、配置SSL.conf
最新 热点 随机
最新 热点 随机
node-sass 的安装 解决端口被占的问题 vue3 组件 Props 的声明方式 给 div 添加选中状态 请求的取消 rgb 颜色小数兼容问题
windows中自定义图标不能正常显示 JavaScript 之 canvas(一) MySql的BLOB格式 IdentityServer4深入使用(三)-- Jwt CSS多元素不换行 .net core 中使用 websocket

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号