修論関係の実装で,AWS上にflaskアプリを置いてみようかとちょっと試してみてたのですが,その時にAWSのEC2上でApacheの設定をした時のメモを投下します.具体的には以下.CentOSで行いました.
Apacheのインストール,起動,再起動まで
# yumのアップデートおよびApacheのインストール sudo yum update sudo yum install httpd # 起動 sudo systemctl start httpd # CentOSが立ち上がった時にApacheが自動起動するようにする sudo systemctl enable httpd # 再起動 sudo systemctl restart httpd
特定ディレクトリへのアクセスについて,ダイジェスト認証を必須にする
例えば,/var/www/html/secretディレクトリへのアクセスについて,ダイジェスト認証を必須にしたい時
# 設定ファイルを作成&編集 sudo emacs /etc/httpd/conf.d/secret.conf
secret.confに以下の内容を記載しましょう.
<Directory "/var/www/html/secret"> AuthType Digest AuthName "secret" AuthUserFile /etc/httpd/.htpasswd_digest Require valid-user </Directory>
特定のリクエストをIPフォワーディング&ポートフォワーディングする
Apacheの設定ファイルを開いて以下の内容を追記(/v1/のリクエストをflaskサーバにIPフォワーディング&ポートフォワーディングする)
# 設定ファイルを作成&編集 sudo emacs /etc/httpd/conf/httpd.conf
以下の内容を追記しましょう.Locationタグでリクエストのキーワードを指定するっぽい.
<VirtualHost *:80> ProxyPreserveHost On <Location /v1/> ProxyPass http://xx.xx.xx.xx:yy/v1/ ProxyPassReverse http://xx.xx.xx.xx:yy/v1/ </Location> </VirtualHost>