目录

Apache 服务器

apache https 配置

申请证书

➜ www.dadishe.com tree
.
├── Apache
│   ├── 1_root_bundle.crt
│   ├── 2_www.dadishe.com.crt
│   └── 3_www.dadishe.com.key
├── IIS
│   ├── keystorePass.txt
│   └── www.dadishe.com.pfx
├── Nginx
│   ├── 1_www.dadishe.com_bundle.crt
│   └── 2_www.dadishe.com.key
├── Tomcat
│   ├── keystorePass.txt
│   └── www.dadishe.com.jks
└── www.dadishe.com.zip

开启 Apache ssl mod

➜ apache2 apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2017-06-26T11:58:04
➜ apache2 sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

配置虚拟站点 参考配置

<VirtualHost *:80>
    ServerName www.dadishe.com
    Redirect permanent / https://www.dadishe.com
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /home/cky/cert/www.dadishe.com/apache/2_www.dadishe.com.crt
    SSLCertificateKeyFile /home/cky/cert/www.dadishe.com/apache/3_www.dadishe.com.key
    ServerName www.dadishe.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/www.dadishe.com.error.log
    CustomLog ${APACHE_LOG_DIR}/www.dadishe.com.access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Apache 虚拟主机配置

1、在主配置文件中中包含 Apache vitualHost 模块

Include conf/extra/httpd-vhosts.conf #apache2.2配置
IncludeOptional sites-enabled/*.conf #ubuntu apache2.4配置

2、将虚拟主机的文件目录设置为可以访问的

这里写图片描述

3、开启分布式文件.htaccess 可重写

AllowOverride  All # 主要是实现网站单入口访问!

4、写虚拟主机配置

000-default 文件配置

url 重写

http://www.example.com/USA/California/San_Diego
“/USA/California/San_Diego” 是能够Rewrite的字符串!
重写:就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等

.htaccess

RewriteEnine on
RewriteRule  ^/t_(.*).html$  /test.php?id = $1
#当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]
#当我们访问的地址不是以www.163.com开头的,那么执行下一条规则
RewriteCond %{HTTP_HOST} !^www.163.com [NC]
RewriteRule ^/(.*) http://www.163.com/ [L]

Apache Rewrite 规则修正符

1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联
如果规则匹配则正常处理,以下修正符无效
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

apache 相关的

http://blog.csdn.net/u013178760/article/details/45393183    Apache 2.4 Rewrite 模块
http://blog.csdn.net/u013178760/article/details/48436777    Apache2 虚拟主机配置

安装 apache

sudo apt-get install apache2

开启和关闭模块

sudo a2enmod rewrite #启用rewrite模块 
sudo a2dismod rewrite #禁用rewrite模块

开启和关闭站点

sudo a2ensite sitename #启用站点 
sudo a2dissite sitename #停用站点

允许使用.htaccess

AllowOverride None 改为 AllowOverride  All

重启|开启|关闭 apache 

sudo service apache2 restart|start|stop             重启|开启|关闭apache 
sudo  /etc/init.d/apache2 restart|start|stop       重启|开启|关闭apache

url 重写

http://www.example.com/USA/California/San_Diego  
“/USA/California/San_Diego” 是能够Rewrite的字符串!
重写:就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等

.htaccess

RewriteEnine on
RewriteRule  ^/t_(.*).html$  /test.php?id = $1#当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]#当我们访问的地址不是以www.163.com开头的,那么执行下一条规则
RewriteCond %{HTTP_HOST} !^www.163.com [NC]RewriteRule ^/(.*) http://www.163.com/ [L]

Apache Rewrite 规则修正符

1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联 如果规则匹配则正常处理,以下修正符无效
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

核心模块

core_module,so_module,http_module,mpm

全局配置指令

#表示apache2这个软件安装的目录
ServerRoot  "/usr/local/apache2"

#监听端口命令 Listen  ip:portListen  80

#加载动态模块,
LoadModule  模块名   模块路径
LoadModule  php5_module  modules/libphp5.so

#是否加载某个模块容器
<IfModule ></IfMoudle>

#设置先读取 index.php 文件
<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>

#留下管理员邮箱
ServerAdmin 1162097842@qq.com

#用于多个域名访问同一个ip时,辨别它们访问的主机
ServerName pms.com

#设置主机所有文档的根目录
DocumentRoot "/var/www/html"
# 默认目录访问的文件
DirectoryIndex index.html index.htm index.php

添加默认字符集  AddDefaultCharset GB2312
监听ip是192.168.1.1的地址和端口为80创建虚拟目录
Alias /down    "/sofТWare /download"   创建名为down的虚拟目录,它对应的物理路径是:/sofТWare /download
设置目录权限<Directory "目录路径">    此次写设置目录权限的语句        
Options FollowSymLinks  允许符号链接 Options Indexes         允许用户浏览网页目录,(不安全的设置,建议删除)      
AllowOverride None      不允许 .htaccess 重写这个目录,改为 All 则能重写
</Directory>

安装并配置 apache2.4

sudo apt-get install apache2
sudo vim /etc/apache2/apache2.conf
    // 将 <Directory /var/www/>
    // 改成 <Directory "你的目录">
sudo vim /etc/apache2/sites-available/000-default.conf
    // 将 DocumentRoot /var/www/html
    // 改成 DocumentRoot "你的目录"
sudo /etc/init.d/apache2 restart