本文介绍: httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。Apache虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个Web服务,每个虚拟主机之间是独立的,互不影响。
一、准备工作
1.1 安装Apache服务器
#下载安装apache
yum install httpd -y
#启动apache服务
systemctl start httpd
systemctl enable httpd
#查看服务状态
netstat -lntp |grep http
1.2 Apache服务器上已经开启了443端口
443为HTTPS服务的默认端口
1.3 Apache服务器上已安装了mod_ssl.so模块
启用SSL功能,安装mod_ssl.so模块
yum install -y mod_ssl
1.4 获取SSL证书
二、配置apache
2.1 配置apache文件
vhost的域名配置文件.conf,在目录:/etc/httpd/conf.d
- HTTP配置:
Listen 80
# 指定域名
ServerName www.example.com
# 指定文档根目录
DocumentRoot /var/www/html
# 是否启用访问日志
CustomLog /var/log/httpd/access.log combined
# 指定错误日志路径
ErrorLog /var/log/httpd/error.log
# 配置虚拟主机
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/project
# 访问权限
<Directory /var/www/html/project>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
# 使用PHP解析器处理.php文件
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
# 定义PHP脚本的目录索引
DirectoryIndex index.php index.html
# 自定义错误页面
ErrorDocument 404 /error_404.html
# 设置HTTP头信息
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
</VirtualHost>
- HTTPS配置:
<VirtualHost *:443> DocumentRoot /var/www/html/project ServerName www.cpayfinance.com ServerAlias www.cpayfinance.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/cpayfinance.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/cpayfinance.com//privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/cpayfinance.com//chain.pem
# 访问权限
<Directory /var/www/html/project>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
# 使用PHP解析器处理.php文件
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
# 定义PHP脚本的目录索引
DirectoryIndex index.php index.html
# 自定义错误页面
ErrorDocument 404 /error_404.html
# 设置HTTP头信息
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block" </VirtualHost>
- HTTP & HTTPS 配置
Listen 80
# 指定域名
ServerName www.cpayfinance.com
# 指定文档根目录
DocumentRoot /var/www/html
# 是否启用访问日志
CustomLog /var/log/httpd/access.log combined
# 指定错误日志路径
ErrorLog /var/log/httpd/error.log
# 配置虚拟主机
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/project
# 访问权限
<Directory /var/www/html/project>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
# 使用PHP解析器处理.php文件
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
# 定义PHP脚本的目录索引
DirectoryIndex index.php index.html
# 自定义错误页面
ErrorDocument 404 /error_404.html
# 设置HTTP头信息
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html/project
ServerName www.cpayfinance.com
ServerAlias www.cpayfinance.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cpayfinance.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cpayfinance.com//privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/cpayfinance.com//chain.pem
# 访问权限
<Directory /var/www/html/project>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
# 使用PHP解析器处理.php文件
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
# 定义PHP脚本的目录索引
DirectoryIndex index.php index.html
# 自定义错误页面
ErrorDocument 404 /error_404.html
# 设置HTTP头信息
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
</VirtualHost>
- Apache 配置Https多个端口号映射
// 通过下方简单配置
<VirtualHost *:443>
<Location /b8082> //这个可以自定义名称
ProxyPass http://127.0.0.1:8081
ProxyPassReverse http://127.0.0.1:8081
</Location>
<Location /b8081>
ProxyPass http://127.0.0.1:8082
ProxyPassReverse http://127.0.0.1:8082
</Location>
<Location /b8081/a>
ProxyPass http://127.0.0.1:8083
ProxyPassReverse http://127.0.0.1:8083
</Location>
</VirtualHost>
2.2 生效配置文件
- 查看配置文件是否正常
# apachectl -t
Syntax OK
- 重启apache配置
systemctl restart httpd
原文地址:https://blog.csdn.net/GoodburghCottage/article/details/135553103
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_56746.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。