blog/content/post/1970/01/01/1970-01-01-00000038.md

264 lines
25 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: バックエンドにあるnginxのアクセスログにクライアントIPを記録する
author: kazu634
date: 1969-12-31
wordtwit_post_info:
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:5445;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
categories:
- nginx
---
<div class="section">
<p>
nginxでフロントエンドのプロキシーサーバと、バックエンドのウェブサーバを構成しています。今回、バックエンドのウェブサーバのログを確認したら、クライアントのIPアドレスが「127.0.0.1」となっており、クライアントのIPアドレスになっていないことに気づきました。そこでバックエンドサーバのアクセスログにクライアントのIPアドレスを記録する方法を調べてみました。
</p>
<h4>
前提条件
</h4>
<p>
フロントエンドのプロキシーサーバ側の設定で、X-Real-IPを設定している必要があります。nginx.confなどの設定ファイルで次のように設定しておきます。私はフロントエンドのnginxの設定部分に記載しています:
</p>
<pre class="syntax-highlight">
proxy_set_header X-Real-IP $remote_addr;
</pre>
<h4>
http_real_ipモジュール
</h4>
<p>
調査の結果、<a href="http://wiki.nginx.org/HttpRealIpModule" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://wiki.nginx.org/HttpRealIpModule', 'HttpRealIpModule');" target="_blank">HttpRealIpModule</a>がこの目的を満たすことがわかりました。HttpRealIpModuleとは、
</p>
<blockquote title="http://wiki.nginx.org/HttpRealIpModule" cite="http://wiki.nginx.org/HttpRealIpModule">
<p>
This module allows to change the client&#8217;s IP address to value from request header (e. g. X-Real-IP or X-Forwarded-For).
</p>
<p>
<cite><a href="http://wiki.nginx.org/HttpRealIpModule" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://wiki.nginx.org/HttpRealIpModule', 'http://wiki.nginx.org/HttpRealIpModule');" target="_blank">http://wiki.nginx.org/HttpRealIpModule</a></cite>
</p>
</blockquote>
<p>
プロキシーサーバのIPアドレスじゃなくて、X-Real-IPとか、X-Forwarded-Forを参照して、クライアントのIPアドレスとして扱ってくれるようになります。
</p>
<h4>
設定方法
</h4>
<p>
まずは http_real_ipモジュール が使用できるかどうかを確認します。次のコマンドを実行して、
</p>
<pre class="syntax-highlight">
% nginx <span class="synSpecial">-V</span>
nginx: nginx version: nginx/<span class="synConstant">1</span>.<span class="synConstant"></span>.<span class="synConstant">5</span>
nginx: TLS SNI support enabled
nginx: configure arguments: <span class="synSpecial">--prefix=/etc/nginx</span> <span class="synSpecial">--conf-path=/etc/nginx/nginx.conf</span> <span class="synSpecial">--error-log-path=/var/log/nginx/error.log</span> <span class="synSpecial">--http-client-body-temp-path=/var/lib/nginx/body</span> <span class="synSpecial">--http-fastcgi-temp-path=/var/lib/nginx/fastcgi</span> <span class="synSpecial">--http-log-path=/var/log/nginx/access.log</span> <span class="synSpecial">--http-proxy-temp-path=/var/lib/nginx/proxy</span> <span class="synSpecial">--http-scgi-temp-path=/var/lib/nginx/scgi</span> <span class="synSpecial">--http-uwsgi-temp-path=/var/lib/nginx/uwsgi</span> <span class="synSpecial">--lock-path=/var/lock/nginx.lock</span> <span class="synSpecial">--pid-path=/var/run/nginx.pid</span> <span class="synSpecial">--with-debug</span> <span class="synSpecial">--with-http_addition_module</span> <span class="synSpecial">--with-http_dav_module</span> <span class="synSpecial">--with-http_geoip_module</span> <span class="synSpecial">--with-http_gzip_static_module</span> <span class="synSpecial">--with-http_image_filter_module</span> <span class="synSpecial">--with-http_realip_module</span> <span class="synSpecial">--with-http_stub_status_module</span> <span class="synSpecial">--with-http_ssl_module</span> <span class="synSpecial">--with-http_sub_module</span> <span class="synSpecial">--with-http_xslt_module</span> <span class="synSpecial">--with-ipv6</span> <span class="synSpecial">--with-sha1=/usr/include/openssl</span> <span class="synSpecial">--with-md5=/usr/include/openssl</span> <span class="synSpecial">--with-mail</span> <span class="synSpecial">--with-mail_ssl_module</span> <span class="synSpecial">--add-module=/build/buildd/nginx-1.0.5/debian/modules/nginx-echo</span> <span class="synSpecial">--add-module=/build/buildd/nginx-1.0.5/debian/modules/nginx-upstream-fair</span>
</pre>
<p>
configure argumentsの部分に「&#8211;with-http_realip_module」があれば、使用可能です。
</p>
<p>
バックエンド側に渡されてくるプロキシーサーバのIPアドレスは「127.0.0.1」で固定のため、バックエンド側の設定を実施しているnginx.confなどの設定ファイルで次のように設定します:
</p>
<pre class="syntax-highlight">
set_real_ip_from 127.0.0.1;
real_ip_header X-Real-IP;
</pre>
<p>
追記したら、設定を反映させましょう:
</p>
<pre class="syntax-highlight">
% sudo service nginx <span class="synStatement">reload</span>
</pre>
<h4>
結果
</h4>
<p>
設定ファイルを変更する前:
</p>
<pre class="syntax-highlight">
<span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span> blog.kazu634.com - <span class="synStatement">[</span><span class="synConstant">27</span>/Aug/<span class="synConstant">2011</span>:<span class="synConstant">22</span>:<span class="synConstant">52</span>:<span class="synConstant">03</span> +<span class="synConstant">0900</span><span class="synStatement">]</span> <span class="synStatement">&#34;</span><span class="synConstant">GET /wp-content/uploads/2011/08/slooProImg_20110815194429.jpg HTTP/1.0</span><span class="synStatement">&#34;</span> <span class="synConstant">200</span> <span class="synConstant">100647</span> <span class="synStatement">&#34;</span><span class="synConstant">http://blog.kazu634.com/2011/08/15/%e5%b9%b3%e6%b3%89%e3%81%b8%e8%87%aa%e8%bb%a2%e8%bb%8a%e3%83%84%e3%83%bc%e3%83%aa%e3%83%b3%e3%82%b0/</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span>
<span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span> blog.kazu634.com - <span class="synStatement">[</span><span class="synConstant">27</span>/Aug/<span class="synConstant">2011</span>:<span class="synConstant">22</span>:<span class="synConstant">52</span>:<span class="synConstant">04</span> +<span class="synConstant">0900</span><span class="synStatement">]</span> <span class="synStatement">&#34;</span><span class="synConstant">GET /2011/08/13/%e5%a4%8f%e6%9c%9f%e4%bc%91%e6%9a%87%e3%81%ab%e8%a1%8c%e3%81%a3%e3%81%a6%e3%81%8d%e3%81%be%e3%81%99/ HTTP/1.0</span><span class="synStatement">&#34;</span> <span class="synConstant">200</span> <span class="synConstant">35155</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span>
<span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span> blog.kazu634.com - <span class="synStatement">[</span><span class="synConstant">27</span>/Aug/<span class="synConstant">2011</span>:<span class="synConstant">22</span>:<span class="synConstant">58</span>:<span class="synConstant">46</span> +<span class="synConstant">0900</span><span class="synStatement">]</span> <span class="synStatement">&#34;</span><span class="synConstant">POST /wp-cron.php?doing_wp_cron HTTP/1.0</span><span class="synStatement">&#34;</span> <span class="synConstant">499</span> <span class="synConstant"></span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">WordPress/3.0.1; http://www3232u.sakura.ne.jp/~kazu634</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span>
</pre>
<p>
設定ファイルを変更した後:
</p>
<pre class="syntax-highlight">
<span class="synConstant">119</span>.<span class="synConstant">63</span>.<span class="synConstant">196</span>.<span class="synConstant">125</span> - - <span class="synStatement">[</span><span class="synConstant">27</span>/Aug/<span class="synConstant">2011</span>:<span class="synConstant">23</span>:<span class="synConstant">47</span>:<span class="synConstant">41</span> +<span class="synConstant">0900</span><span class="synStatement">]</span> <span class="synStatement">&#34;</span><span class="synConstant">GET /2010/09/16/</span><span class="synSpecial">ハロウィーンですね</span><span class="synConstant">/ HTTP/1.0</span><span class="synStatement">&#34;</span> <span class="synConstant">200</span> <span class="synConstant">35430</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)</span><span class="synStatement">&#34;</span><span class="synConstant">220</span>.<span class="synConstant">247</span>.<span class="synConstant">23</span>.<span class="synConstant">220</span> - - <span class="synStatement">[</span><span class="synConstant">27</span>/Aug/<span class="synConstant">2011</span>:<span class="synConstant">23</span>:<span class="synConstant">51</span>:<span class="synConstant">44</span> +<span class="synConstant">0900</span><span class="synStatement">]</span> <span class="synStatement">&#34;</span><span class="synConstant">GET /feed/ HTTP/1.0</span><span class="synStatement">&#34;</span> <span class="synConstant">200</span> <span class="synConstant">65789</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">Apple-PubSub/65.21</span><span class="synStatement">&#34;</span>
<span class="synConstant">66</span>.<span class="synConstant">249</span>.<span class="synConstant">69</span>.<span class="synConstant">54</span> - - <span class="synStatement">[</span><span class="synConstant">27</span>/Aug/<span class="synConstant">2011</span>:<span class="synConstant">23</span>:<span class="synConstant">56</span>:<span class="synConstant">33</span> +<span class="synConstant">0900</span><span class="synStatement">]</span> <span class="synStatement">&#34;</span><span class="synConstant">GET /page/10/ HTTP/1.0</span><span class="synStatement">&#34;</span> <span class="synConstant">200</span> <span class="synConstant">50757</span> <span class="synStatement">&#34;</span><span class="synConstant">-</span><span class="synStatement">&#34;</span> <span class="synStatement">&#34;</span><span class="synConstant">Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)</span><span class="synStatement">&#34;</span>
</pre>
<h4>
参考
</h4>
<p>
ちなみに私の設定ファイルはこんな感じにしています:
</p>
<h5>
nginx.conf
</h5>
<pre class="syntax-highlight">
% cat nginx.conf
user www-data<span class="synStatement">;</span>
worker_processes <span class="synConstant">2</span><span class="synStatement">;</span>
error_log /var/log/nginx/error.log<span class="synStatement">;</span>
pid /var/run/nginx.pid<span class="synStatement">;</span>
events <span class="synSpecial">{</span>
worker_connections <span class="synConstant">1024</span><span class="synStatement">;</span>
<span class="synComment"> # multi_accept on;</span>
<span class="synSpecial">}</span>
http <span class="synSpecial">{</span>
include /etc/nginx/mime.types<span class="synStatement">;</span>
access_log /var/log/nginx/access.log<span class="synStatement">;</span>
sendfile on<span class="synStatement">;</span>
<span class="synComment"> #tcp_nopush on;</span>
<span class="synComment"> #keepalive_timeout 0;</span>
keepalive_timeout <span class="synConstant">10</span><span class="synStatement">;</span>
tcp_nodelay on<span class="synStatement">;</span>
gzip on<span class="synStatement">;</span>
gzip_disable <span class="synStatement">&#34;</span><span class="synConstant">MSIE [1-6]\.(?!.*SV1)</span><span class="synStatement">&#34;;</span>
proxy_cache_path /var/www/proxy/nginx_cache <span class="synIdentifier">levels</span>=<span class="synConstant">1</span>:<span class="synConstant">2</span> <span class="synIdentifier">keys_zone</span>=czone:4m <span class="synIdentifier">max_size</span>=50m <span class="synIdentifier">inactive</span>=120m<span class="synStatement">;</span>
proxy_temp_path /var/www/proxy/nginx_tmp<span class="synStatement">;</span>
proxy_redirect off<span class="synStatement">;</span>
proxy_set_header Host <span class="synPreProc">$host</span><span class="synStatement">;</span>
proxy_set_header X-Real-IP <span class="synPreProc">$remote_addr</span><span class="synStatement">;</span>
proxy_set_header X-Forwarded-Host <span class="synPreProc">$host</span><span class="synStatement">;</span>
proxy_set_header X-Forwarded-Server <span class="synPreProc">$host</span><span class="synStatement">;</span>
proxy_set_header X-Forwarded-For <span class="synPreProc">$proxy_add_x_forwarded_for</span><span class="synStatement">;</span>
include /etc/nginx/conf.d/*.conf<span class="synStatement">;</span>
include /etc/nginx/sites-enabled/*<span class="synStatement">;</span>
<span class="synSpecial">}</span>
<span class="synComment"># mail {</span>
<span class="synComment"># # See sample authentication script at:</span>
<span class="synComment"># # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript</span>
<span class="synComment">#</span>
<span class="synComment"># # auth_http localhost/auth.php;</span>
<span class="synComment"># # pop3_capabilities &#34;TOP&#34; &#34;USER&#34;;</span>
<span class="synComment"># # imap_capabilities &#34;IMAP4rev1&#34; &#34;UIDPLUS&#34;;</span>
<span class="synComment">#</span>
<span class="synComment"># server {</span>
<span class="synComment"># listen localhost:110;</span>
<span class="synComment"># protocol pop3;</span>
<span class="synComment"># proxy on;</span>
<span class="synComment"># }</span>
<span class="synComment">#</span>
<span class="synComment"># server {</span>
<span class="synComment"># listen localhost:143;</span>
<span class="synComment"># protocol imap;</span>
<span class="synComment"># proxy on;</span>
<span class="synComment"># }</span>
<span class="synComment"># }</span>
</pre>
<h5>
フロント・バックエンド側
</h5>
<pre class="syntax-highlight">
% cat wordpress
<span class="synComment"># You may add here your</span>
<span class="synComment"># server {</span>
<span class="synComment"># ...</span>
<span class="synComment"># }</span>
<span class="synComment"># statements for each of your virtual hosts</span>
server <span class="synSpecial">{</span>
listen <span class="synConstant">8001</span><span class="synStatement">;</span>
server_name _<span class="synStatement">;</span>
set_real_ip_from <span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span><span class="synStatement">;</span>
real_ip_header X-Real-IP<span class="synStatement">;</span>
access_log /var/log/nginx/blog.access.log<span class="synStatement">;</span>
error_log /var/log/nginx/blog.error.log<span class="synStatement">;</span>
location / <span class="synSpecial">{</span>
root /var/www/nginx-default/domain/wordpress<span class="synStatement">;</span>
index index.php<span class="synStatement">;</span>
<span class="synStatement">if</span> <span class="synStatement">(</span>-f <span class="synPreProc">$request_filename</span><span class="synStatement">)</span> <span class="synSpecial">{</span>
expires 30d<span class="synStatement">;</span>
<span class="synStatement">break;</span>
<span class="synSpecial">}</span>
<span class="synStatement">if</span> <span class="synStatement">(!</span>-e <span class="synPreProc">$request_filename</span><span class="synStatement">)</span> <span class="synSpecial">{</span>
rewrite ^.+?<span class="synStatement">(</span>wp-.*<span class="synStatement">)</span> <span class="synPreProc">$1</span> last<span class="synStatement">;</span>
rewrite ^.+?<span class="synStatement">(</span>.*\.php<span class="synStatement">)</span>$ <span class="synPreProc">$1</span> last<span class="synStatement">;</span>
rewrite ^ /index.php last<span class="synStatement">;</span>
<span class="synSpecial">}</span>
}
location ~ \.php$ <span class="synSpecial">{</span>
include /etc/nginx/fastcgi_params<span class="synStatement">;</span>
fastcgi_pass <span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span>:<span class="synConstant">9000</span><span class="synStatement">;</span>
fastcgi_index index.php<span class="synStatement">;</span>
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default/domain/wordpress<span class="synPreProc">$fastcgi_script_name</span><span class="synStatement">;</span>
<span class="synSpecial">}</span>
}
upstream backend <span class="synSpecial">{</span>
ip_hash<span class="synStatement">;</span>
server <span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span>:<span class="synConstant">8001</span><span class="synStatement">;</span>
<span class="synSpecial">}</span>
server <span class="synSpecial">{</span>
listen <span class="synConstant">80</span><span class="synStatement">;</span>
server_name blog.kazu634.com<span class="synStatement">;</span>
access_log /var/log/nginx/front_proxy.access.log<span class="synStatement">;</span>
error_log /var/log/nginx/front_proxy.error.log<span class="synStatement">;</span>
location /wp-admin <span class="synSpecial">{</span> proxy_pass http://backend<span class="synStatement">;</span> <span class="synSpecial">}</span>
location /wp-login.php <span class="synSpecial">{</span> proxy_pass http://backend<span class="synStatement">;</span> <span class="synSpecial">}</span>
location / <span class="synSpecial">{</span>
<span class="synStatement">if</span> <span class="synStatement">(</span><span class="synPreProc">$http_cookie</span> ~* <span class="synStatement">&#34;</span><span class="synConstant">comment_author_|wordpress_(?!test_cookie)|wp-postpass_</span><span class="synStatement">&#34;</span> <span class="synStatement">)</span> <span class="synSpecial">{</span>
<span class="synStatement">set </span><span class="synPreProc">$do_not_cache</span> <span class="synConstant">1</span><span class="synStatement">;</span>
<span class="synSpecial">}</span>
<span class="synStatement">if</span> <span class="synStatement">(</span><span class="synPreProc">$http_user_agent</span> ~* “<span class="synConstant">2</span>.<span class="synConstant"></span>\ 2MMP<span class="synStatement">|</span>240×320<span class="synStatement">|</span>400X240<span class="synStatement">|</span>AvantGo<span class="synStatement">|</span>BlackBerry<span class="synStatement">|</span>Blazer<span class="synStatement">|</span>Cellphone<span class="synStatement">|</span>Danger<span class="synStatement">|</span>DoCoMo<span class="synStatement">|</span>Elaine/<span class="synConstant">3</span>.<span class="synConstant"></span><span class="synStatement">|</span>EudoraWeb<span class="synStatement">|</span>Googlebot-Mobile<span class="synStatement">|</span>hiptop<span class="synStatement">|</span>IEMobile<span class="synStatement">|</span>KYOCERA/WX310K<span class="synStatement">|</span>LG/U990<span class="synStatement">|</span>MIDP<span class="synConstant">-2</span>.<span class="synStatement">|</span>MMEF20<span class="synStatement">|</span>MOT-V<span class="synStatement">|</span>NetFront<span class="synStatement">|</span>Newt<span class="synStatement">|</span>Nintendo\ Wii<span class="synStatement">|</span>Nitro<span class="synStatement">|</span>Nokia<span class="synStatement">|</span>Opera\ Mini<span class="synStatement">|</span>Palm<span class="synStatement">|</span>PlayStation\ Portable<span class="synStatement">|</span>portalmmm<span class="synStatement">|</span>Proxinet<span class="synStatement">|</span>ProxiNet<span class="synStatement">|</span>SHARP-TQ-GX10<span class="synStatement">|</span>SHG-i900<span class="synStatement">|</span>Small<span class="synStatement">|</span>SonyEricsson<span class="synStatement">|</span>Symbian\ OS<span class="synStatement">|</span>SymbianOS<span class="synStatement">|</span>TS21i<span class="synConstant">-10</span><span class="synStatement">|</span>UP.Browser<span class="synStatement">|</span>UP.Link<span class="synStatement">|</span>webOS<span class="synStatement">|</span>Windows\ CE<span class="synStatement">|</span>WinWAP<span class="synStatement">|</span>YahooSeeker/M1A1-R2D2<span class="synStatement">|</span>iPhone<span class="synStatement">|</span>iPod<span class="synStatement">|</span>Android<span class="synStatement">|</span>BlackBerry9530<span class="synStatement">|</span>LG-TU915\ Obigo<span class="synStatement">|</span>LGE\ VX<span class="synStatement">|</span>webOS<span class="synStatement">|</span>Nokia5800″<span class="synStatement">)</span> <span class="synSpecial">{</span>
<span class="synStatement">set </span><span class="synPreProc">$do_not_cache</span> <span class="synConstant">1</span><span class="synStatement">;</span>
<span class="synSpecial">}</span>
proxy_no_cache <span class="synPreProc">$do_not_cache</span><span class="synStatement">;</span>
proxy_cache_bypass <span class="synPreProc">$do_not_cache</span><span class="synStatement">;</span>
proxy_pass http://backend<span class="synStatement">;</span>
proxy_cache czone<span class="synStatement">;</span>
proxy_cache_key <span class="synPreProc">$scheme$proxy_host$uri$is_args$args</span><span class="synStatement">;</span>
proxy_cache_valid <span class="synConstant">200</span> 10m<span class="synStatement">;</span>
proxy_redirect off<span class="synStatement">;</span>
proxy_set_header Host <span class="synPreProc">$host</span><span class="synStatement">;</span>
proxy_set_header X-Real-IP <span class="synPreProc">$remote_addr</span><span class="synStatement">;</span>
proxy_set_header X-Forwarded-Host <span class="synPreProc">$host</span><span class="synStatement">;</span>
proxy_set_header X-Forwarded-Server <span class="synPreProc">$host</span><span class="synStatement">;</span>
proxy_set_header X-Forwarded-For <span class="synPreProc">$proxy_add_x_forwarded_for</span><span class="synStatement">;</span>
}
}
server <span class="synSpecial">{</span>
listen <span class="synConstant">80</span><span class="synStatement">;</span>
server_name www3232u.sakura.ne.jp <span class="synConstant">59</span>.<span class="synConstant">106</span>.<span class="synConstant">177</span>.<span class="synConstant">26</span> localhost<span class="synStatement">;</span>
access_log /var/log/nginx/sakura.access.log<span class="synStatement">;</span>
error_log /var/log/nginx/sakura.error.log<span class="synStatement">;</span>
location /~kazu634/ <span class="synSpecial">{</span>
rewrite ^.*/~kazu634<span class="synStatement">(</span>/.*<span class="synStatement">)</span> http://blog.kazu634.com<span class="synPreProc">$1</span><span class="synStatement">;</span>
<span class="synSpecial">}</span>
location / <span class="synSpecial">{</span>
<span class="synStatement">return</span> <span class="synConstant">404</span><span class="synStatement">;</span>
<span class="synSpecial">}</span>
location /nginx_status <span class="synSpecial">{</span>
stub_status on<span class="synStatement">;</span>
access_log off<span class="synStatement">;</span>
allow <span class="synConstant">127</span>.<span class="synConstant"></span>.<span class="synConstant"></span>.<span class="synConstant">1</span><span class="synStatement">;</span>
deny all<span class="synStatement">;</span>
<span class="synSpecial">}</span>
<span class="synSpecial">}</span>
</pre>
</div>