広告・Googleアドセンス728px

Article(記事)

apacheでのリバースプロキシ構築

投稿日:
更新日:

ご注意ください
この記事は2年以上前に書かれたものですので、内容が古い可能性があります。


SSLをハンドリングする場合については、apacheでのリバースプロキシ構築(SSL編)に追記しました。

うちの自宅は1つのグローバルIPで複数のドメインを運用し、複数のHPやらBlogを運営しています。

今回自分のBlogはMovable TypeからWordPressに移行しましたが、サーバのOSが古かったせいもありWordPressは新サーバを構築して移行をしています。

しかし一回で全てのコンテンツを移行するのはなかなか難しかったため、リバースプロキシサーバを立ててURIで新旧のサーバを振り分けるようにしたいと思います。

イメージは以下の通り。

今回のポイントは以下の点かと思います。

  • バーチャルドメインを使って運用している
  • バックエンドサーバの文字コードが違う

さて、それでは各サーバの設定を見ていきます。

フロントエンドサーバ
フロントエンドサーバ側にはReverseProxyの設定をします。

/etc/httpd/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so
~~
#
# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default.  To use the
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
#AddDefaultCharset UTF-8
AddDefaultCharset Off
#
# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
#AddType application/x-tar .tgz

11行目のキャラクタセットをOffに変更します。これをオフにしていないとバックエンドサーバの旧サーバ側の文字が化け化けになってしまいます。

以下Virtualhostごとにリバースプロキシ設定を入れます。

#NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
NameVirtualHost 192.168.xx.xx:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
<VirtualHost 192.168.xx.xx:80>
ProxyPreserveHost On
ProxyPass / 
ProxyPassReverse / 
ServerName hogehoge.com
ServerAlias *.hogehoge.com
ErrorLog logs/error_log
TransferLog logs/access_log
</VirtualHost>
<VirtualHost 192.168.xx.xx:80>
ProxyPreserveHost On
ProxyPass / 
ProxyPassReverse / 
ServerName example.com
ServerAlias *.example.com
ErrorLog logs/error_log
TransferLog logs/access_log
</VirtualHost>
<VirtualHost 192.168.xx.xx:80>
ProxyPreserveHost On
ProxyPass / 
ProxyPassReverse / 
ServerName kamata-net.com
ServerAlias *.kamata-net.com
ErrorLog logs/error_log
TransferLog logs/access_log
</VirtualHost>

バックエンド側サーバの設定変更は特に必要ありません。

この記事は役に立ちましたか?評価をお願いいたします。
[合計: 3 平均: 3]

広告336px

広告336px

-Article(記事)
-, ,

Copyright© 蒲田ネット , 2017 AllRights Reserved.