apache服务器中的virtualhost用来定义虚拟主机,我们可以在一个virtualhost中定义一个项目(网站),也可以使用反向代理的方式定义多个项目(即一个域名之下多个子项目)。以下总结apache服务器virtualhost常用配置。
1.常规配置
<virtualhost *:80>
documentroot "/var/www/html"
servername www.jkdev.cn
</virtualhost>
- documentroot:网站目录
- servername:网站域名
2.常用附加配置
<virtualhost *:80>
documentroot "/var/www/html"
servername localhost
<directory "/var/www/html">
options indexes followsymlinks
allowoverride all
require all granted
errordocument 404 https://www.jkdev.cn/404.html
</directory>
</virtualhost>
- directory节点:定义目录属性
- options indexes followsymlinks:开启目录访问,显示目录结构,并允许在此目录中使用符号连接
- allowoverride all:允许定义.htaccess文件
- allowoverride none:忽略.htaccess文件
- require all granted:允许所有请求
- errordocument 404 https://www.jkdev.cn/404.html:路径匹配时跳转的404界面
3.开启https
<virtualhost _default_:443> documentroot "/var/www/html" servername hook.jkdev.cn sslengine on sslcertificatefile /etc/ssl/2_hook.jkdev.cn.crt sslcertificatekeyfile /etc/ssl/3_hook.jkdev.cn.key sslcertificatechainfile /etc/ssl/1_root_bundle.crt <directory "/var/www/html"> options indexes followsymlinks allowoverride all require all granted errordocument 404 https://www.jkdev.cn/404.html </directory> </virtualhost>
- sslengine on:开启ssl
- sslcertificatefile:指定证书公钥文件
- sslcertificatekeyfile:指定证书私钥文件
- sslcertificatechainfile:指定证书链文件
4.反向代理(端口转发)
<virtualhost _default_:443> servername api.jkdev.cn sslengine on sslcertificatefile /etc/ssl/api/2_api.jkdev.cn.crt sslcertificatekeyfile /etc/ssl/3_api.jkdev.cn.key sslcertificatechainfile /etc/ssl/1_root_bundle.crt proxypreservehost on proxyrequests off proxypass /v2 http://localhost:92/ proxypass /v1 http://localhost:91/ proxypass / http://localhost:90/ proxypassreverse /v2 http://localhost:92/ proxypassreverse /v1 http://localhost:91/ proxypassreverse / http://localhost:90/ </virtualhost>
- proxypreservehost on:开启反向代理
- proxyrequests off:关闭正向代理
- proxypass:设置反向代理路径
- proxypassreverse:使apache自动处理反向代理中的从定向响应,一般和proxypass一起用
5.http从定向到https
<virtualhost *:80>
servername jkdev.cn
#redirect
rewriteengine on
rewritecond %{server_port} !^443$
rewriterule ^(.*)?$ https://%{server_name}$1 [l,r]
</virtualhost>
- rewriteengine on:开启从定向功能
- rewritecond %{server_port} !^443 :从定向条件,端口不是 443 时重定向 , 为 开头, :从定向条件,端口不是443时重定向,^为开头, :从定向条件,端口不是443时重定向,为开头,为结束
- rewriterule:重定向规则,l:表明当前规则是最后一条规则,停止分析以后规则的重写;r:强制外部重定向
到此这篇关于apache服务器virtualhost常用配置小结的文章就介绍到这了,更多相关apache virtualhost配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论