http 高级配置 虚拟主机,https 编译安装
http 高级配置 虚拟主机,https 编译安装
http 重定向 https
将http请求转发至https的URL,防止客户在访问网站的时候,使用http协议头,而不使用https。造成不安全的连接。但是这个方法存在一个问题,因为他的连接步骤是这个样子的。而且他不存在记录一说,用户每次使用http来访问,他都会重定向一次。

重定向
Redirect [status] URL-path URL
status状态:
Permanent:Returns a permanent redirect status (301) indicating thatthe resource has moved permanently
Temp:Returns a temporary redirect status (302). This is the default
配置示例:
vim /etc/httpd/conf.d/redirect.conf
Redirect temp / https://www.magedu.com/
HSTS
HSTS:HTTP Strict Transport Security
服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS。而无需任何网络过程。这样的话,只有第一次访问,才会是使用http协议,后面都自动默认https协议
实现HSTS示例:
vim /etc/httpd/conf.d/redirect.conf
Header always set Strict-Transport-Security "max-age=31536000"
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=302]
HSTS preload list
是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表。当你的网址加入该列表后,使用浏览器访问该网站,只会使用https协议。
http 自带的工具程序
htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具
apachectl:httpd自带的服务控制脚本,支持start和stop
rotatelogs:日志滚动工具
access.log -->
access.log, access.1.log -->
access.log, acccess.1.log, access.2.log
httpd的压力测试工具
httpd的压力测试工具
- ab, webbench, http_load, seige
- Jmeter 开源
- Loadrunner 商业,有相关认证
- tcpcopy:网易,复制生产环境中的真实请求,并将之保存
ab [OPTIONS] URL,来自httpd-tools包
- -n:总请求数
- -c:模拟的并行数
- -k:以持久连接模式测试
- ulimit –n # 调整能打开的文件数
实现状态页
#vim /etc/httpd/conf.d/test.conf
<Location "/status">
SetHandler server-status
Require all granted
</Location>
反向代理功能
启用反向代理
- ProxyPass "/" "http://www.example.com/"
- ProxyPassReverse "/" "http://www.example.com/"
特定URL反向代理
- ProxyPass "/images" "http://www.example.com/"
- ProxyPassReverse "/images" http://www.example.com/
示例:
<VirtualHost *>
ServerName www.magedu.com
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
虚拟主机
在一个物理服务上,搭建多个web站点,根据用户的访问。返回不同的站点
站点标识: socket
- IP相同,但端口不同
- IP不同,但端口均为默认端口
- FQDN不同: 请求报文中首部 Host: www.magedu.com
有三种实现方案:
- 基于ip:为每个虚拟主机准备至少一个ip地址
- 基于port:为每个虚拟主机使用至少一个独立的port
- 基于FQDN:为每个虚拟主机使用至少一个FQDN
注意:一般虚拟机不要与main主机混用;因此,要使用虚拟主机,一般先禁用main主机
禁用方法:注释中心主机的DocumentRoot指令即可
配置格式
<VirtualHost IP:PORT>
ServerName FQDN
DocumentRoot “/path"
</VirtualHost>
建议:上述配置存放在独立的配置文件中,不要写在http.conf中,方便管理
其它可用指令:
ServerAlias:虚拟主机的别名;可多次使用
ErrorLog: 错误日志
CustomLog:访问日志
<Directory “/path"> </Directory>
Alias
基于IP的虚拟主机配置
#给网卡添加多个地址
ip a add 192.168.30.11/24 dev eth0
ip a add 192.168.30.22/24 dev eth0
ip a add 192.168.30.33/24 dev eth0
<VirtualHost 192.168.30.11>
#虚拟主机的别名;可多次使用,目前是不起作用的
ServerName www.a.com
#指定根目录
DocumentRoot "/data/website1"
#错误日志
ErrorLog "logs/a.com-error_log"
#访问日志
TransferLog "logs/a.com-access_log"
</VirtualHost>
<VirtualHost 192.168.30.22>
#虚拟主机的别名;可多次使用,目前是不起作用的
ServerName www.b.com
#指定根目录
DocumentRoot "/data/website2"
#错误日志
ErrorLog "logs/b.com-error_log"
#访问日志
TransferLog "logs/b.com-access_log"
</VirtualHost>
<VirtualHost 192.168.30.33>
#虚拟主机的别名;可多次使用,目前是不起作用的
ServerName www.c.com
#指定根目录
DocumentRoot "/data/website3"
#错误日志
ErrorLog "logs/c.com-error_log"
#访问日志
TransferLog "logs/c.com-access_log"
</VirtualHost>
基于端口的虚拟主机配置
vim /etc/http/conf.d/vhost.conf
mkdir /data/website{1,2,3} -pv
echo www.a.com > /data/website1/index.html
echo www.b.com > /data/website2/index.html
echo www.c.com > /data/website3/index.html
多个网站就要使用多个不同的端口绑定
listen 81
listen 82
listen 83
创建虚拟主机
#要绑定的IP和端口号
<VirtualHost *:81>
#虚拟主机的别名;可多次使用,目前是不起作用的
ServerName www.a.com
#指定根目录
DocumentRoot "/data/website1"
#错误日志
ErrorLog "logs/a.com-error_log"
#访问日志
TransferLog "logs/a.com-access_log"
</VirtualHost>
#要分权限,配合虚拟主机目录使用
<Directory "/data">
Require all granted
</Directory>
将上述配置修改三份,对应上面的创建目录
建议:上述配置存放在独立的配置文件中,如果是在centos7 分配虚拟主机,一定要给目录权限!!!否则无法访问!!!一定要给目录权限!!!否则无法访问!!!
基于FQDN(主机头)的虚拟主机
靠主机头的HOST地址来区分,根据不同的主机头,来返回不同的网站
根据虚拟主机中定义的ServerName
<VirtualHost *:80>
#这就是指定的访问主机头
ServerName www.a.com
#指定根目录
DocumentRoot "/data/website1"
#错误日志
ErrorLog "logs/a.com-error_log"
#访问日志
TransferLog "logs/a.com-access_log"
</VirtualHost>
<VirtualHost *:80>
#这就是指定的访问主机头
ServerName www.b.com
#指定根目录
DocumentRoot "/data/website2"
#错误日志
ErrorLog "logs/b.com-error_log"
#访问日志
TransferLog "logs/b.com-access_log"
</VirtualHost>
<VirtualHost *:80>
#这就是指定的访问主机头
ServerName www.c.com
#指定根目录
DocumentRoot "/data/website3"
#错误日志
ErrorLog "logs/c.com-error_log"
#访问日志
TransferLog "logs/c.com-access_log"
</VirtualHost>
centos 6 上实现的时候有一点差别,如果要实现基于名称(主机头)的虚拟主机,要加上NameVirtualHost 这一行,否则无法实现。
centos 6 上实现的时候有一点差别,如果要实现基于名称(主机头)的虚拟主机,要加上NameVirtualHost 这一行,否则无法实现。
centos 6 上实现的时候有一点差别,如果要实现基于名称(主机头)的虚拟主机,要加上NameVirtualHost 这一行,否则无法实现。
这样就表示客户端 访问www.a.com就返回 a.com,访问b.com就返回b.com,访问c.com就返回c.com
在浏览器敲网址的时候,比如www.a.com ,他不仅仅是DNS解析,还会向服务器发送 HOST : www.a.com 的标记
如果是按网络地址(IP地址)来访问,那么是返回虚拟主机中的第一个,第一个就属于默认网站。
搭建Https
https = http + ssl
创建CA服务器
cd /etc/pki/CA
#生成CA私钥
(umask 077; openssl genrsa -out pirvate/cakey.pem 2048)
#创建自签名证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
echo 01 > serial
touch index.txt
为服务器申请证书
cd /etc/httpd/
mkdir certs
cd certs
#生成私钥
(umask 077;openssl genrsa -out httpd.key 2048)
#生成证书签署请求
openssl req -new -key httpd.key -out httpd.csr -days 3655
#签名
openssl ca -in httpd.csr -out httpd.crt -days 3655
web服务器安装ssl 模块
yum install mod_ssl
安装后会在/etc/pki/tls 下生成该包的一个私钥,一个自签名证书。
所以如果不自己搭建CA,是可以直接使用的
配置mod_ssl配置文件 ,在安装这个模块后,这个文件会自己生成
vim /etc/httpd/conf.d/ssl.conf
#修改成我们自己的CA
#指定证书
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
#指定私钥
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key
#指定CA的路径 默认该行是注释状态的
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem
重启服务
service httpd restart
注意:ssl会话只能基于IP创建,这意味着如果服务器仅有一个IP,那么仅为一个虚拟主机提供https服务
http 高级配置 虚拟主机,https 编译安装的更多相关文章
- centos5.5用phpstudy一键安装配置虚拟主机后,yum配置代理服务器squid
最近因为工作需要,开发站点需要在lamp环境下跑网站,于是在win7上跑虚拟机装了一个centos5.5的linux 并用集成环境配置了一个lamp环境,这里用的是phpstudy的一键安装包,并配置 ...
- Nginx安装及配置虚拟主机
nginx安装部分 依赖环境 yum -y install gcc zlib openssl-devel zlib-devel 1. 下载好下面两个包:nginx-1.8.1.tar.gz pcre- ...
- 快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机
Nginx安装和简单配置虚拟主机 1 Nginx简介 Nginx是近几年最火热的http.反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也可以用作邮件代理服务器.TCP/UDP代理服务器 ...
- Nginx安装、配置虚拟主机、反向代理、负载均衡
1. nginx安装 下载nginx: 官方网站: http://nginx.org/ 使用的版本是1.8.0版本. Nginx提供的源码. 1.1. 要求的安装环境 1.需要安装gcc的环境.y ...
- dedecms的安装以及为他配置虚拟主机
一.概念: 1.CMS是:Content Manage System 内容管理系统 内容包括:商品,文章,软件,视频 2.当前市面上常用的CMS有哪些? DedeCMS: 织梦 中小型公司 ...
- 高级NAT-DMZ配置 -虚拟主机配置
我家里另有一个网络摄像头,我想将公网IP映射到摄像头的IP,这样可以远程监控.以前没有光猫,用TP-Link做ADSL路由器,一点问题都没有. 现在破解了F420,在“高级NAT”-“DMZ配置”,或 ...
- nginx配置虚拟主机vhost的方法详解
Nginx vhost配置,可实现基于ip.端口号.servername的虚拟主机,同时可避免直接修改主配置文件.在nginx下配置虚拟主机vhost非常方便.这篇文章主要介绍了nginx配置虚拟主机 ...
- Ubuntu配置apache2.4配置虚拟主机遇到的问题
update: 偶然看到了 apache的更新说明,直接贴个地址过来吧. http://httpd.apache.org/docs/2.4/upgrading.html 最近想把web开发目录从/va ...
- Wampserver2.5配置虚拟主机出现403 Forbidden的处理方案
WampServer是一款由法国人开发的Apache Web服务器.PHP解释器以 及MySQL数据库的整合软件包.免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发.在windo ...
随机推荐
- linux别名防删除
最近有不相信rm -rf 了,虽然恢复了但是很难受啊 加个别名吧, 1.查看系统别名配置 alias 2.配置别名(临时生效) alias rm='echo do not use rm command ...
- hive与hbase关联
进入hbase: hbase shell 进入HIVE: hive hbase中建一张t_student_info表,添加两个列族 create 't_student_info','st1','st2 ...
- GraphQL实战经验和性能问题的解决方案
在现在的公司使用GraphQL有一段时间了. 现公司从创立之后的很长一段时间内是纯PHP的技术栈,前端.后端都在PHP代码中糅合在一起.新功能越加越多,页面越来越复杂之后,那些混在在PHP代码中的HT ...
- 从零开始的全栈工程师——js篇2.12(面向对象)
面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差. 所以作者就收到java和c的影响,往面向对象靠齐.Js天生有一个Object ...
- Flash图表控件FusionCharts调整图表百分比大小
用户可以为图表的宽度和高度设置百分比值,用来替代绝对的像素值. 以百分比的方式调整图表,首先需要更新HTML代码,如下所示: <div id="chartContainer" ...
- https 双向验证
服务器配置 服务器秘钥 服务器公钥证书 ,客户端公钥证书 客户端配置 客户端秘钥+密码 服务器公钥证书 目前android验证ok,pc浏览器添加客户端秘钥证书 ,访问还是失败,待继续查找资 ...
- 青松云安全-WAF-1.0.655 (ubuntu 14.04 server)
平台: Ubuntu 类型: 虚拟机镜像 软件包: web application firewall basic software security ubuntu waf 服务优惠价: 按服务商许可协 ...
- 重置 file input
有时用户上传相同附件时也需要触发input[type='file']的change事件,除了将form重置外,还可以将input的value设为空 <input type="file& ...
- Nginx+Keepalived双主轮询负载均衡
双主模式使用两个VIP,前段有2台服务器,互为主从,两台服务器同时工作,不存在资源浪费情况.同时在前端的DNS服务器对网站做多条A记录,实现了Nginx的负载均衡,当一台服务器故障时候,资源会转移到另 ...
- IOS 隐式动画(非Root Layer)
● 每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根 层) ● 所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动 ...