ご覧頂きありがとうございます。
不慣れなためご無礼あるかもしれませんがご容赦下さい。
####発生している問題
Nginxでリバースプロキシして、1つのドメイン(www.sample-web.com)に対して3つのapp.jsを作成し、デーモン化しています。
www.sample-web.comは3000ポートで受付し、www.sample-web.com/writeは4000ポート、www.sample-web.com/readは5000ポートで受け付けています。
それぞれのページを3つのポートで受け付けているのはwriteとreadそれぞれの処理を分散(シングルスレッドのため)させたいためです。
sample-web.com/writeに接続した際に、静的ファイルの読み込みが受け付けている4000ポートのディレクトリではなく、3000ポートのpublicディレクトリから読み込まれてしまいます。
viewやrouterはそれぞれのファイル別に読み込むことができますが、静的ファイルのみ不可解な挙動をしています。
文章とするのがやや難しいため、下記をご覧ください。
www ├──sample-web.com(3000ポートで受付) │ ├── app.js │ ├── package.json │ ├── public │ │ ├── images │ │ ├── javascripts │ │ └── stylesheets │ │ └── style.css(※これが読み取られる) │ ├── routes │ │ ├── index.js │ │ └── users.js │ └── views │ ├── error.jade │ ├── index.jade │ └── layout.jade ├── sample-web.com_write(4000ポートで受付) │ ├── app.js │ ├── package.json │ ├── public │ │ ├── images │ │ ├── javascripts │ │ └── stylesheets │ │ └── style.css(※これを読み込んでほしいが読み込まれない) │ ├── routes │ │ ├── index.js │ │ └── users.js │ └── views │ ├── error.ejs │ ├── index.ejs │ └── layout.ejs └── sample-web.com_read(5000ポートで受付) ├── app.js ├── package.json ├── public │ ├── images │ ├── javascripts │ └── stylesheets │ └── style.css(※これを読み込んでほしいが読み込まれない) ├── routes │ ├── index.js │ └── users.js └── views ├── error.ejs ├── index.ejs └── layout.ejs
リバースプロキシの設定は下記になります。
nginx
1server { 2 listen 443 ssl; 3 ssl_certificate /etc/nginx/ssl/ssl.crt; 4 ssl_certificate_key /etc/pki/tls/certs/server.key; 5 server_name sample-web.com; 6 ssl_session_cache shared:SSL:1m; 7 ssl_session_timeout 5m; 8 ssl_ciphers HIGH:!aNULL:!MD5; 9 ssl_prefer_server_ciphers on; 10 ssl_protocols TLSv1.1 TLSv1.2; 11 ssl_stapling on; 12 resolver 153.126.201.175 valid=300s; 13 14 location / { 15 proxy_set_header X-Forwarded-for $remote_addr; 16 proxy_pass http://sample-web.com:3000; 17 proxy_set_header Upgrade $http_upgrade; 18 proxy_set_header Connection "upgrade"; 19 20 location /write { 21 proxy_pass http://sample-web.com:4000; 22 } 23 24 location /read { 25 proxy_pass http://sample-web.com:5000; 26 } 27 28 29 } 30 31 32} 33
4000ポートで起動しているapp.jsのpublicファイルの設定は下記になります。
javascript
1// www/sample-web.com_write/app.js 2//staticの設定 3app.use(express.static(path.join(__dirname,'public')));
####実現したいこと
それぞれ起動しているポートで、静的ファイルをそれぞれのディレクトリにあるpublicフォルダから供給したいです。
もしよろしければお知恵をお貸し頂ければ幸いです。
####実行環境
node.js v8.11.4
Express v4.16.0
nginx v1.15.2
あなたの回答
tips
プレビュー