<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps技术分享 &#187; WEB</title>
	<atom:link href="http://www.showerlee.com/archives/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://www.showerlee.com</link>
	<description>与你共同学习运维开发</description>
	<lastBuildDate>Mon, 19 Oct 2020 05:51:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>CentOS6.9部署Python3+Flask+uWSGI+Nginx</title>
		<link>http://www.showerlee.com/archives/2024</link>
		<comments>http://www.showerlee.com/archives/2024#comments</comments>
		<pubDate>Wed, 18 Oct 2017 04:20:20 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Flask]]></category>
		<category><![CDATA[NGINX]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[python3]]></category>
		<category><![CDATA[uwsgi]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=2024</guid>
		<description><![CDATA[最近在业余时间去学习python web开发, 并用Flask做了一个BLOG小程序放到我的个人仓库和Gith [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;"><a href="http://www.showerlee.com/archives/2024/flask01"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2017/10/flask01.png" alt="flask01" width="432" height="204" class="alignnone size-full wp-image-2091" /></a><br />
</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	最近在业余时间去学习python web开发, 并用<a href="http://www.showerlee.com/archives/tag/flask" title="查看Flask中的全部文章" class="tag_link">Flask</a>做了一个BLOG小程序放到我的个人仓库和Github仓库, 这里把自己的文档分享给大家, 仅供参考
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<a href="https://github.com/showerlee/Flaskdev" target="_blank">https://github.com/showerlee/Flaskdev</a>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<a href="https://git.showerlee.com/showerlee/Flaskdev" target="_blank">https://git.showerlee.com/showerlee/Flaskdev</a>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;">安装环境</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	OS(virtualbox): CentOS 6.9 x64 (flask.example.com)
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	OS(localhost):&nbsp; Windows 7 x64&nbsp; &nbsp;
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Python: Python3.4/Python2.6.6
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/tag/flask" title="查看Flask中的全部文章" class="tag_link">Flask</a>: <a href="http://www.showerlee.com/archives/tag/flask" title="查看Flask中的全部文章" class="tag_link">Flask</a> 0.12.x
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	nWSGI:&nbsp;&nbsp;<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>-2.0.15
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Nginx:&nbsp; nginx-&nbsp;1.10.2-1.el6
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-family:Helvetica;font-size:16px;background-color:#FFFFFF;">一. 系统环境配置</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	1.关闭iptables和selinux
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"># su - root</span><span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># setenforce 0</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># vi /etc/sysconfig/selinux</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	修改
</p>
<pre class="prettyprint lang-bsh">SELINUX=disabled</pre>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;">2.添加本地host DNS</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># vi /etc/hosts</span>
</p>
<pre class="prettyprint lang-bsh">127.0.0.1    flask.example.com</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;">二. Python配置</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	1.安装<a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>.4源及依赖包
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># yum install epel-release -y</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum groupinstall "Development tools" -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	2.编译安装<a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>.4以及pip package manager
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# wget <a href="https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz" rel="nofollow">https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz</a> --no-check-certificate
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# tar xf Python-3.4.3.tar.xz
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd Python-3.4.3
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local --with-ensurepip=install
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	3.安装<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">virtualenv</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;pip install --upgrade pip
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;pip install virtualenv
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;">三. Nginx配置</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	1. 安装nginx package
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum install nginx -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	2.配置nginx with nWSGI
</p>
<p>
	<span>#&nbsp;vi /etc/nginx/conf.d/flask.conf</span>
</p>
<p>
	<span> </span>
</p>
<pre class="prettyprint">server {
    listen	 80;
    server_name  flask.example.com;  

    charset utf-8;

    access_log  /var/log/nginx/flask_access.log  main;
    error_log   /var/log/nginx/flask_error.log;


    location / { 
        try_files $uri @yourapplication; 
        client_max_body_size 32M;
    }
    location @yourapplication {
        include <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_params;
        <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_pass unix:/tmp/<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>.sock;       
        <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_read_timeout 30s;
        <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_send_timeout 30s;
    }
}</pre>
<p>
	
</p>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-family:Helvetica;font-size:16px;background-color:#FFFFFF;">四. <a href="http://www.showerlee.com/archives/tag/flask" title="查看Flask中的全部文章" class="tag_link">Flask</a>+uWSGI配置</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	1. uWSGI配置
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# mkdir -p /etc/<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# vi /etc/uwsgi/uwsgi.ini
</p>
<pre class="prettyprint">[uwsgi]
base = /usr/share/nginx/html/flask
 
python-path = %(base)
app = hello
module = %(app)
callable = app
 
pidfile = /tmp/uwsgi-master.pid
touch-reload = /etc/uwsgi/bin/reload
 
master = true
processes = 5
enable-threads = true
 
limit-as = 512
 
# use unix socket because it is more secure and faster than TCP socket
socket = /tmp/uwsgi.sock
chmod-socket = 660
uid = nginx
gid = nginx
 
vacuum = true
die-on-term = true
emperor = true
 
logto = /var/log/nginx/uwsgi.log</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	2. 配置<a href="http://www.showerlee.com/archives/tag/flask" title="查看Flask中的全部文章" class="tag_link">Flask</a> base folder
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd /usr/share/nginx/html
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# mkdir flask
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd flask
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# virtualenv -p /usr/local/bin/<a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a> .py3env
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	3. 开启virtualenv <a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>环境
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><span style="color:#111111;font-size:13px;">#&nbsp;source .py3env/bin/activate</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><span style="color:#111111;font-size:13px;">4. 在此环境安装Flask相关模块</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# pip install flask uwsgi&nbsp;PyMySQL flask-wtf passlib
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">5. 写入Flask测试文件</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# vi hello.py
</p>
<pre class="prettyprint lang-py">from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()</pre>
<p>
	
</p>
<p>
	6. 创建uWSGI启动脚本
</p>
<p>
	# mkdir -p /etc/uwsgi/bin
</p>
<p>
	# vi&nbsp;<span>/etc/uwsgi/bin/uwsgi.sh</span>
</p>
<p>
	<span> </span>
</p>
<pre class="prettyprint lang-bsh">#!/bin/bash
 
# Get function from functions library
. /etc/init.d/functions
 
BASE=/usr/share/nginx/html/flask
UWSGI=$BASE/.py3env/bin
INI=/etc/uwsgi
 
start() {
  echo -n "Starting server ..." 
  touch $INI/bin/reload
  $UWSGI/uwsgi --ini $INI/uwsgi.ini &gt;/dev/null 2&gt;&amp;1 &amp;
  success $"Started"
  echo
}
 
reload() {  
  $UWSGI/uwsgi --reload /tmp/uwsgi-master.pid
  success $ "Reloaded"
  echo
}
 
stop() {
  echo -n "Stopping server ..."
  $UWSGI/uwsgi --stop /tmp/uwsgi-master.pid
  success $ "Stopped"
  echo
}
 
### main logic ###
case "$1" in
  start) 
    start
    ;;
  stop)
    stop
    ;;
  reload)
    reload
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|reload}"
    exit 1
 
esac
exit 0</pre>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"></span>
</p>
<p>
	
</p>
<p>
	7. 修改权限<span style="color:#E53333;">(可执行并保持与nginx启动user一致)</span>
</p>
<p>
	# chmod -R 755 <span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/etc/uwsgi</span>
</p>
<p>
	# chown -R nginx:nginx <span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/etc/uwsgi</span>
</p>
<p>
	# chmod -R 755 /usr/share/nginx/html/flask
</p>
<p>
	# chown -R nginx:nginx /usr/share/nginx/html/flask
</p>
<p>
	
</p>
<p>
	8.启动nginx+uwsgi
</p>
<p>
	# service nginx start
</p>
<p>
	#&nbsp;/etc/uwsgi/bin/uwsgi.sh start
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	展示效果<span style="color:#E53333;">(保证Windows本地host文件能够解析flask.example.com)</span>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2024/flask"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2017/10/flask.png" alt="flask" width="483" height="164" class="alignnone size-full wp-image-2088" /></a>
</p>
<p>
	
</p>
<p>
	Finished...
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;font-size:18px;">Trouble shooting:</span>
</p>
<p>
	1.查看uwsgi log, 发现循环输出如下warning.
</p>
<p>
	# tail -f&nbsp;/var/log/nginx/uwsgi.log
</p>
<p>
	
</p>
<pre class="prettyprint lang-bsh">chdir(): Permission denied [core/emperor.c line 1499]
chdir(): Permission denied [core/emperor.c line 1499]
chdir(): Permission denied [core/emperor.c line 1499]
chdir(): Permission denied [core/emperor.c line 1499]
...</pre>
<p><span style="color:#337FE5;">Solution:</span> </p>
<p>
	
</p>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"># cd /usr/share/nginx/html</span>
</p>
<p>
	#&nbsp;<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">source .py3env/bin/activate</span>
</p>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"># python hellp.py</span>
</p>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"> </span>
</p>
<pre class="prettyprint lang-bsh"> * Running on <a href="http://127.0.0.1:5000/" rel="nofollow">http://127.0.0.1:5000/</a> (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 126-450-249</pre>
<p>
	
</p>
<p>
	若无报错提示并显示如上输出, ctrl+C 强制退出. 并重启服务, 该warning即停止.
</p>
<p>
	<span style="color:#E53333;">Tip:&nbsp; 该方法亦可测试你的主方法文件是否有语法格式错误.</span>
</p>
<p>
	#&nbsp;<span>/etc/uwsgi/bin/uwsgi.sh start</span>
</p>
<p>
	该错误会偶尔在开发过程中添加新方法后出现, 暂不清楚原因, 有经验的朋友可以留言.
</p>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"><br />
</span>
</p>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">My Flask APP for the reference:</span>
</p>
<p><a href="https://git.showerlee.com/showerlee/Flaskdev" rel="nofollow">https://git.showerlee.com/showerlee/Flaskdev</a></p>
<p>
	</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/2024">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOS6.9部署Python3+Flask+uWSGI+Nginx" href="http://www.showerlee.com/archives/2024">http://www.showerlee.com/archives/2024</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/2024/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos6.3下apache实现SSL虚拟主机双向认证</title>
		<link>http://www.showerlee.com/archives/1211</link>
		<comments>http://www.showerlee.com/archives/1211#comments</comments>
		<pubDate>Fri, 01 Aug 2014 07:16:21 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[WEB]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=1211</guid>
		<description><![CDATA[很久没有更新LAMP的相关文档了，刚好最近单位做项目需要用到apache的SSL虚拟主机双向认证，刚好之前在做 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	很久没有更新LAMP的相关文档了，刚好最近单位做项目需要用到apache的SSL虚拟主机双向认证，刚好之前在做LAMP的时候顺带做过SSL模块加载，SO参考了google大量文档，用了半天时间搞定，这里总结出来给大家分享一下。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp; &nbsp;该方案是为了实现apache下实现SSL虚拟主机双向认证，从而实现可信任用户才能访问具体虚拟站点，实现了数据加密以及双向可靠认证。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>我的博客新站已经建好，更多新的内容即将在新站更新。。</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>欢迎访问 &nbsp; &nbsp;&nbsp;</strong><a href="http://www.showerlee.com/"><strong><a href="http://www.showerlee.com" rel="nofollow">http://www.showerlee.com</a></strong></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LINUX操作系统: &nbsp;centOS6.3 64bit(安装系统默认开发包)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	APACHE: &nbsp; &nbsp; &nbsp; &nbsp; httpd-2.4.4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSL: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ssl.ca-0.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/08/1.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/1.jpg" alt="1" width="456" height="231" class="alignnone size-full wp-image-1212" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">解决方案:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>一.关闭iptables和SELINUX</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# setenforce 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/selinux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SELINUX=disabled
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>二.编译安装apache</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.安装pcre依赖包
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download" rel="nofollow">http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar -xzvf pcre-8.32.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd pcre-8.32
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/pcre
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.apache配置:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1).下载apache与apr编译包
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://archive.apache.org/dist/httpd/httpd-2.4.3-deps.tar.bz2" rel="nofollow">http://archive.apache.org/dist/httpd/httpd-2.4.3-deps.tar.bz2</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://archive.apache.org/dist/httpd/httpd-2.4.4.tar.bz2" rel="nofollow">http://archive.apache.org/dist/httpd/httpd-2.4.4.tar.bz2</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2).将apache与apr编译包整合
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:httpd-2.4.3-deps.tar.bz2已集成APR，安装apache前检查pcre是否安装成功.</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar jxvf httpd-2.4.4.tar.bz2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar jxvf httpd-2.4.3-deps.tar.bz2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp -rf httpd-2.4.3/* httpd-2.4.4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3).编译安装(加载mod_ssl模块)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd httpd-2.4.4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite &nbsp;-enable-ssl=static -with-ssl=/usr/local/ssl -enable-mods-shared=all --with-pcre=/usr/local/pcre/bin/pcre-config
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:编译过程中如果报错:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">----------------------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">checking for OpenSSL version &gt;= 0.9.7… FAILED</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">configure: WARNING: &nbsp;OpenSSL version is too old</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">no</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">checking whether to enable mod_ssl… &nbsp;configure: error: mod_ssl has been requested but can not be built due to &nbsp;prerequisite failures</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">-----------------------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">解决办法</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># yum install openssl-devel -y</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># yum update openssl -y</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>三.SSL单向认证配置</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.加载ssl配置文件:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/httpd.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	搜索"Include conf/extra/httpd-ssl.conf", 并将这行前面的"#"去掉
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.配置ssl:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/extra/httpd-ssl.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	搜索"shmcb:/usr/local/apache2/logs/ssl_scache(512000)",并将这行加"#"注释掉
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	确认以下几行配置无误:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Listen 443
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSLEngine on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSLCertificateFile "/usr/local/apache2/conf/server.crt"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SSLCACertificateFile "/usr/local/apache2/conf/ca.crt"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.证书配置:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1).下载并解压ssl证书生成压缩包:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /usr/local/apache2/conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://www.showerlee.com/down/ssl.ca-0.1.tar.gz" rel="nofollow">http://www.showerlee.com/down/ssl.ca-0.1.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf ssl.ca-0.1.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd ssl.ca-0.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2).利用ssl内脚本生成根证书:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./new-root-ca.sh &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	No Root CA key round. Generating one
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Generating RSA private key, 1024 bit &nbsp;long modulus
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	………………………++++++
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	….++++++
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	e is 65537 (0×10001)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Enter &nbsp;pass phrase for ca.key:&nbsp;<span style="color:#FF0000;">(输入一个密码)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Verifying – Enter pass phrase for ca.key: &nbsp;<span style="color:#FF0000;">(再输入一次密码)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	……
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Self-sign the root CA… (<span style="color:#FF0000;">签署根证书)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Enter pass phrase for &nbsp;ca.key:&nbsp;<span style="color:#FF0000;">(输入刚刚设置的密码)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	……..
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	……..&nbsp;<span style="color:#FF0000;">(下面开始签署)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Country Name (2 letter code) &nbsp;[MY]:<span style="color:#FF0000;">CN</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	State or Province Name (full name) [Perak]:<span style="color:#FF0000;">JiangSu</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Locality Name &nbsp;(eg, city) [Sitiawan]:<span style="color:#FF0000;">NanJing</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Organization Name (eg, company) [My Directory &nbsp;Sdn Bhd]:<span style="color:#FF0000;">example Co.,Ltd</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Organizational Unit Name (eg, section) &nbsp;[Certification Services Division]:<span style="color:#FF0000;">example</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Common Name (eg, MD Root CA) &nbsp;[]:<span style="color:#FF0000;">example</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Email Address []:<span style="color:#FF0000;"><a href="mailto:info@example.com">info@example.com</a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这样就生成了ca.key和ca.crt两个文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3).生成服务端证书:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./new-server-cert.sh server &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:证书名为server</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	……
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	……
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Country Name (2 letter code) [MY]:<span style="color:#FF0000;">CN</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	State or &nbsp;Province Name (full name) [Perak]:<span style="color:#FF0000;">JiangSu</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Locality Name (eg, city) &nbsp;[Sitiawan]:<span style="color:#FF0000;">NanJing</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Organization Name (eg, company) [My Directory Sdn &nbsp;Bhd]:<span style="color:#FF0000;">example Co.,Ltd</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Organizational Unit Name (eg, section) [Secure Web &nbsp;Server]:<span style="color:#FF0000;">example</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Common Name (eg, <a href="http://www.domain.com" rel="nofollow">http://www.domain.com</a>) &nbsp;[]:<span style="color:#FF0000;"><a href="http://www.example.com" rel="nofollow">http://www.example.com</a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Email Address &nbsp;[]:<span style="color:#FF0000;"><a href="mailto:info@example.com">info@example.com</a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这样就生成了server.csr和server.key这两个文件。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4).签署服务端证书:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# &nbsp;./sign-server-cert.sh server
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	CA signing: server.csr -&gt; &nbsp;server.crt:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Using configuration from ca.config
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Enter pass phrase for &nbsp;./ca.key:&nbsp;<span style="color:#FF0000;">(输入上面设置的根证书密码)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Check that the request matches the &nbsp;signature
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Signature ok
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	The Subject’s Distinguished Name is as &nbsp;follows
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	countryName &nbsp; RINTABLE:’<span style="color:#FF0000;">CN</span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stateOrProvinceName &nbsp; RINTABLE:’<span style="color:#FF0000;">JiangSu</span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	localityName &nbsp; RINTABLE:’<span style="color:#FF0000;">NanJing</span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	organizationName &nbsp; RINTABLE:’<span style="color:#FF0000;">example Co.,Ltd</span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	organizationalUnitName:PRINTABLE:’<span style="color:#FF0000;">example</span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	commonName &nbsp; RINTABLE:’<span style="color:#FF0000;"><a href="http://www.example.com" rel="nofollow">http://www.example.com</a></span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	emailAddress &nbsp;:IA5STRING:’<span style="color:#FF0000;"><a href="mailto:info@example.com">info@example.com</a></span>’
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Certificate is to be certified until Jul 16 &nbsp;12:55:34 2005 GMT (365 days)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Sign the certificate? [y/n]:<span style="color:#FF0000;">y</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1 out of 1 &nbsp;certificate requests certified, commit? [y/n]<span style="color:#FF0000;">y</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Write out database with 1 new &nbsp;entries
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Data Base Updated
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	CA verifying: server.crt &lt;-&gt; CA &nbsp;cert
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	server.crt: OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:如果这里出现错误，最好重新来过，删除ssl.ca-0.1这个目录，从解压缩处重新开始。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">下面要按照httpd-ssl.conf的设置，将证书放在适当的位置。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5).配置证书相关权限和路径:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /usr/local/apache2/conf/ssl.ca-0.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod 644 server.key server.crt ca.crt
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mv server.key ..
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mv server.crt ..
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mv ca.crt ..
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.配置https实现SSL虚拟主机单向加密
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1).加载虚拟主机配置文件：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/httpd.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	搜索"Include conf/extra/httpd-vhosts.conf", 并将这行前面的"#"去掉
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2).让www.example.com虚拟主机实现https访问
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加如下内容：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;VirtualHost *:443&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; DocumentRoot "/usr/local/apache2/htdocs/www.example.com/"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; ServerAlias <a href="http://www.example.com" rel="nofollow">http://www.example.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; SSLEngine on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; SSLCertificateFile "/usr/local/apache2/conf/server.crt"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; SSLCACertificateFile "/usr/local/apache2/conf/ca.crt"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/VirtualHost&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd /usr/local/apache2/htdocs
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir <a href="http://www.example.com" rel="nofollow">http://www.example.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd <a href="http://www.example.com/" rel="nofollow">http://www.example.com/</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# echo "this is a test SSL web page" &gt; index.html
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3).启动服务:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/apache2/bin/apachectl start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4).查看SSL端口是否打开:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# lsof -i:443
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	COMMAND &nbsp; &nbsp;PID &nbsp; USER &nbsp; FD &nbsp; TYPE &nbsp;DEVICE SIZE/OFF NODE NAME
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	httpd &nbsp; 125366 &nbsp; root &nbsp; &nbsp;6u &nbsp;IPv6 6351523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:https (LISTEN)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	httpd &nbsp; 125885 daemon &nbsp; &nbsp;6u &nbsp;IPv6 6351523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:https (LISTEN)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	httpd &nbsp; 125886 daemon &nbsp; &nbsp;6u &nbsp;IPv6 6351523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:https (LISTEN)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	httpd &nbsp; 125887 daemon &nbsp; &nbsp;6u &nbsp;IPv6 6351523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:https (LISTEN)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	httpd &nbsp; 125946 daemon &nbsp; &nbsp;6u &nbsp;IPv6 6351523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:https (LISTEN)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5).浏览器输入 <a href="https://www.example.com" rel="nofollow">https://www.example.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:需配置本机HOST文件</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如图:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/08/2.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/2.png" alt="2" width="648" height="147" class="alignnone size-full wp-image-1213" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>四.SSL双向认证配置:</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.为客户端生成一个证书:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/apache2/conf/ssl.ca-0.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./new-user-cert.sh client1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	No client1.key round. Generating one
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Generating RSA private key, 1024 bit long modulus
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	...........++++++
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	...++++++
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	e is 65537 (0x10001)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Fill in certificate data
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	You are about to be asked to enter information that will be incorporated
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	into your certificate request.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	What you are about to enter is what is called a Distinguished Name or a DN.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	There are quite a few fields but you can leave some blank
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	For some fields there will be a default value,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	If you enter '.', the field will be left blank.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Common Name (eg, John Doe) []:<span style="color:#FF0000;">client1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Email Address []:<span style="color:#FF0000;"><a href="mailto:info@example.com">info@example.com</a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	You may now run ./sign-user-cert.sh to get it signed
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.签署该证书:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./sign-user-cert.sh client1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	CA signing: client1.csr -&gt; client1.crt:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Using configuration from ca.config
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Enter pass phrase for ./ca.key:&nbsp;<span style="color:#FF0000;">（输入ca根认证密码）</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Check that the request matches the signature
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Signature ok
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	The Subject's Distinguished Name is as follows
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	commonName &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:PRINTABLE:'client1'
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	emailAddress &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:IA5STRING:'info@example.com'
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Certificate is to be certified until Aug &nbsp;8 08:41:51 2014 GMT (365 days)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Sign the certificate? [y/n]:<span style="color:#FF0000;">y</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1 out of 1 certificate requests certified, commit? [y/n]<span style="color:#FF0000;">y</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Write out database with 1 new entries
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Data Base Updated
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	CA verifying: client1.crt &lt;-&gt; CA cert
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	client1.crt: OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.将该客户端证书转换成浏览器可识别的.p12格式
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./p12.sh client1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Enter Export Password:&nbsp;<span style="color:#FF0000;">（输入ca根认证密码）</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Verifying - Enter Export Password:&nbsp;<span style="color:#FF0000;">(确认)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	The certificate for client1 has been collected into a pkcs12 file.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	You can download to your browser and import it.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ll client1.p12
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-rw-r--r-- 1 root root 2601 8月 &nbsp; 8 16:44 client1.p12
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.将该p12文件分发给可信任的客户端，实现双向证书加密功能
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:此处将该文件传送到本机作为示例，实际线上可以利用程序实现证书认证下载</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# sz client1.p12
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5.配置https实现SSL虚拟主机双向加密
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加如下内容：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;VirtualHost *:443&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;DocumentRoot "/usr/local/apache2/htdocs/www.example.com/"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;ServerAlias <a href="http://www.example.com" rel="nofollow">http://www.example.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;SSLEngine on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;SSLCertificateFile "/usr/local/apache2/conf/server.crt"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;SSLCACertificateFile &nbsp;"/usr/local/apache2/conf/ca.crt"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;SSLVerifyClient require
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;SSLVerifyDepth 10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/VirtualHost&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	6.测试结果
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1).使用Chrome浏览器输入 <a href="https://www.example.com" rel="nofollow">https://www.example.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	未导入客户端证书，提示SSL连接出错
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/08/3.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/3-1024x306.png" alt="3" width="1024" height="306" class="alignnone size-large wp-image-1214" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2).SO导入证书:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	a.windows下运行该证书文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/08/4.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/4.png" alt="4" width="165" height="122" class="alignnone size-full wp-image-1215" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	b.进入证书导入向导，一路下一步即可完成操作
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/08/5.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/5.png" alt="5" width="513" height="432" class="alignnone size-full wp-image-1216" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/6.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/6.png" alt="6" width="513" height="432" class="alignnone size-large wp-image-1217" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/7.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/7.png" alt="7" width="513" height="432" class="alignnone size-large wp-image-1218" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/8.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/8.png" alt="8" width="513" height="432" class="alignnone size-large wp-image-1219" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/9.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/9.png" alt="9" width="513" height="432" class="alignnone size-large wp-image-1220" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/10.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/10.png" alt="10" width="482" height="435" class="alignnone size-large wp-image-1221" /></a><span>&nbsp;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/08/11.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/11.png" alt="11" width="179" height="185" class="alignnone size-large wp-image-1222" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重新使用Chrome浏览器输入 <a href="https://www.example.com" rel="nofollow">https://www.example.com</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	提示
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<br />
<a href="http://www.showerlee.com/wp-content/uploads/2014/08/12.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/12.png" alt="12" width="440" height="260" class="alignnone size-full wp-image-1223" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/13.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/13.png" alt="13" width="915" height="622" class="alignnone size-full wp-image-1224" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/08/14.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/14-1024x148.png" alt="14" width="1024" height="148" class="alignnone size-large wp-image-1225" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	大功告成...</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/1211">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Centos6.3下apache实现SSL虚拟主机双向认证" href="http://www.showerlee.com/archives/1211">http://www.showerlee.com/archives/1211</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/1211/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows下实现wamp与tomcat环境整合</title>
		<link>http://www.showerlee.com/archives/1077</link>
		<comments>http://www.showerlee.com/archives/1077#comments</comments>
		<pubDate>Thu, 06 Feb 2014 07:23:01 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[wamp]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=1077</guid>
		<description><![CDATA[过年期间一直在研究PHP,好久没给大家更新文档了,刚好今天闲下来时间帮朋友解决一些系统环境方面问题时,关注了下 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	过年期间一直在研究PHP,好久没给大家更新文档了,刚好今天闲下来时间帮朋友解决一些系统环境方面问题时,关注了下如何实现<a href="http://www.showerlee.com/archives/tag/wamp" title="查看wamp中的全部文章" class="tag_link">wamp</a>与tomcat在windows下的测试环境整合,网上查了下杂七杂八的资料,各种凌乱,不过运气还好,用了一下午时间终于搞定,现将整合方法贴出来,供大家分享...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	windows下环境配置相对较linux下简单,这里我们就开始干活...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	操作系统: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Windows7_sp1_x64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	WAMP: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WampServer Version 2.4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	TOMCAT: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Apache-tomcat-7.0.50
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	jdk: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Jdk1.7.0_17
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	tomcat-connectors: &nbsp;tomcat-connectors-1.2.37-windows-x86_64-httpd-2.4.x
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:这个tomcat-connectors是一个压缩包,解压后有一个mod_jk.so的模块,可以理解为是apache的一个扩展模块,作用其实和我们平时使用WAMP或LAMP平台加载PHP扩展模块是一个道理,就是tomcat-connectors作为一个接口,让apache可以识别jsp语言,实现web页面解析,平时我们通常使用apache-tomcat这个通用web服务开启8080端口实现jsp解析,这里等于是apache去调用tomcat8080端口实现apache80端口jsp解析</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">刚好朋友想实现jsp和php同目录混编,利用这种方法即可实现.</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">之前实现apache-tomcat与apache对接的老方法是利用apache的代理功能,将访问80端口的请求统一跳转到tomcat的8080端口上,算是一种解决方案,但能否实现jsp和php同目录混编,有待进一步考证.</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	一.安装WAMP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	下载地址:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://optimate.dl.sourceforge.net/project/wampserver/WampServer%202/Wampserver%202.4/Wampserver2.4-x64.exe" target="_blank">http://optimate.dl.sourceforge.net/project/wampserver/WampServer%202/Wampserver%202.4/Wampserver2.4-x64.exe</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这个不用多讲了吧,各种无脑下一步,最后安装完毕,双击桌面的WampServer图标即可.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	二.安装jdk和apache-tomcat
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	下载地址:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-windows-x64.exe" target="_blank">http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-windows-x64.exe</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://mirror.esocc.com/apache/tomcat/tomcat-7/v7.0.50/bin/apache-tomcat-7.0.50.exe" target="_blank">http://mirror.esocc.com/apache/tomcat/tomcat-7/v7.0.50/bin/apache-tomcat-7.0.50.exe</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里建议将apache-tomcat安装到<a href="http://www.showerlee.com/archives/tag/wamp" title="查看wamp中的全部文章" class="tag_link">wamp</a>目录下
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如图:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/02/2.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/02/2.jpg" alt="2" width="798" height="553" class="alignnone size-full wp-image-1079" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	三.配置tomcat-connectors
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.下载匹配环境的tomcat-connectors,这里我们使用的是匹配apache2.4和win7_x64的版本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	下载地址:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.37-windows-x86_64-httpd-2.4.x.zip" target="_blank">http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.37-windows-x86_64-httpd-2.4.x.zip</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.下载完毕,将压缩包内的mod_jk.so解压到<a href="http://www.showerlee.com/archives/tag/wamp" title="查看wamp中的全部文章" class="tag_link">wamp</a>目录下apache的module目录中
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如图:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/02/1.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/02/1.jpg" alt="1" width="797" height="188" class="alignnone size-full wp-image-1078" /></a><span style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;line-height:21px;background-color:#FFFFFF;"></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.进入Tomcat文件夹下的conf目录,创建workers.properties文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	内容如下：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	workers.tomcat_home="E:\Program Files\<a href="http://www.showerlee.com/archives/tag/wamp" title="查看wamp中的全部文章" class="tag_link">wamp</a>\tomcat"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	workers.java_home="C:\Program Files\Java\jdk1.7.0_17"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker.list=ajp13
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker.ajp13.port=8009
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker.ajp13.type=ajp13
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker.ajp13.host=localhost
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker.ajp13.lbfactor=1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:workers.tomcat_home和workers.java_home分别为你的tomcat和jdk安装目录</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.配置tomcat的conf目录下的server.xml文件,修改tomcat默认根目录到WAMP的apache根目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	搜索"&lt;Host"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	将
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;Host name="localhost" &nbsp;appBase="webapps"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unpackWARs="true" autoDeploy="true"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	改成
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;Host name="localhost" &nbsp;appBase=<span style="color:#FF0000;">"H:\MyProject"</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unpackWARs="true" autoDeploy="true"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:这里的"H:\MyProject"为我自定义的apache的DocumentRoot根目录,安装好默认目录在E:\Program Files\<a href="http://www.showerlee.com/archives/tag/wamp" title="查看wamp中的全部文章" class="tag_link">wamp</a>\www下,这里请注意</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	并在该行下添加如下内容:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;Context path="" docBase="H:\MyProject"&gt;&lt;/Context&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	5.配置apache主配置文件,加载mod_jk.so模块
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:确保之前将下载的JK包中的mod_jk.so解压到apache的module目录下</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在E:\Program Files\wamp\bin\apache\Apache2.4.4\conf\http.conf中加入下面内容：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LoadModule jk_module modules/mod_jk.so
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	JkWorkersFile "E:/Program Files/wamp/tomcat/conf/workers.properties"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	JkLogFile "E:/Program Files/wamp/bin/apache/Apache2.4.4/logs/mod_jk.log"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	JkMount /*.jsp ajp13
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	JkMount /servlet/* ajp13
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	JkLogLevel info
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	6.重启tomcat与apache服务,测试jsp页面是否加载
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在<span style="color:#FF0000;">H:\MyProject</span>下创建test.jsp文件，内容如下：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;%@ page contentType="text/html;charset=gb2312" %&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;&lt;HTML&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;&lt;HEAD&gt;&lt;TITLE&gt;JSP测试页面&lt;/TITLE&gt;&lt;/HEAD&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;&lt;BODY&gt;&lt;%out.println("&lt;h1&gt;Hello World! &lt;/h1&gt;");%&gt;&lt;/BODY&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;&lt;/HTML&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	打开浏览器,访问如下页面
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://localhost/test.jsp" target="_blank">http://localhost/test.jsp</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://localhost/test.jsp" target="_blank">http://localhost:8080/test.jsp</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如图:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<br />
<a href="http://www.showerlee.com/wp-content/uploads/2014/02/3.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/02/3.jpg" alt="3" width="679" height="188" class="alignnone size-full wp-image-1080" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/02/6.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/02/6.jpg" alt="6" width="578" height="195" class="alignnone size-large wp-image-1081" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	测试成功,说明apache调用tomcat进行jsp页面解析成功...
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:这里需要保证tomcat与apache同时开启</span></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/1077">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="windows下实现wamp与tomcat环境整合" href="http://www.showerlee.com/archives/1077">http://www.showerlee.com/archives/1077</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/1077/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CentOS6.3下nginx性能调优</title>
		<link>http://www.showerlee.com/archives/873</link>
		<comments>http://www.showerlee.com/archives/873#comments</comments>
		<pubDate>Tue, 03 Sep 2013 08:20:07 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[NGINX]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=873</guid>
		<description><![CDATA[一.NGINX优化配置 1.主配置文件优化: # vi /usr/local/nginx/conf/nginx [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	一.<a href="http://www.showerlee.com/archives/tag/nginx" title="查看NGINX中的全部文章" class="tag_link">NGINX</a>优化配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.主配置文件优化:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/nginx/conf/nginx.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user nginx nginx;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker_processes 8;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	error_log &nbsp;<span style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;line-height:21px;background-color:#FFFFFF;">/usr/local/nginx/logs/</span>nginx_error.log &nbsp;crit;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pid &nbsp; &nbsp; &nbsp; &nbsp;/usr/local/nginx/logs/nginx.pid;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	worker_rlimit_nofile 204800;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	events
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;use epoll;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;worker_connections 204800;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	http {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; include &nbsp; &nbsp; &nbsp; mime.types;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; default_type &nbsp;application/octet-stream;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; log_format &nbsp;main &nbsp;'$remote_addr - $remote_user [$time_local] "$request" '
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'$status $body_bytes_sent "$http_referer" '
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'"$http_user_agent" "$http_x_forwarded_for"';
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; access_log &nbsp;logs/access.log &nbsp;main;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; charset &nbsp;utf-8;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; server_names_hash_bucket_size 128;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; client_header_buffer_size 32k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; large_client_header_buffers 4 32k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; client_max_body_size 20m;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; sendfile on;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; tcp_nopush on;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; keepalive_timeout 60;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;keys_zone=TEST:10m
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inactive=5m;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_connect_timeout 300;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_send_timeout 300;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_read_timeout 300;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_buffer_size 64k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_buffers 4 64k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_busy_buffers_size 128k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; fastcgi_temp_file_write_size 128k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; open_file_cache max=204800 inactive=20s;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; open_file_cache_min_uses 1;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; open_file_cache_valid 30s;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; tcp_nodelay on;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip on;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip_min_length &nbsp;1k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip_buffers &nbsp; &nbsp; 4 16k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip_http_version 1.0;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip_comp_level 2;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip_types &nbsp; &nbsp; &nbsp; text/plain application/x-javascript text/css application/xml;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; gzip_vary on;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	注:部分配置详解:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">worker_processes 8;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nginx进程数，建议按照cpu数目来指定，一般为它的倍数。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	为每个进程分配cpu，上例中将8个进程分配到8个cpu，当然可以写多个，或者将一个进程分配到多个cpu。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">worker_rlimit_nofile 204800;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这个指令是指当一个nginx进程打开的最多文件描述符数目，理论值应该是最多打开文件数（ulimit -n）与nginx进程数相除，但是nginx分配请求并不是那么均匀，所以最好与ulimit -n的值保持一致。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	注:这里需要设置 ulimit -SHn 204800
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">use epoll;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	使用epoll的I/O模型，这个不用说了吧。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">worker_connections 204800;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	每个进程允许的最多连接数，理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">keepalive_timeout 60;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalive超时时间。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">client_header_buffer_size 4k;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	客户端请求头部的缓冲区大小，这个可以根据你的系统分页大小来设置，一般一个请求的头部大小不会超过1k，不过由于一般系统分页都要大于1k，所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">open_file_cache max=102400 inactive=20s;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这个将为打开文件指定缓存，默认是没有启用的，max指定缓存数量，建议和打开文件数一致，inactive是指经过多长时间文件没被请求后删除缓存。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">open_file_cache_valid 30s;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这个是指多长时间检查一次缓存的有效信息。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">open_file_cache_min_uses 1;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	open_file_cache指令中的inactive参数时间内文件的最少使用次数，如果超过这个数字，文件描述符一直是在缓存中打开的，如上例，如果有一个文件在inactive时间内一次没被使用，它将被移除。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	二.内核参数的优化
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.备份初始内核参数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /etc/sysctl.conf /etc/sysctl.conf.bak
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.清空内核参数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cat /dev/null &gt; /etc/sysctl.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.配置内核参数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysctl.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.ip_forward = 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.conf.default.rp_filter = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.conf.default.accept_source_route = 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	kernel.sysrq = 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	kernel.core_uses_pid = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_syncookies = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	kernel.msgmnb = 65536
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	kernel.msgmax = 65536
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	kernel.shmmax = 68719476736
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	kernel.shmall = 4294967296
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_max_tw_buckets = 6000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_sack = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_window_scaling = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_rmem = 4096 &nbsp; &nbsp; &nbsp; &nbsp;87380 &nbsp; 4194304
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_wmem = 4096 &nbsp; &nbsp; &nbsp; &nbsp;16384 &nbsp; 4194304
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.core.wmem_default = 8388608
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.core.rmem_default = 8388608
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.core.rmem_max = 16777216
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.core.wmem_max = 16777216
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.core.netdev_max_backlog = 262144
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.core.somaxconn = 262144
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_max_orphans = 3276800
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_max_syn_backlog = 262144
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_timestamps = 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_synack_retries = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_syn_retries = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_tw_recycle = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_tw_reuse = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_mem = 94500000 915000000 927000000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_fin_timeout = 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.tcp_keepalive_time = 30
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	net.ipv4.ip_local_port_range = 1024 &nbsp; &nbsp;65000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	4.保存内核参数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# sysctl -p
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	注:部分配置详解:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_max_tw_buckets = 6000</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	timewait的数量，默认是180000。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.ip_local_port_range = 1024 &nbsp; &nbsp;65000</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	允许系统打开的端口范围。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_tw_recycle = 1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启用timewait快速回收。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_tw_reuse = 1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_syncookies = 1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	开启SYN Cookies，当出现SYN等待队列溢出时，启用cookies来处理。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.core.somaxconn = 262144</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128，而nginx定义的NGX_LISTEN_BACKLOG默认为511，所以有必要调整这个值。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.core.netdev_max_backlog = 262144</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	每个网络接口接收数据包的速率比内核处理这些包的速率快时，允许送到队列的数据包的最大数目。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_max_orphans = 262144</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字，孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击，不能过分依靠它或者人为地减小这个值，更应该增加这个值(如果增加了内存之后)。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_max_syn_backlog = 262144</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言，缺省值是1024，小内存的系统则是128。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_timestamps = 0</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_synack_retries = 1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	为了打开对端的连接，内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_syn_retries = 1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在内核放弃建立连接之前发送SYN包的数量。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_fin_timeout = 1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如果套接字由本端要求关闭，这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接，甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒，你可以按这个设置，但要记住的是，即使你的机器是一个轻载的WEB服务器，也有因为大量的死套接字而内存溢出的风险，FIN- WAIT-2的危险性比FIN-WAIT-1要小，因为它最多只能吃掉1.5K内存，但是它们的生存期长些。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">net.ipv4.tcp_keepalive_time = 30</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	当keepalive起用的时候，TCP发送keepalive消息的频度。缺省是2小时。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	三.FastCGI参数优化
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这个指令为FastCGI缓存指定一个路径，目录结构等级，关键字区域存储时间和非活动删除时间。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_connect_timeout 300;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	指定连接到后端FastCGI的超时时间。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_send_timeout 300;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	向FastCGI传送请求的超时时间，这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_read_timeout 300;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	接收FastCGI应答的超时时间，这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_buffer_size 16k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	指定读取FastCGI应答第一部分需要用多大的缓冲区，这里可以设置为fastcgi_buffers指令指定的缓冲区大小，上面的指令指定它将使用1个16k的缓冲区去读取应答的第一部分，即应答头，其实这个应答头一般情况下都很小（不会超过1k），但是你如果在fastcgi_buffers指令中指定了缓冲区的大小，那么它也会分配一个fastcgi_buffers指定的缓冲区大小去缓存。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_buffers 16 16k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答，如上所示，如果一个php脚本所产生的页面大小为256k，则会为其分配16个16k的缓冲区来缓存，如果大于256k，增大于256k的部分会缓存到fastcgi_temp指定的路径中，当然这对服务器负载来说是不明智的方案，因为内存中处理数据速度要快于硬盘，通常这个值的设置应该选择一个你的站点中的php脚本所产生的页面大小的中间值，比如你的站点大部分脚本所产生的页面大小为256k就可以把这个值设置为16 16k，或者4 64k 或者64 4k，但很显然，后两种并不是好的设置方法，因为如果产生的页面只有32k，如果用4 64k它会分配1个64k的缓冲区去缓存，而如果使用64 4k它会分配8个4k的缓冲区去缓存，而如果使用16 16k则它会分配2个16k去缓存页面，这样看起来似乎更加合理。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_busy_buffers_size 32k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这个指令我也不知道是做什么用，只知道默认值是fastcgi_buffers的两倍。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_temp_file_write_size 32k;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在写入fastcgi_temp_path时将用多大的数据块，默认值是fastcgi_buffers的两倍。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache TEST
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	开启FastCGI缓存并且为其制定一个名称。个人感觉开启缓存非常有用，可以有效降低CPU负载，并且防止502错误。但是这个缓存会引起很多问题，因为它缓存的是动态页面。具体使用还需根据自己的需求。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache_valid 200 302 1h;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache_valid 301 1d;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache_valid any 1m;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	为指定的应答代码指定缓存时间，如上例中将200，302应答缓存一小时，301应答缓存1天，其他为1分钟。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache_min_uses 1;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	缓存在fastcgi_cache_path指令inactive参数值时间内的最少使用次数，如上例，如果在5分钟内某文件1次也没有被使用，那么这个文件将被移除。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	fastcgi_cache_use_stale error timeout invalid_header http_500;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	不知道这个参数的作用，猜想应该是让nginx知道哪些类型的缓存是没用的。 以上为nginx中FastCGI相关参数，另外，FastCGI自身也有一些配置需要进行优化，如果你使用php-fpm来管理FastCGI，可以修改配置文件中的以下值：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;value name="max_children"&gt;60&lt;/value&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	同时处理的并发请求数，即它将开启最多60个子线程来处理并发连接。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;value name="rlimit_files"&gt;102400&lt;/value&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最多打开文件数。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;value name="max_requests"&gt;204800&lt;/value&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	每个进程在重置之前能够执行的最多请求数。
</p>
<p>
	</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/873">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOS6.3下nginx性能调优" href="http://www.showerlee.com/archives/873">http://www.showerlee.com/archives/873</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/873/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CentOs6.3下配置nginx加载ngx_pagespeed模块</title>
		<link>http://www.showerlee.com/archives/858</link>
		<comments>http://www.showerlee.com/archives/858#comments</comments>
		<pubDate>Mon, 02 Sep 2013 09:34:39 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[NGINX]]></category>
		<category><![CDATA[NGINX，ngx_pagespeed]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=858</guid>
		<description><![CDATA[ngx_pagespeed 是一个 Nginx 的扩展模块，可以加速你的网站，减少页面加载时间，它会自动将一些 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">ngx_pagespeed 是一个 Nginx 的扩展模块，可以加速你的网站，减少页面加载时间，它会自动将一些提升web性能的实践应用到网页和相关的资源（CSS、JS和图片）上，无需你修改内容和流程。</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">功能包括：</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">图片优化: stripping meta-data, dynamic resizing, recompression</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">CSS &amp; JavaScript 压缩、合并等</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">小资源的内联</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">推迟图片和 JS 的加载</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">HTML 重写</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">延长缓存扩展</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">-----------------------------------------------</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">系统环境: &nbsp; CentOS6.3 x64</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">NGINX: &nbsp; &nbsp; &nbsp;nginx-1.4.1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">pagespeed: &nbsp;ngx_pagespeed-1.6.29.5</span>
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">一.部署环境：</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">1.关闭iptables和SELINUX</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># service iptables stop</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># setenforce 0</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># vi /etc/sysconfig/selinux</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">---------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">SELINUX=disabled</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">---------------</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">2.安装依赖包</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># yum install gcc-c++ pcre-devel zlib-devel zip wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">3.同步时间</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># ntpdate asia.pool.ntp.org</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">二.安装ngx_pagespeed</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">1.配置ngx_pagespeed</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># wget <a href="https://github.com/pagespeed/ngx_pagespeed/archive/release-1.6.29.5-beta.zip" rel="nofollow">https://github.com/pagespeed/ngx_pagespeed/archive/release-1.6.29.5-beta.zip</a></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># unzip release-1.6.29.5-beta.zip</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># cd ngx_pagespeed-release-1.6.29.5-beta/</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">2.配置psol模块</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># wget <a href="https://dl.google.com/dl/page-speed/psol/1.6.29.5.tar.gz" rel="nofollow">https://dl.google.com/dl/page-speed/psol/1.6.29.5.tar.gz</a></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># tar -xzvf 1.6.29.5.tar.gz</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">三.安装nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">1.安装前的配置</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">先添加nginx用户和用户组</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># groupadd nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># useradd -g nginx -s /bin/false -M nginx</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">2.解压编译源码包，这里采用最新的源码包1.4.1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># wget <a href="http://nginx.org/download/nginx-1.4.1.tar.gz" rel="nofollow">http://nginx.org/download/nginx-1.4.1.tar.gz</a></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># tar -xvzf nginx-1.4.1.tar.gz</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># cd nginx-1.4.1/</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock &nbsp;--user=nginx --group=nginx --with-http_ssl_module --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-debug --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi&nbsp;<span style="color:#E53333;">--add-module=$HOME/ngx_pagespeed-release-1.6.29.5-beta</span></span>
</p>
<p>
	
</p>
<p>
	<span style="color:#E53333;font-size:14px;font-family:SimSun;background-color:#FFFFFF;">注：--add-module=$HOME/ngx_pagespeed-release-1.6.29.5-beta为编译时加载ngx_pagespeed模块</span>
</p>
<p>
	<span style="color:#E53333;font-size:14px;font-family:SimSun;background-color:#FFFFFF;">&nbsp; &nbsp;这将使用二进制PageSpeed优化库，但它也有可能建立从源PSOL</span>
</p>
<p>
	<span style="color:#E53333;font-size:14px;font-family:SimSun;background-color:#FFFFFF;">&nbsp; &nbsp;ngx_pagespeed目前不支持Windows或MacOS因为不底层PSOL库。</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># make &amp;&amp; make install</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">创建缓存目录</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># mkdir -p /var/tmp/nginx/client</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">3.创建启动脚本</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># vi /etc/init.d/nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">-------------------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#!/bin/sh</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># nginx - this script starts and stops the nginx daemin</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># chkconfig: &nbsp; - 85 15</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># description: &nbsp;Nginx is an HTTP(S) server, HTTP(S) reverse \</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy and IMAP/POP3 proxy server</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># processname: nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># config: &nbsp; &nbsp; &nbsp;/usr/local/nginx/conf/nginx.conf</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># pidfile: &nbsp; &nbsp; /usr/local/nginx/logs/nginx.pid</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># Source function library.</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">. /etc/rc.d/init.d/functions</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># Source networking configuration.</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">. /etc/sysconfig/network</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># Check that networking is up.</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">[ "$NETWORKING" = "no" ] &amp;&amp; exit 0</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">nginx="/usr/local/nginx/sbin/nginx"</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">prog=$(basename $nginx)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">lockfile=/var/lock/subsys/nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">start() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; [ -x $nginx ] || exit 5</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; [ -f $NGINX_CONF_FILE ] || exit 6</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; echo -n $"Starting $prog: "</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; daemon $nginx -c $NGINX_CONF_FILE</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; retval=$?</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; echo</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; [ $retval -eq 0 ] &amp;&amp; touch $lockfile</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; return $retval</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">stop() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; echo -n $"Stopping $prog: "</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; killproc $prog -QUIT</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; retval=$?</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; echo</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; [ $retval -eq 0 ] &amp;&amp; rm -f $lockfile</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; return $retval</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">restart() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; configtest || return $?</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; stop</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; start</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">reload() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; configtest || return $?</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; echo -n $"Reloading $prog: "</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; killproc $nginx -HUP</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; RETVAL=$?</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; echo</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">force_reload() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; restart</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">configtest() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">$nginx -t -c $NGINX_CONF_FILE</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">rh_status() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; status $prog</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">rh_status_q() {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; rh_status &gt;/dev/null 2&gt;&amp;1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">case "$1" in</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; start)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; rh_status_q &amp;&amp; exit 0</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; $1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; stop)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; rh_status_q || exit 0</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; $1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; restart|configtest)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; $1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; reload)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; rh_status_q || exit 7</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; $1</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; force-reload)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; force_reload</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; status)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; rh_status</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; condrestart|try-restart)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; rh_status_q || exit 0</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; *)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">reload|configtest}"</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; exit 2</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">esac</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">---------------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># chmod 755 /etc/init.d/nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># chkconfig --add nginx</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># service nginx start</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># chkconfig nginx on</span>
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">四.配置nginx加载ngx_pagespeed模块</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">1.创建pagespeed缓存目录</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># mkdir /tmp/ngx_pagespeed_cache</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># chmod -R 777 /tmp/ngx_pagespeed_cache</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">2.配置nginx加载</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">1).配置nginx主配置文件</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># vi /usr/local/nginx/conf/nginx.conf</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">在http层级末行添加:</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">-------------------------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># 缓存路径</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">pagespeed FileCachePath /tmp/ngx_pagespeed_cache;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># 加载模块</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">pagespeed on;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># 添加vhost配置文件</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">include "/usr/local/nginx/conf/vhosts/*.conf";</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">-------------------------------------</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">2).配置ngx_pagespeed.inc参数</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># vi /usr/local/nginx/conf/ngx_pagespeed.inc</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">-----------------------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">location ~ "^/ngx_pagespeed_static/" { }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">location ~ "^/ngx_pagespeed_beacon$" { }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">location /pagespeed_console { allow 127.0.0.1; deny all; }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">------------------------------------</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">3).配置vhost</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># cd /usr/local/nginx/conf/</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># mkdir vhosts</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># vi /usr/local/nginx/conf/vhosts/default.conf</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">------------------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">server {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp;server_name "www.abc.com";</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp;pagespeed on;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp;include ngx_pagespeed.inc;</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; location / {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; index index.html index.php;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; root /usr/local/nginx/html/www.abc.com;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; location ~ \.php$ {</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; root &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_pass &nbsp; 127.0.0.1:9000;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_index &nbsp;index.php;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_param &nbsp;SCRIPT_FILENAME &nbsp;/usr/local/nginx/html/www.abc.com$fastcgi_script_name;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; include &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_params;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp; }</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp; &nbsp;}</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">------------------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">重启服务</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># service nginx restart</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">3.验证ngx_pagespeed模块是否加载</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># curl -I localhost | grep X-Page-Speed</span>
</p>
<p>
	<a href="http://www.showerlee.com/wp-content/uploads/2013/09/1.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/09/1.jpg" alt="1" width="555" height="80" /></a>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">注:显示X-Page-Speed: 1.6.29.5-3346说明加载成功</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">访问浏览器首页，查看JS源文件对比ngx_pagespeed模块是否加载</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">未加载状态</span>
</p>
<p>
	<a href="http://www.showerlee.com/wp-content/uploads/2013/09/2.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/09/2.jpg" alt="2" width="422" height="19" /></a><span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">加载状态</span>
</p>
<p>
	<a href="http://www.showerlee.com/wp-content/uploads/2013/09/31.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/09/31.jpg" alt="3" width="728" height="24" /></a>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">------------大功告成---------------</span></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/858">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOs6.3下配置nginx加载ngx_pagespeed模块" href="http://www.showerlee.com/archives/858">http://www.showerlee.com/archives/858</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/858/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache中多个HTTPS虚拟主机的实现</title>
		<link>http://www.showerlee.com/archives/825</link>
		<comments>http://www.showerlee.com/archives/825#comments</comments>
		<pubDate>Sat, 31 Aug 2013 13:57:01 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[HTTPS]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=825</guid>
		<description><![CDATA[要实现一个Apache服务器上提供多个SSL虚拟主机， 可以： * 使用多域名SSL证书，可以实现一个IP，一 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="font-family:SimSun;color:#666666;font-size:14px;">要实现</span><span style="font-family:SimSun;font-weight:bold;color:#666666;font-size:14px;">一个Apache服务器上提供多个SSL虚拟主机</span><span style="font-family:SimSun;color:#666666;font-size:14px;">，</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;font-size:14px;">可以：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;font-size:14px;">* 使用多域名SSL证书，可以实现一个IP，一个443端口上多个SSL虚拟主机；</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;font-size:14px;">* 一个ip，为所有SSL虚拟主机配置单独的端口。比如，默认的虚拟主机使用443，其他的使用8080或8081等，且每个SSL虚</span><span style="color:#666666;font-family:SimSun;font-size:14px;">拟主机必须独占一个端口；</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;font-size:14px;">* 为Apache服务器配置多个IP，每个SSL虚拟主机独占IP。如果只有一张物理网卡，可以配置为网卡配置子接口；</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;font-size:14px;">* 使用mod_gnutls模块，创建多个SSL虚拟主机&nbsp;</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-weight:bold;"><br />
</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-weight:bold;font-size:14px;">1. Apache中同一IP多个<a href="http://www.showerlee.com/archives/tag/https" title="查看HTTPS中的全部文章" class="tag_link">HTTPS</a>虚拟主机的实现</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">在 Apache 文档中提到，不能在单个 IP 上同时有多个按名字识别的虚拟主机("named virtual host")。不完全是这样。</span>
</p>
<p><span><span style="color:#666666;font-family:SimSun;"> </p>
<p>
	
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><a href="http://www.showerlee.com/archives/tag/https" title="查看HTTPS中的全部文章" class="tag_link">HTTPS</a>协议的过程是：服务器首先与客户机之间进行服务器身份验证并协商安全会话，然后，客户端向服务器发送 HTTP 请求。这样一来，在客户端开始发送HTTP请求之前，服务器就已经把证书发给了客户端（客户端根据本地的根证书去验证证书链，等等）。而最重要的是，为了表明身份，这个证书的"Common Name"填写的应该是域名，否则浏览器会给出警告。</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">既然在这个过程中，客户端就所访问的域名所处的地位是"被告知"的地位，因此，客户端再发出的 Host: 请求头也就显得不那么有意义了。另一方面，如果客户请求的域名与Common Name不符，浏览器也会给出警告。至少，在表面上看是这样。</span>
</p>
<p></span> </span> </p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">不过，对于自行签署的证书，以及一些发证机构而言，其实还可以签署一种普适<a href="http://www.showerlee.com/archives/tag/https" title="查看HTTPS中的全部文章" class="tag_link">HTTPS</a>证书，这种证书的</span></span><span style="color:#666666;font-family:SimSun;font-size:14px;">Common Name</span><span><span style="color:#666666;font-family:SimSun;font-size:14px;">一栏是 *.domain.tld 这样的形式，即其主机名部分可以是任意字符串，而只有域名部分是确定的。</span><br />
<span style="color:#666666;font-family:SimSun;font-size:14px;">当然，这种证书的安全性有一定的负面影响：由于一个证书可以验证整个域下面的所有服务器，一旦其被破解，则所有加密通讯也就同时失密了（当然，可以每台服务器使用自己的单独的证书），不过这个问题并不是太严重，通常还算是尚可接受的范围。另一个潜在的影响是，某些手机上运行的浏览器不能正确处理这种证书，不过这个问题仅限于希望给手机提供服务的网站。</span><br />
<span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">因此，简而言之，符合这样几个条件的前提下，是可以在同一个IP上部署多个<a href="http://www.showerlee.com/archives/tag/https" title="查看HTTPS中的全部文章" class="tag_link">HTTPS</a>虚拟主机的：</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">a) 这些虚拟主机是同属于同一域名的子域名&nbsp;</span></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">b) 拥有普适证书&nbsp;</span></span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;font-size:14px;">c) 正确地配置Apache。</span><br />
<span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span><span style="color:#666666;font-size:14px;font-family:SimSun;">如果</span><span style="font-weight:bold;color:#666666;font-family:SimSun;font-size:14px;">要在一个IP地址上需要部署多个SSL网站</span><span style="color:#666666;font-family:SimSun;font-size:14px;">，</span></span>
</p>
<p>
	<span><span style="color:#FF0000;"><span style="color:#666666;font-family:SimSun;font-size:14px;">（1）</span><span style="color:#666666;font-family:SimSun;font-size:14px;">一种方法</span></span><span style="color:#666666;font-family:SimSun;font-size:14px;">：如果要</span><span style="color:#666666;font-family:SimSun;font-size:14px;">在同一个IP地址的443端口上部署多个网站，必须保证这些网站的域名都能匹配相同的一张SSL证书。</span><span style="color:#666666;font-family:SimSun;font-size:14px;">这是因为</span><span style="color:#666666;font-family:SimSun;font-size:14px;">SSL握手协议</span><span style="color:#666666;font-family:SimSun;font-size:14px;">过程中,是</span><span style="color:#666666;font-family:SimSun;font-size:14px;">通过IP+Port来进行通信，一个IP的一个端口只能返给客户一张SSL证书（即使有多张证书，也只能返回第一张，因为无法分辨用户会需要返回哪张证书），如果这张证书能够满足这些网站的主机名匹配要求（访问b.test.com时，使用a.test.com段的证书，证书中包含a.test.com,于虚拟主机中的主机名之一匹配），就可以使用。</span><br />
<span style="color:#666666;font-family:SimSun;font-size:14px;">一般能匹配多个主机名的证书有通配符证书*.domain.com和多域名证书(www.domain.com,ftp.domain.com 等)，以下我们提供一个典型同一个IP上的多主机名部署配置，www.domain.com对应的根目录在WWW下，ftp.domain.com对应的根目录在FTP下，</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">当然，这种证书的安全性有一定的负面影响：由于一个证书可以验证整个域下面的所有服务器，一旦其被破解，则所有加密通讯也就同时失密了（当然，可以每台服务器使用自己的单独的证书），不过这个问题并不是太严重，通常还算是尚可接受的范围。另一个潜在的影响是，某些手机上运行的浏览器不能正确处理这种证书，不过这个问题仅限于希望给手机提供服务的网站。</span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">因此，简而言之，符合这样几个条件的前提下，是可以在同一个IP上部署多个HTTPS虚拟主机的：</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">a) 这些虚拟主机是同属于同一域名的子域名&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">b) 拥有普适证书&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">c) 正确地配置Apache。</span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;font-size:14px;">如果</span><span style="font-weight:bold;color:#666666;font-family:SimSun;font-size:14px;">要在一个IP地址上需要部署多个SSL网站</span><span style="color:#666666;font-family:SimSun;font-size:14px;">，</span></span>
</p>
<p>
	<span style="color:#FF0000;"><span style="color:#666666;font-family:SimSun;font-size:14px;">（1）</span><span style="color:#666666;font-family:SimSun;font-size:14px;">一种方法</span></span><span style="color:#666666;font-family:SimSun;font-size:14px;">：如果要</span><span style="color:#666666;font-family:SimSun;font-size:14px;">在同一个IP地址的443端口上部署多个网站，必须保证这些网站的域名都能匹配相同的一张SSL证书。</span><span style="color:#666666;font-family:SimSun;font-size:14px;">这是因为</span><span style="color:#666666;font-family:SimSun;font-size:14px;">SSL握手协议</span><span style="color:#666666;font-family:SimSun;font-size:14px;">过程中,是</span><span style="color:#666666;font-family:SimSun;font-size:14px;">通过IP+Port来进行通信，一个IP的一个端口只能返给客户一张SSL证书（即使有多张证书，也只能返回第一张，因为无法分辨用户会需要返回哪张证书），如果这张证书能够满足这些网站的主机名匹配要求（访问b.test.com时，使用a.test.com段的证书，证书中包含a.test.com,于虚拟主机中的主机名之一匹配），就可以使用。</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">一般能匹配多个主机名的证书有通配符证书*.domain.com和多域名证书(www.domain.com,ftp.domain.com 等)，以下我们提供一个典型同一个IP上的多主机名部署配置，www.domain.com对应的根目录在WWW下，ftp.domain.com对应的根目录在FTP下，</span><span style="color:#666666;font-family:SimSun;font-size:14px;"><a href="http://www.domain.com" rel="nofollow">http://www.domain.com</a></span><span style="color:#666666;font-family:SimSun;font-size:14px;">与</span><span style="color:#666666;font-family:SimSun;font-size:14px;"><a href="http://ftp.domain.com" rel="nofollow">http://ftp.domain.com</a></span><span style="color:#666666;font-family:SimSun;font-size:14px;">使用相同的证书：</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">NameVirtualHost 11.22.33.44:443</span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;VirtualHost 11.22.33.44:443&gt;</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">DocumentRoot "C:/Apache2.2/htdocs/www"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">ServerName <a href="http://www.domain.com" rel="nofollow">http://www.domain.com</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLEngine on</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateFile "C:/Apache2.2/conf/server.cer"</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;/VirtualHost&gt;</span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;VirtualHost 11.22.33.44:443&gt;</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">DocumentRoot "C:/Apache2.2/htdocs/ftp"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">ServerName <a href="http://ftp.domain.com" rel="nofollow">http://ftp.domain.com</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLEngine on</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateFile "C:/Apache2.2/conf/server.cer"</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;/VirtualHost&gt;</span>
</p>
<p>
	<span><span style="color:#FF0000;"><span style="color:#666666;font-family:SimSun;"><br />
</span></span></span>
</p>
<p>
	<span><span style="color:#FF0000;"><span style="color:#666666;font-family:SimSun;font-size:14px;">（2）</span><span style="color:#666666;font-family:SimSun;font-size:14px;">另一种办法就是给每个网站分配不同的端口号</span></span><span style="color:#666666;font-family:SimSun;font-size:14px;">；</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;VirtualHost 11.22.33.44:443&gt;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">DocumentRoot "C:/Apache2.2/htdocs/www"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">ServerName <a href="http://www.domain.com" rel="nofollow">http://www.domain.com</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLEngine on</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateFile "C:/Apache2.2/conf/server.cer"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;/VirtualHost&gt;</span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;VirtualHost 11.22.33.44:</span><span style="color:#666666;font-family:SimSun;font-size:14px;">8443</span><span style="color:#666666;font-family:SimSun;font-size:14px;">&gt;</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">DocumentRoot "C:/Apache2.2/htdocs/ftp"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">ServerName <a href="http://ftp.domain.com" rel="nofollow">http://ftp.domain.com</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLEngine on</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateFile "C:/Apache2.2/conf/server.cer"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;/VirtualHost&gt;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;"><br />
</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">基于域名的虚拟主机只能使用同一个证书，或者说，即使有不同的证书，最终使用的都是排在前面的默认的第一个</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-weight:bold;"><br />
</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-weight:bold;font-size:14px;">2. Apache中一张网卡绑定不同IP实现多个HTTPS虚拟主机</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">一张网卡绑定多个ip，ifconfig eth0:0......</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;VirtualHost</span><span style="font-weight:bold;color:#666666;font-family:SimSun;font-size:14px;">&nbsp;220.181.75.109</span><span style="color:#666666;font-family:SimSun;font-size:14px;">:8443&gt;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;ServerAdmin <a href="mailto:lala@corp.net.com">lala@corp.net.com</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;DocumentRoot /home/lala/apache/htdocs/test</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;ServerName a.test.com</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLEngine on</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLCertificateFile /home/lala/apache/conf/ssl.key/server.crt</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLCertificateKeyFile /home/lala/apache/conf/ssl.key/server.key</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;#Include /home/lala/apache/conf/ssl.conf</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;#ErrorLog logs/dummy-a.test.com-error_log</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;#CustomLog logs/a.test.com-access_log common</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;/VirtualHost&gt;</span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;"><br />
</span></span>
</p>
<p>
	<span><span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;VirtualHost&nbsp;</span><span style="font-weight:bold;color:#666666;font-family:SimSun;font-size:14px;">220.181.75.65</span><span style="color:#666666;font-family:SimSun;font-size:14px;">:8443&gt;</span></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;ServerAdmin <a href="mailto:lala@corp.net.com">lala@corp.net.com</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;DocumentRoot /home/lala/apache/htdocs/test2</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;ServerName d.test.com</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLEngine on</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLCertificateFile /home/lala/apache/conf/ssl.key/server2.crt</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;SSLCertificateKeyFile /home/lala/apache/conf/ssl.key/server2.key</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;#Include /home/lala/apache/conf/ssl.conf</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;#ErrorLog logs/dummy-a.test.com-error_log</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp; &nbsp; &nbsp;#CustomLog logs/a.test.com-access_log common</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&lt;/VirtualHost&gt;</span>
</p>
<p>
	</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/825">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Apache中多个HTTPS虚拟主机的实现" href="http://www.showerlee.com/archives/825">http://www.showerlee.com/archives/825</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/825/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实现apache下,IP地址无法访问网站.</title>
		<link>http://www.showerlee.com/archives/823</link>
		<comments>http://www.showerlee.com/archives/823#comments</comments>
		<pubDate>Sat, 31 Aug 2013 13:53:58 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=823</guid>
		<description><![CDATA[在apache2/conf/extra/httpd-vhosts.conf下首行添加 ------------ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">在apache2/conf/extra/httpd-vhosts.conf下首行添加</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">------------------------------------</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&lt;VirtualHost *:80&gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&nbsp; &nbsp; DocumentRoot "/usr/local/www/www.abc.com.cn/"</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&nbsp; &nbsp; ServerAlias 1.1.1.1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&nbsp; &nbsp; &lt;Location /&gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&nbsp; &nbsp; Order Deny,Allow</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&nbsp; &nbsp; Deny from all</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&nbsp; &nbsp; &lt;/Location&gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">&lt;/VirtualHost&gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-family:SimSun;">-------------------------------------</span></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/823">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="实现apache下,IP地址无法访问网站." href="http://www.showerlee.com/archives/823">http://www.showerlee.com/archives/823</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/823/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS6.3下使用webbench对网站进行压力测试</title>
		<link>http://www.showerlee.com/archives/819</link>
		<comments>http://www.showerlee.com/archives/819#comments</comments>
		<pubDate>Sat, 31 Aug 2013 13:50:54 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[Webbench]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=819</guid>
		<description><![CDATA[webbench最多可以模拟3万个并发连接去测试网站的负载能力，个人感觉要比 Apache自带的ab压力测试工 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">webbench最多可以模拟3万个并发连接去测试网站的负载能力，个人感觉要比</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">Apache自带的ab压力测试工具好，安装使用也特别方便。</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">1、适用系统：Linux</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">2、编译安装：</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;"># wget <a href="http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz" rel="nofollow">http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz</a></span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;"># tar zxvf webbench-1.5.tar.gz</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;"># cd webbench-1.5</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;"># make &amp;&amp; make install</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">3、使用：</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;"># webbench -c 500 -t 30 <a href="http://127.0.0.1/test.jpg" rel="nofollow">http://127.0.0.1/test.jpg</a></span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">参数说明：-c表示并发数，-t表示时间(秒)</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;"><br />
</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">4、测试结果示例：</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;"><a href="http://www.showerlee.com/archives/tag/webbench" title="查看Webbench中的全部文章" class="tag_link">Webbench</a> - Simple Web Benchmark 1.5</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">Benchmarking: GET <a href="http://127.0.0.1/test.jpg" rel="nofollow">http://127.0.0.1/test.jpg</a></span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">500 clients, running 30 sec.</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">Speed=3230 pages/min, 11614212 bytes/sec.</span>
</p>
<p>
	<span style="background-color:#FFFFFF;color:#666666;font-family:SimSun;font-size:14px;">Requests: 1615 susceed, 0 failed.</span></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/819">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOS6.3下使用webbench对网站进行压力测试" href="http://www.showerlee.com/archives/819">http://www.showerlee.com/archives/819</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/819/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APACHE利用Limit模块限制IP连接数</title>
		<link>http://www.showerlee.com/archives/813</link>
		<comments>http://www.showerlee.com/archives/813#comments</comments>
		<pubDate>Sat, 31 Aug 2013 13:44:26 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=813</guid>
		<description><![CDATA[系统版本:centos6.3 APACHE版本:apache2.42(编译安装) 1.配置Limit模块 #w [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">系统版本:centos6.3</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;"><a href="http://www.showerlee.com/archives/tag/apache" title="查看APACHE中的全部文章" class="tag_link">APACHE</a>版本:apache2.42(编译安装)</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">1.配置Limit模块</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#wget <a href="http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2" rel="nofollow">http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2</a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">安装:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#tar jxvf mod_limitipconn-0.24.tar.bz2</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#cd mod_limitipconn-0.24</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#vi Makefile</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">找到APXS这行,改成</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">APXS=/usr/local/apache2/bin/apxs</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#make &amp;&amp; make install</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">全局变量范例:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&lt; IfModule mod_limitipconn.c &gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&lt; Location / &gt; &nbsp; &nbsp;# 所有虚拟主机的/目录</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">MaxConnPerIP 3 &nbsp; &nbsp; &nbsp;# 每IP只允许3个并发连接</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">NoIPLimit image/* &nbsp; # 对图片不做IP限制</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&lt; /Location &gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&lt; Location /mp3 &gt; &nbsp; # 所有主机的/mp3目录</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">MaxConnPerIP 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 每IP只允许一个连接请求</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">OnlyIPLimit audio/mpeg video &nbsp; &nbsp; # 该限制只对视频和音频格式的文件</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&lt; /Location &gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&lt; /IfModule &gt;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;"># vi /usr/local/apache2/conf/httpd.conf</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#666666;font-size:14px;font-family:SimSun;">--------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">ExtendedStatus On &nbsp;</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">LoadModule limitipconn_module modules/mod_limitipconn.so</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">&lt;IfModule mod_limitipconn.c&gt;&nbsp;</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">&lt;Location /&gt;</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">MaxConnPerIP 6</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">NoIPLimit image/*&nbsp;</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">&lt;/Location&gt;</span>
</p>
<p>
	<span style="color:#666666;background-color:#FFFFFF;font-family:SimSun;font-size:14px;">&lt;/IfModule&gt;&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;background-color:#FFFFFF;">-------------------</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">2、配置webbench对网站进行压力测试：</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#wget <a href="http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz" rel="nofollow">http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz</a></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#tar zxvf webbench-1.5.tar.gz</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#cd webbench-1.5</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">#make &amp;&amp; make install</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">3、使用：</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">webbench -c 500 -t 30 <a href="http://127.0.0.1/" rel="nofollow">http://127.0.0.1/</a></span>
</p>
<p>
	<span style="color:#666666;font-family:SimSun;font-size:14px;">参数说明：-c表示并发数，-t表示时间(秒)</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">4、测试结果示例：</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">Webbench - Simple Web Benchmark 1.5</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">&nbsp;</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">Benchmarking: GET <a href="http://127.0.0.1/" rel="nofollow">http://127.0.0.1/</a></span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">500 clients, running 30 sec.</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">Speed=3230 pages/min, 11614212 bytes/sec.</span>
</p>
<p>
	<span style="color:#666666;font-size:14px;font-family:SimSun;">Requests: 1615 susceed, 0 failed.</span>
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/813">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="APACHE利用Limit模块限制IP连接数" href="http://www.showerlee.com/archives/813">http://www.showerlee.com/archives/813</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/813/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用apache代理功能实现网站资源异步存储</title>
		<link>http://www.showerlee.com/archives/810</link>
		<comments>http://www.showerlee.com/archives/810#comments</comments>
		<pubDate>Sat, 31 Aug 2013 13:42:40 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=810</guid>
		<description><![CDATA[系统环境：centOS 6.3 x64 Apache: &#160; http-2.4.2 代理端，web服务 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centOS 6.3 x64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Apache: &nbsp; http-2.4.2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	代理端，web服务器（192.168.7.12）：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /usr/local/apache2/htdocs/files.abc.cn/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	首先将在主配置文件http.conf下Module的注释去掉&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/http.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	找到以下3行，去掉#注释
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LoadModule proxy_module modules/mod_proxy.so&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	LoadModule proxy_http_module modules/mod_proxy_http.so&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Include conf/extra/httpd-vhosts.conf&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	进入虚拟主机配置：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;VirtualHost *:80&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; DocumentRoot "/usr/local/apache2/htdocs/files.abc.cn/"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; ServerAlias files.abc.cn
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; proxypass / &nbsp; &nbsp;<a href="http://192.168.7.11/" rel="nofollow">http://192.168.7.11/</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/VirtualHost&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	被代理端，文件服务器（192.168.7.11）：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/http.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	找到下行，去掉#注释
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Include conf/extra/httpd-vhosts.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	进入虚拟主机配置：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /usr/local/apache2/htdocs/files.abc.cn/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;VirtualHost *:80&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; DocumentRoot "/usr/local/apache2/htdocs/files.abc.cn/"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; ServerAlias 192.168.7.11
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/VirtualHost&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置完毕
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这样客户端浏览器访问域名http://files.abc.cn
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	通过http代理，即可访问到192.168.7.11上的资源
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	从而实现网站资源异步存储访问，缓解主服务器访问压力。</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/810">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="利用apache代理功能实现网站资源异步存储" href="http://www.showerlee.com/archives/810">http://www.showerlee.com/archives/810</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/810/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
