- オブジェクトストレージへのアクセスをNginxを経由させる
- Apacheで公開してる既存サイトもついでにNginx経由させる
ApacheとNginxはデフォルトで80で動作するので、
Nginxを動作させるために既存サイトもNginxを経由させる必要がある。
$ sudo apt-get install nginx
$ sudo vim /etc/apache2/ports.conf
- Listen 80
+ Listen 8080
$ sudo vim /etc/apache2/sites-available/*****.conf
- <VirtualHost *:80>
+ <VirtualHost *:8080>
$ sudo /etc/init.d/apache2 restart
sites-available/*
で<VirtualHost *:80>
になっているところも変更が必要。
これでApacheで動いてる既存サイトは全て8080に変更される。
$ sudo vim /etc/nginx/proxy_params
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-Server $host;
+ proxy_set_header X-Real-IP $remote_addr;
$ sudo vim /etc/nginx/reverse_proxy
+ server {
+ listen 80;
+ server_name xxxxxx.xxx;
+ location / {
+ proxy_pass http://xxxxxx.xxx:8080;
+ }
+ }
# サブドメインとかで複数サイトあるならserverを増やす
+ server {
+ listen 80;
+ server_name xxxx.xxxxxx.xxx;
+ location / {
+ proxy_pass http://xxxx.xxxxxx.xxx:8080;
+ }
+ }
$ sudo /etc/init.d/nginx restart
コンテナのメタデータに名前がX-Container-Read
のヘッダを追加して、
値を.r:*
にするだけでOK。Cyberduckでやる。
- コンテナを作成する
- コンテナを選択して、情報を見る
Metadata
を選択して、下部の歯車アイコンからCustom Header
を選択- NameとValueをそれぞれ上記の通りに設定
- コンテナを右クリックして
CopyURL
してURLを控える
$ sudo vim /etc/nginx/reverse_proxy
+ server {
+ listen 80;
+ server_name xxxx.xxxxxx.xxx; #今回は共有用でサブドメイン設定した
+ location /[作成したコンテナ名] {
+ proxy_pass [コンテナのURL];
+ }
+ }
$ sudo /etc/init.d/nginx restart
これで設定したサブドメイン/コンテナ名/ファイル名で共有ファイルにアクセスできるはず。
Basic認証つけてみる
$ sudo apt-get install apache2-utils
$ sudo htpasswd -c /etc/nginx/.htpasswd [ユーザー名]
New password: ********
Re-type new password: ********
$ sudo vim /etc/nginx/reverse_proxy
server {
listen 80;
server_name xxxx.xxxxxx.xxx; #今回は共有用でサブドメイン設定した
location /[作成したコンテナ名] {
proxy_pass [コンテナのURL];
+ auth_basic "[Basic認証ダイアログに表示するコメント(マルチバイト文字化けます)]";
+ auth_basic_user_file /etc/nginx/.htpasswd;
}
}
$ sudo /etc/init.d/nginx restart
外部からのApacheへのアクセスの拒否設定を忘れた・・・
あとでやる( ・ิϖ・ิ)