<?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>vifix.cn &#187; nginx</title>
	<atom:link href="http://vifix.cn/blog/tag/nginx/feed" rel="self" type="application/rss+xml" />
	<link>http://vifix.cn/blog</link>
	<description>compile the dream, compile tomorrow</description>
	<lastBuildDate>Sat, 04 Feb 2012 03:15:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>nginx 反向代理 twitter API</title>
		<link>http://vifix.cn/blog/nginx-reverse-proxy-to-twitter-api.html</link>
		<comments>http://vifix.cn/blog/nginx-reverse-proxy-to-twitter-api.html#comments</comments>
		<pubDate>Fri, 23 Apr 2010 15:53:27 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=1430</guid>
		<description><![CDATA[此方法已经失效！ 适合于有国外VPS的用户搭建自己的twitter API proxy。 可以运用到gravity，mixero这类支持修改API Proxy的客户端中。 如果愿意，也可以修改端口为443并加入证书文件，配置成HTTPS的API Proxy。 网上也有流传许多配置成两个域名的（例如一个api.******，一个search.******）方案，不过不知道为什么在我的gravity上无法工作，因此最终配置成了一个域名下的两个&#8221;目录&#8221;的形式。下面是我的配置文件： server { listen 80; server_name [YOUR_PROXY_DOMAIN_HERE]; access_log /var/log/nginx/twitter_api.access.log; location /api { proxy_set_header X-Real-IP $remote_addr; rewrite /api$ /api/; rewrite /api/(.*) /$1 break; proxy_pass https://twitter.com; } location /search { proxy_set_header X-Real-IP $remote_addr; rewrite /search$ /search/; rewrite /search/(.*) /$1 break; proxy_pass https://search.twitter.com; } } 配置完成后将Twitter API的地址改为：http://[YOUR_PROXY_DOMAIN_HERE]/api，Twitter Search API的地址改为http://[YOUR_PROXY_DOMAIN_HERE]/search。]]></description>
			<content:encoded><![CDATA[<p><a href="http://vifix.cn/blog/wp-content/uploads/2010/01/nginx.png" rel="shadowbox[sbpost-1430];player=img;" title="nginx"><img class="alignnone size-full wp-image-1312" title="nginx" src="http://vifix.cn/blog/wp-content/uploads/2010/01/nginx.png" alt="" width="121" height="32" /></a></p>
<p><span style="color: #ff0000;">此方法已经失效！</span></p>
<p>适合于有国外VPS的用户搭建自己的twitter API proxy。</p>
<p>可以运用到gravity，mixero这类支持修改API Proxy的客户端中。</p>
<p>如果愿意，也可以修改端口为443并加入证书文件，配置成HTTPS的API Proxy。</p>
<p>网上也有流传许多配置成两个域名的（例如一个api.******，一个search.******）方案，不过不知道为什么在我的gravity上无法工作，因此最终配置成了一个域名下的两个&#8221;目录&#8221;的形式。下面是我的配置文件：</p>
<p><span id="more-1430"></span></p>
<pre>server {
        listen       80;
        server_name  [YOUR_PROXY_DOMAIN_HERE];

        access_log  /var/log/nginx/twitter_api.access.log;

        location /api {
                proxy_set_header X-Real-IP $remote_addr;
                rewrite /api$ /api/;
                rewrite /api/(.*) /$1 break;
                proxy_pass https://twitter.com;
        }

        location /search {
                proxy_set_header X-Real-IP $remote_addr;
                rewrite /search$ /search/;
                rewrite /search/(.*) /$1 break;
                proxy_pass https://search.twitter.com;
        }
}</pre>
<p>配置完成后将Twitter API的地址改为：http://[YOUR_PROXY_DOMAIN_HERE]/api，Twitter Search API的地址改为http://[YOUR_PROXY_DOMAIN_HERE]/search。</p>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/nginx-reverse-proxy-to-twitter-api.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>cherokee vs nginx @ 压力测试</title>
		<link>http://vifix.cn/blog/cherokee-vs-nginx-apachebench-test.html</link>
		<comments>http://vifix.cn/blog/cherokee-vs-nginx-apachebench-test.html#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:51:41 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[cherokee]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=1310</guid>
		<description><![CDATA[VS 近日flying殿建议用cherokee来替换掉已经在VPS上运行了一年多的nginx，cherokee内建一个基于Web的管理界面，设置相当方便，不过性能如何还是个未知数，因此用ApacheBench进行了压力测试进行对比。 使用的命令参数如下： ab -n 1000 -c 50 [URL] 也就是使用50个并发连接，总共创建1000个连接。 cherokee和nginx都运行在我的VMware内的Ubuntu Server中，进程数量均为4，均使用php fastcgi调用php。 下面分别是测试成绩： 首先是cherokee Server Software: Cherokee/0.99.39 Server Hostname: 192.168.2.129 Server Port: 80 Document Path: /blog/ Document Length: 5938 bytes Concurrency Level: 50 Time taken for tests: 351.703 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 6175000 bytes HTML transferred: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vifix.cn/blog/wp-content/uploads/2010/01/cherokee.png" rel="shadowbox[sbpost-1310];player=img;" title="cherokee"><img class="alignnone size-full wp-image-1311" title="cherokee" src="http://vifix.cn/blog/wp-content/uploads/2010/01/cherokee.png" alt="" width="121" height="32" /></a> VS <a href="http://vifix.cn/blog/wp-content/uploads/2010/01/nginx.png" rel="shadowbox[sbpost-1310];player=img;" title="nginx"><img class="alignnone size-full wp-image-1312" title="nginx" src="http://vifix.cn/blog/wp-content/uploads/2010/01/nginx.png" alt="" width="121" height="32" /></a></p>
<p>近日flying殿建议用<a href="http://www.cherokee-project.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.cherokee-project.com/?referer=');">cherokee</a>来替换掉已经在VPS上运行了一年多的<a href="http://nginx.org/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/nginx.org/?referer=');">nginx</a>，cherokee内建一个基于Web的管理界面，设置相当方便，不过性能如何还是个未知数，因此用ApacheBench进行了压力测试进行对比。</p>
<p>使用的命令参数如下：</p>
<pre>ab -n 1000 -c 50 [URL]</pre>
<p>也就是使用50个并发连接，总共创建1000个连接。</p>
<p>cherokee和nginx都运行在我的VMware内的Ubuntu Server中，进程数量均为4，均使用php fastcgi调用php。</p>
<p>下面分别是测试成绩：</p>
<p><span id="more-1310"></span><br />
首先是cherokee</p>
<pre>Server Software:        Cherokee/0.99.39
Server Hostname:        192.168.2.129
Server Port:            80

Document Path:          /blog/
Document Length:        5938 bytes

Concurrency Level:      50
Time taken for tests:   351.703 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      6175000 bytes
HTML transferred:       5938000 bytes
Requests per second:    2.84 [#/sec] (mean)
Time per request:       17585.156 [ms] (mean)
Time per request:       351.703 [ms] (mean, across all concurrent requests)
Transfer rate:          17.15 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   2.4      0      16
Processing:  1922 17197 2084.4  17531   18656
Waiting:     1922 17189 2083.5  17531   18656
Total:       1922 17197 2084.5  17531   18656

Percentage of the requests served within a certain time (ms)
  50%  17531
  66%  17750
  75%  17859
  80%  17969
  90%  18141
  95%  18281
  98%  18422
  99%  18484
 100%  18656 (longest request)
</pre>
<p>然后是nginx</p>
<pre>Server Software:        nginx/0.7.62
Server Hostname:        192.168.2.129
Server Port:            81

Document Path:          /blog/
Document Length:        6004 bytes

Concurrency Level:      50
Time taken for tests:   333.578 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      6231000 bytes
HTML transferred:       6004000 bytes
Requests per second:    3.00 [#/sec] (mean)
Time per request:       16678.906 [ms] (mean)
Time per request:       333.578 [ms] (mean, across all concurrent requests)
Transfer rate:          18.24 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.8      0      16
Processing:  1656 16307 1965.4  16656   17438
Waiting:     1656 16302 1965.4  16656   17422
Total:       1656 16307 1965.5  16656   17438

Percentage of the requests served within a certain time (ms)
  50%  16656
  66%  16781
  75%  16844
  80%  16875
  90%  17000
  95%  17078
  98%  17250
  99%  17313
 100%  17438 (longest request)
</pre>
<p>可以看到性能方面仍然还是nginx有略微领先（并且不是最新版本——虽然无法判断最新版本的性能是提升还是下降），不过考虑到cherokee的管理界面相当友好，内存占用方面和nginx也不相上下，VPS上的网站的流量也都不大（应该吧？ orz），看来近期可以准备动手从nginx迁移过去了～</p>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/cherokee-vs-nginx-apachebench-test.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用nginx给ghs做了个反向代理</title>
		<link>http://vifix.cn/blog/nginx-reverse-proxy-to-ghs-google.html</link>
		<comments>http://vifix.cn/blog/nginx-reverse-proxy-to-ghs-google.html#comments</comments>
		<pubDate>Wed, 25 Nov 2009 03:19:07 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=1275</guid>
		<description><![CDATA[有段时间没有关注Google App Engine，最近发现对GAE至关重要的ghs.google.com又被功夫网了，因此自己的那个vxtodo（地址是vxtodo.ihfs.net）也无法访问了……唉。不管怎样，决定开始寻找一个一劳永逸的方法，免得经常去修改vxtodo.ihfs.net的CNAME，太麻烦了。 google一番之后，发现一个也是在VPS（并且还是邻居，都运行在rashost的服务上）用nginx的负载均衡给ghs.google.com做反向代理的方法，地址是：http://www.littz.cn/viewnews-340.html，研究之后觉得可行，因此马上给自己的nginx配置了起来，下面是我自己的配置： upstream ghs { ip_hash; server ghs.google.com; server 72.14.203.121; server 72.14.207.121; server 74.125.43.121; server 74.125.47.121; server 74.125.53.121; server 74.125.77.121; server 74.125.93.121; server 74.125.95.121; server 74.125.113.121; server 216.239.32.21; server 216.239.34.21; server 216.239.36.21; server 216.239.38.21; } server { listen 80; server_name ghs.ihfs.net vxtodo.ihfs.net; access_log /var/log/nginx/ihfs_ghs_proxy.access.log; location / { proxy_redirect off; proxy_set_header Host $host; proxy_pass [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vifix.cn/blog/wp-content/uploads/2009/11/nslookup.jpg" rel="shadowbox[sbpost-1275];player=img;" title="nslookup"><img class="alignnone size-medium wp-image-1277" title="nslookup" src="http://vifix.cn/blog/wp-content/uploads/2009/11/nslookup-300x274.jpg" alt="nslookup" width="300" height="274" /></a></p>
<p>有段时间没有关注Google App Engine，最近发现对GAE至关重要的ghs.google.com又被功夫网了，因此自己的那个<a href="http://vifix.cn/blog/vxtodo.html" target="_self">vxtodo</a>（地址是<a href="http://vxtodo.ihfs.net" target="_blank" onclick="pageTracker._trackPageview('/outgoing/vxtodo.ihfs.net?referer=');">vxtodo.ihfs.net</a>）也无法访问了……唉。不管怎样，决定开始寻找一个一劳永逸的方法，免得经常去修改vxtodo.ihfs.net的CNAME，太麻烦了。</p>
<p>google一番之后，发现一个也是在VPS（并且还是邻居，都运行在<a href="http://www.rashost.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.rashost.com?referer=');">rashost</a>的服务上）用nginx的负载均衡给ghs.google.com做反向代理的方法，地址是：<a href="http://www.littz.cn/viewnews-340.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.littz.cn/viewnews-340.html?referer=');">http://www.littz.cn/viewnews-340.html</a>，研究之后觉得可行，因此马上给自己的nginx配置了起来，下面是我自己的配置：</p>
<p><span id="more-1275"></span></p>
<pre>upstream ghs {
        ip_hash;
        server ghs.google.com;
        server 72.14.203.121;
        server 72.14.207.121;
        server 74.125.43.121;
        server 74.125.47.121;
        server 74.125.53.121;
        server 74.125.77.121;
        server 74.125.93.121;
        server 74.125.95.121;
        server 74.125.113.121;
        server 216.239.32.21;
        server 216.239.34.21;
        server 216.239.36.21;
        server 216.239.38.21;
}

server {
        listen       80;
        server_name  ghs.ihfs.net vxtodo.ihfs.net;
        access_log  /var/log/nginx/ihfs_ghs_proxy.access.log;

        location / {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_pass http://ghs;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect false;
        }

}</pre>
<p>因为暂时觉得没有https的需求，所以并没有设置https的部分。对https的部分的配置有兴趣的朋友可以去上面给出的原文链接查看～</p>
<p>总体效果还不错，在dnspod修改了CNAME之后立马就生效了。</p>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/nginx-reverse-proxy-to-ghs-google.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Nginx for Windows</title>
		<link>http://vifix.cn/blog/nginx-for-windows.html</link>
		<comments>http://vifix.cn/blog/nginx-for-windows.html#comments</comments>
		<pubDate>Mon, 19 Jan 2009 00:58:44 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[Freeware]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=580</guid>
		<description><![CDATA[嘛，近日发现的Nginx for Windows，看来应该是非官方编译的版本，不过这个反正问题不大，架设和现在的VPS相同的环境更加方便些了。 当然眼下这个Windows版本还不适合于生产环境，所以仅推荐在开发环境中使用。 地址：http://www.kevinworthington.com/nginx-for-windows/ nginx on wikipedia: nginx（念作engine x）是一款高性能的开源Web Server。 其特点是占有内存少，并发能力强，事实上Nginx的并发能力确实在同类型的Web server中表现较好。 目前中国大陆使用Nginx网站用户有：新浪、网易、腾讯。]]></description>
			<content:encoded><![CDATA[<p>嘛，近日发现的Nginx for Windows，看来应该是非官方编译的版本，不过这个反正问题不大，架设和现在的VPS相同的环境更加方便些了。</p>
<p>当然眼下这个Windows版本还不适合于生产环境，所以仅推荐在开发环境中使用。</p>
<p>地址：<a href="http://www.kevinworthington.com/nginx-for-windows/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.kevinworthington.com/nginx-for-windows/?referer=');">http://www.kevinworthington.com/nginx-for-windows/</a></p>
<blockquote>
<h3>nginx on wikipedia:</h3>
<p>nginx（念作engine x）是一款高性能的开源Web Server。</p>
<p>其特点是占有内存少，并发能力强，事实上Nginx的并发能力确实在同类型的Web server中表现较好。</p>
<p>目前中国大陆使用Nginx网站用户有：<a title="新浪" href="http://www.sina.com.cn" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.sina.com.cn?referer=');">新浪</a>、<a title="网易" href="http://www.163.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.163.com?referer=');">网易</a>、<a title="腾讯" href="http://www.qq.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.qq.com?referer=');">腾讯</a>。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/nginx-for-windows.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>给wordpress做了伪静态化</title>
		<link>http://vifix.cn/blog/%e7%bb%99wordpress%e5%81%9a%e4%ba%86%e4%bc%aa%e9%9d%99%e6%80%81%e5%8c%96.html</link>
		<comments>http://vifix.cn/blog/%e7%bb%99wordpress%e5%81%9a%e4%ba%86%e4%bc%aa%e9%9d%99%e6%80%81%e5%8c%96.html#comments</comments>
		<pubDate>Sat, 06 Dec 2008 05:30:05 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=315</guid>
		<description><![CDATA[嘛，研究了一下wordpress的持久链接和nginx的URL Rewrite，将自己的blog进行了伪静态化，链接已经全部转变为http://vifix.cn/blog/%postname%.html的形式 转帖一篇文章： 原文地址：http://shiningray.cn/nginx-de-wordpress-pei-zhi.html WordPress是一个非常流行的Blog系统，它可以利用Apache的 mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后，会在网站的根目录下（如果可写）生成一 个.htaccess文件，这个文件可以指示Apache如何进行URL重写（如果服务器配置为允许使用htaccess的指令的话），它的内容如下： # BEGIN WordPress &#60;IfModule mod_rewrite.c&#62; RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &#60;/IfModule&#62; # END WordPress 这个文件的意思就是，如果当请求的文件不存在，那么把请求内部重定向到/index.php。WordPress会自己分析请求的URL，来判断显示哪个页面。 在上次配置了Nginx+PHP之后，由于Nginx不支持Apache的.htaccess文件，要实现持久连接静态化，我们必须手工配置Nginx的文件。首先找到Nginx的配置文件，默认编译后的配置文件在/usr/local/nginx/conf/nginx.conf；Ubuntu通过包安装的配置文件位于/etc/nginx/nginx.conf，也可以编辑vhost的配置文件，放在了/etc/nginx/sites-available下。 以下是基本的配置（Ubuntu下的范例）： location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if [...]]]></description>
			<content:encoded><![CDATA[<p>嘛，研究了一下wordpress的持久链接和nginx的URL Rewrite，将自己的blog进行了伪静态化，链接已经全部转变为http://vifix.cn/blog/%postname%.html的形式</p>
<p>转帖一篇文章：</p>
<p>原文地址：<a href="http://shiningray.cn/nginx-de-wordpress-pei-zhi.html" onclick="pageTracker._trackPageview('/outgoing/shiningray.cn/nginx-de-wordpress-pei-zhi.html?referer=');">http://shiningray.cn/nginx-de-wordpress-pei-zhi.html</a></p>
<p><span id="more-315"></span></p>
<div class="entry-content">
<p><a href="http://www.wordpress.org/" onclick="pageTracker._trackPageview('/outgoing/www.wordpress.org/?referer=');">WordPress</a>是一个非常流行的Blog系统，它可以利用<a href="http://httpd.apache.org/" onclick="pageTracker._trackPageview('/outgoing/httpd.apache.org/?referer=');">Apache</a>的 mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后，会在网站的根目录下（如果可写）生成一 个.htaccess文件，这个文件可以指示Apache如何进行URL重写（如果服务器配置为允许使用htaccess的指令的话），它的内容如下：</p>
<blockquote>
<pre># BEGIN WordPress
&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&lt;/IfModule&gt;
# END WordPress</pre>
</blockquote>
<p>这个文件的意思就是，如果当请求的文件不存在，那么把请求内部重定向到/index.php。WordPress会自己分析请求的URL，来判断显示哪个页面。</p>
<p>在上次<a href="http://shiningray.cn/2007/12/15/linux-shang-pei-zhi-nginx-php5-fastcgi/" onclick="pageTracker._trackPageview('/outgoing/shiningray.cn/2007/12/15/linux-shang-pei-zhi-nginx-php5-fastcgi/?referer=');">配置了Nginx+PHP</a>之后，由于<a href="http://nginx.net/" onclick="pageTracker._trackPageview('/outgoing/nginx.net/?referer=');">Nginx</a>不支持Apache的.htaccess文件，要实现持久连接静态化，我们必须手工配置Nginx的文件。首先找到Nginx的配置文件，默认编译后的配置文件在<code>/usr/local/nginx/conf/nginx.conf</code>；Ubuntu通过包安装的配置文件位于<code>/etc/nginx/nginx.conf</code>，也可以编辑vhost的配置文件，放在了<code>/etc/nginx/sites-available</code>下。</p>
<p>以下是基本的配置（Ubuntu下的范例）：</p>
<pre>   location / {
        index index.html index.php;
        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }
    location ~ .*\.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
    }</pre>
<p>还可以有很多种不同配置方式，例如不改写所有包含wp-的url等。此配置考虑了目录下的索引文件index.html和index.php。-f 指令表示测试文件是否存在（不考虑文件和目录的区别），!-f则表示不存在。注意在重写url到index.html后面有个break，而重写到 index.php后没有break。因为html文件不需要任何额外工作可以直接发送到客户端，所以重写规则在这里终止，下面就直接让nginx发送文 件。而.php文件需要进一步发送到fastcgi进程来运行，Nginx会继续判断该文件符合第二个部分location ~ .*\.php$的规则，并进行FastCGI的转发。</p>
<p>大家可以将以上内容保存为wordpress.conf，然后在自己的vhost配置，即server节中应用该配置文件，例如（以下为Ubuntu进行的配置）：</p>
<pre>server {
        listen   80;
        server_name  shiningray.cn *.shiningray.cn;

        root /var/www/shiningray.cn;

        <strong>include /etc/nginx/wordpress.conf;</strong>
}</pre>
<p>接下来让Nginx重新载入配置文件，便可使用WordPress的持久链接了。</p></div>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/%e7%bb%99wordpress%e5%81%9a%e4%ba%86%e4%bc%aa%e9%9d%99%e6%80%81%e5%8c%96.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin运行在nginx https的问题及解决</title>
		<link>http://vifix.cn/blog/phpmyadmin%e8%bf%90%e8%a1%8c%e5%9c%a8nginx-https%e7%9a%84%e9%97%ae%e9%a2%98%e5%8f%8a%e8%a7%a3%e5%86%b3.html</link>
		<comments>http://vifix.cn/blog/phpmyadmin%e8%bf%90%e8%a1%8c%e5%9c%a8nginx-https%e7%9a%84%e9%97%ae%e9%a2%98%e5%8f%8a%e8%a7%a3%e5%86%b3.html#comments</comments>
		<pubDate>Sat, 28 Jun 2008 13:11:46 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=14</guid>
		<description><![CDATA[在服务器开通了HTTPS服务，打算放置一些不对外公布的页面和应用方便内部使用，比如phpMyAdmin等工具 然而在配置完nginx的HTTPS服务后，phpMyAdmin登录却出现了问题，出现： "The plain HTTP request was sent to HTTPS port" Google了一番之后，原来是phpMyAdmin并不会探测它自己传输所经过的协议，所以事实上它会导致php的URL处理如同http://phpmyadmin.mydomain.com:443/那样工作。解决方法也很简单，是在nginx的站点配置文件的fastcgi参数中，加上如下一条即可完美解决 fastcgi_param HTTPS on; 顺便附上完整的站点配置： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 server [...]]]></description>
			<content:encoded><![CDATA[<p>在服务器开通了HTTPS服务，打算放置一些不对外公布的页面和应用方便内部使用，比如phpMyAdmin等工具</p>
<p>然而在配置完nginx的HTTPS服务后，phpMyAdmin登录却出现了问题，出现：</p>
<p><code>"The plain HTTP request was sent to HTTPS port"</code></p>
<p>Google了一番之后，原来是phpMyAdmin并不会探测它自己传输所经过的协议，所以事实上它会导致php的URL处理如同http://phpmyadmin.mydomain.com:443/那样工作。解决方法也很简单，是在nginx的站点配置文件的fastcgi参数中，加上如下一条即可完美解决</p>
<p><code>fastcgi_param HTTPS on;</code></p>
<p><span id="more-14"></span></p>
<p>顺便附上完整的站点配置：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">server <span style="color: #009900;">&#123;</span>
	listen   <span style="color: #cc66cc;">443</span><span style="color: #339933;">;</span>
	server_name  <span style="color: #666666; font-style: italic;">#YOUR DOMAIN HERE#;
</span>
	ssl  on<span style="color: #339933;">;</span>
	ssl_certificate  <span style="color: #666666; font-style: italic;">#YOUR SSL CERTIFICATE FILE HERE#;
</span>	ssl_certificate_key  <span style="color: #666666; font-style: italic;">#YOUR SSL CERTIFICATE KEY FILE HERE#;
</span>
	ssl_session_timeout  5m<span style="color: #339933;">;</span>
&nbsp;
	ssl_protocols  SSLv2 SSLv3 TLSv1<span style="color: #339933;">;</span>
	ssl_ciphers  ALL<span style="color: #339933;">:!</span>ADH<span style="color: #339933;">:!</span>EXPORT56<span style="color: #339933;">:</span>RC4<span style="color: #339933;">+</span>RSA<span style="color: #339933;">:+</span>HIGH<span style="color: #339933;">:+</span>MEDIUM<span style="color: #339933;">:+</span>LOW<span style="color: #339933;">:+</span>SSLv2<span style="color: #339933;">:+</span><span style="color: #990000;">EXP</span><span style="color: #339933;">;</span>
	ssl_prefer_server_ciphers   on<span style="color: #339933;">;</span>
&nbsp;
	access_log  <span style="color: #666666; font-style: italic;">#YOUR ACCESS LOG PATH HERE#
</span>
	location <span style="color: #339933;">/</span> <span style="color: #009900;">&#123;</span>
		root   <span style="color: #666666; font-style: italic;">#YOUR WEB ROOT PATH HERE#;
</span>		index  index<span style="color: #339933;">.</span>php index<span style="color: #339933;">.</span>html index<span style="color: #339933;">.</span>htm<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">#error_page  404  /404.html;
</span>
	<span style="color: #666666; font-style: italic;"># redirect server error pages to the static page /50x.html
</span>	<span style="color: #666666; font-style: italic;">#
</span>	<span style="color: #666666; font-style: italic;">#error_page   500 502 503 504  /50x.html;
</span>	<span style="color: #666666; font-style: italic;">#location = /50x.html {
</span>	<span style="color: #666666; font-style: italic;">#    root   /var/www/nginx-default;
</span>	<span style="color: #666666; font-style: italic;">#}
</span>
	location ~ \<span style="color: #339933;">.</span>php$ <span style="color: #009900;">&#123;</span>
		fastcgi_pass   127<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>1<span style="color: #339933;">:</span><span style="color: #cc66cc;">9000</span><span style="color: #339933;">;</span>
		fastcgi_index  index<span style="color: #339933;">.</span>php<span style="color: #339933;">;</span>
		fastcgi_param  SCRIPT_FILENAME  <span style="color: #666666; font-style: italic;">#YOUR_WEB_ROOT_HERE#$fastcgi_script_name;
</span>		fastcgi_param  HTTPS on<span style="color: #339933;">;</span>
		<span style="color: #b1b100;">include</span> <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>nginx<span style="color: #339933;">/</span>fastcgi_params<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">#A FILE INCLUDE YOUR FASTCGI PARAMETERS
</span>	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>另外，生成SSL的证书和密匙：</p>
<p><code><strong>openssl req -new -x509 -nodes -out server.crt -keyout  server.key</strong></code></p>
<p>详细的NGINX HTTPS服务器配置可以参考：<br />
<a href="http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/" onclick="pageTracker._trackPageview('/outgoing/blog.kovyrin.net/2006/04/17/typical-nginx-configurations/?referer=');">http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/</a></p>
<p>关于SSL的相关信息可以参考：<a href="http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html" onclick="pageTracker._trackPageview('/outgoing/httpd.apache.org/docs/2.0/ssl/ssl_faq.html?referer=');"></p>
<p>http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/phpmyadmin%e8%bf%90%e8%a1%8c%e5%9c%a8nginx-https%e7%9a%84%e9%97%ae%e9%a2%98%e5%8f%8a%e8%a7%a3%e5%86%b3.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

