2017-01-26 5 views
0

ローカルネットワーク上に2台のLinuxサーバがあります。私はアプリケーションサーバとしてIP 192.168.1.111を使用してポート8080でノードアプリケーションを実行します。WebサーバとしてIP 192.168.1.100のPCでNGINXを使用し、リバースプロキシとして設定します。リバースプロキシとしてのNGINXは静的な公開ファイルを表示できません

ブラウザの[ネットワーク]タブで、すべてのファイルが適切に配信されていることがわかります(ステータス200 OK)。しかし、すべての静的ファイルは表示されません。

静的ファイル(CSS、JS、画像、フォント)は、この問題が発生する理由/var/www/domain.com/public

任意のアイデア内部のサブフォルダに配置されていますか?

ここに私のnginx.confファイル:

ここ
user www-data; 
worker_processes 2; 
pid /run/nginx.pid; 

events { 
     worker_connections 768; 
     # multi_accept on; 
} 

http { 
     sendfile on; 
     tcp_nopush on; 
     tcp_nodelay on; 
     keepalive_timeout 65; 
     types_hash_max_size 2048; 
     # server_tokens off; 

     # server_names_hash_bucket_size 64; 
     # server_name_in_redirect off; 

     include /etc/nginx/mime.types; 
     default_type application/octet-stream; 

     access_log /var/log/nginx/domain.com/access.log; 
     error_log /var/log/nginx/domain.com/error.log; 

     gzip on; 
     gzip_disable "msie6"; 

     include /etc/nginx/conf.d/*.conf; 
     include /etc/nginx/sites-enabled/*; 
} 

/etc/nginx/sites-enabled/domain.comファイル

upstream appserver { 
     server 192.168.1.111:8080; 
} 

server { 

     listen 80; 

     server_name domain.com www.domain.com; 
     root /var/www/domain.com/public; 

     location ~ ^/(images/|js/|css/|media/|favicon.ico) { 
       #access_log off; 
       expires off; 
     } 

     location/{ 
       proxy_pass http://appserver; 
       include /etc/nginx/proxy_params; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 
     } 
} 

そして、ここで私は定期的に明示して素晴らしいではありませんよaccess.logファイル

192.168.1.105 - - [26/Jan/2017:21:33:54 +0100] "GET /images/shop.png HTTP/1.1" 200 13643 "http://192.168.1.100/home" "Mozilla/5.0 (X11; Linux x86_64) ..." 
192.168.1.105 - - [26/Jan/2017:21:33:54 +0100] "GET /images/code.png HTTP/1.1" 200 13443 "http://192.168.1.100/home" "Mozilla/5.0 (X11; Linux x86_64) ..." 
192.168.1.105 - - [26/Jan/2017:21:33:54 +0100] "GET /images/line.png HTTP/1.1" 200 13643 "http://192.168.1.100/home" "Mozilla/5.0 (X11; Linux x86_64) ..." 
+0

はあなたを持っていますあなたの場所に 'try_files $ uri = 404'を追加しようとしましたか? – keja

+0

いいえ役に立ちません – nanachimi

答えて

0

私は掲示設定が正しいです。この問題の修正は、プロの静的ファイルのルートフォルダの所有権を実際に変更していました。

drwxr-xr-x 2 www-data root 4096 Jan 26 15:01 css/ 
drwxr-xr-x 2 www-data root 4096 Jan 26 15:01 fonts/ 
drwxr-xr-x 2 www-data root 4096 Jan 26 15:01 images/ 
drwxr-xr-x 2 www-data root 4096 Jan 26 16:17 js/ 
[email protected]:~$ 

許可(作品)の後に::前

許可所有権を変更し、適切なアクセス許可を設定するには

drwxrwxr-x 2 webmaster webmaster 4096 Jan 26 00:00 css/ 
drwxrwxr-x 2 webmaster webmaster 4096 Jan 13 00:15 fonts/ 
drwxrwxr-x 2 webmaster webmaster 4096 Jan 13 00:15 images/ 
drwxrwxr-x 2 webmaster webmaster 4096 Jan 26 16:50 js/ 
[email protected]:~$ 

は、次のコマンドを実行します。

sudo chmod 775 /var/www/domain.com/public/ -R 
sudo chown -R webmaster:webmaster /var/www/domain.com/public/ 
1

イオンとnginxしかし、これは私がそれを行う方法です、それは私のために動作します。 基本的にディレクトリとファイルパスを取得URLに送信され、エイリアスパブリックパスに渡して、あなたは場所を取得していると思われ、 "期限切れ"をオフにする以外は何もしません。

場所〜^ /(?[^ /] +)/(?[^ /] +)$ {

  gzip on;    
      alias /nodeproj/public/$dir/$file; 

    } 
+0

私のノードプロジェクト(アプリケーションサーバー)はNGINXプロキシと同じマシンにありません。私が読んだドキュメンテーションによると、サーバレベルでのルートディレクティブの設定は、ロケーションブロックに適用されます。 – nanachimi

関連する問題