前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7-httpd虚拟主机

centos7-httpd虚拟主机

作者头像
yuezhimi
发布2020-09-30 12:14:30
4590
发布2020-09-30 12:14:30
举报
文章被收录于专栏:yuezhimiyuezhimi
Apache虚拟主机:

一台WEB服务器发布单个网站会非常浪费资源,所以一台WEB服务器上会发布多个网站,

在一台服务器上发布多网站,也称之为部署多个虚拟主机,WEB虚拟主机配置方法有三种:

    基于单IP多个Socket端口;

    基于多IP地址一个端口;

    基于单IP一个端口不同域名。

Apache WEB服务器安装:

1)安装apr:

代码语言:javascript
复制
[root@localhost src]# wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
[root@localhost src]# tar xf apr-1.5.2.tar.gz
[root@localhost src]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make && make install

2)安装apr-util:

代码语言:javascript
复制
[root@localhost src]# wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
[root@localhost src]# tar xf apr-util-1.5.4.tar.gz 
[root@localhost src]# cd apr-util-1.5.4
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.5.4]# make && make install

3)编译httpd-2.4:

代码语言:javascript
复制
[root@localhost src]# yum -y install pcre-devel openssl-devel libevent-devel
[root@localhost src]# wget http://archive.apache.org/dist/httpd/httpd-2.4.10.tar.bz2
[root@localhost src]# tar xf httpd-2.4.10.tar.bz2
[root@localhost src]# cd httpd-2.4.10
[root@localhost httpd-2.4.10]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-rewrite --enable-defalte --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
[root@localhost httpd-2.4.10]# make && make install

4)启动httpd:

代码语言:javascript
复制
[root@localhost ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh

基于一个端口不同域名配置:

1)创建虚拟主机配置文件httpd-vhosts.conf,该文件默认已存在,只需去掉httpd.conf主配置文件中#号即可

代码语言:javascript
复制
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf

2)配置虚拟主机:

代码语言:javascript
复制
[root@localhost ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf

3)创建虚拟主机发布目录:

[root@localhost ~]# mkdir -p /usr/local/apache/htdocs/{www1,www2} [root@localhost ~]# echo '<h1>www.a.com Pages</h1>' > /usr/local/apache/htdocs/www1/index.html [root@localhost ~]# echo '<h1>www.b.com Pages</h1>' > /usr/local/apache/htdocs/www2/index.html

4)创建tom用户: [root@localhost ~]# htpasswd -cm /usr/local/apache/conf/.htpasswd tom [root@localhost ~]# apachectl restart

 5)测试虚拟主机:

修改客户端hosts文件,域名能够解析到服务器ip

6)测试server-status:

7)测试www2访问权限:

https加密配置:

建立私有CA:

生成私钥:

代码语言:javascript
复制
[root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
代码语言:javascript
复制
#生成自签证书:

[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:bj
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:ym
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:www.a.com
Email Address []:admin@a.com
代码语言:javascript
复制
#提供辅助文件:
[root@localhost CA]# touch index.txt
[root@localhost CA]# echo 01 >serial
代码语言:javascript
复制
#生成私钥:
[root@localhost CA]# mkdir /usr/local/apache/ssl
[root@localhost CA]# cd /usr/local/apache/ssl
[root@localhost ssl]# (umask 077; openssl genrsa -out httpd.key 1024)
代码语言:javascript
复制
#生成证书请求:

[root@localhost ssl]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:bj
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:ym
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:www.a.com
Email Address []:admin@a.com
代码语言:javascript
复制
#CA签发证书:
[root@localhost ssl]# ls
httpd.csr  httpd.key
[root@localhost ssl]# openssl ca -in httpd.csr -out httpd.crt
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Nov  3 12:05:53 2017 GMT
            Not After : Nov  3 12:05:53 2018 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = bj
            organizationName          = ym
            organizationalUnitName    = Ops
            commonName                = www.a.com
            emailAddress              = admin@a.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                47:68:63:A8:C4:51:9E:E5:33:7A:CD:AF:72:8E:F9:C0:A1:01:92:D2
            X509v3 Authority Key Identifier: 
                keyid:76:96:79:13:59:48:85:EC:D6:FE:4D:C5:2D:29:24:E3:A9:24:6C:3D

修改配置文件,启用SSL模块:

代码语言:javascript
复制
[root@localhost ssl]# vim /usr/local/apache/conf/httpd.conf

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

SSL配置:

代码语言:javascript
复制
[root@localhost ssl]# vim /usr/local/apache/conf/extra/httpd-ssl.conf 
代码语言:javascript
复制
Listen 443
<VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache/htdocs/www1"
    ServerName www.a.com:443
    SSLCertificateFile /usr/local/apache/ssl/httpd.crt
    SSLCertificateKeyFile /usr/local/apache/ssl/httpd.key
    <Directory "/usr/local/apache/htdocs/www1">
        SSLOptions +StdEnvVars
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

https访问:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Apache虚拟主机:
  • Apache WEB服务器安装:
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档