2016-05-16 5 views
1

自分自身でWebフロントエンドとバックエンドを構築する方法を学習しています。
nginxを使用してnodejsのパフォーマンスを向上させる方法についていくつかのブログを読んだことがあります。
しかし、私はまだいくつかの質問がある、私はいくつかの人々が私を助けることができる願っています!nginxを使用してnodejのパフォーマンスを改善するには

サーブ静的ファイル 1.私はwanaが純粋なdoc web(pebble time dev docのような)を構築します。私の計画はangularjsを使用しています。ユーザーが1つのアイテムをクリックするたびに、ajaxを使用して特定のhtmlリソースを読み込みます。私の知る限り、Nginxは静的ファイルを非常にうまく処理できます。ここでNginxを使用してnodejsバックエンドを使用することはできますか?

2.サインイン、サインアウト、セッションなどの通常のウェブを構築します。一部の人々はnodejs自身でページを提供してレンダリングすることは本当に悪いと言いました。しかし、私は各ユーザーの要求でセッションをチェックする必要があります。 nodejsがセッションをチェックし、次にnginxの応答htmlファイルをチェックすることは可能ですか?このよう

app.get('/about', function (req, res) 
{ 
    response.writeHeader(200, {"Content-Type": "text/html"}); 
    response.write(html); // serve by nginx 
    response.end(); 
}); 
+0

に類似しているフォルダ構造はこのように行うにはnginxのを伝えるために、同じことだ:ロカ/ {try_files $ uri $ uri.html $ uri/$ uri.php; index index.html index.htm index.php; } – num8er

+1

申し訳ありませんが、@ num8er。サンプルコードを更新します。 –

+0

はい、それは問題ありません。しかし、私はあなたが私の答えに例を使用したことを願っています。セッションについて:req.sessionの単なるオブジェクトです。だから、あなたはユーザーセッションやロールの存在をreq.sessionで確認するミドルウェアを持つことができます。もしOKならnext()を呼び出します。 Youtube – num8er

答えて

1

として
(フロントエンドもangularjsである。) 私はまっすぐになります。

より良い練習はあなたは、パブリックフォルダとnodejsアプリを持っているフォルダを持っている、といくつかの拡張機能のためのパブリックフォルダにだけ見えるようにnginxの教えが、他の要求が通過するため

あなたnginxのホストファイルをnodejsするします

server { 
    listen 80; 

    server_name yourdomain.com www.yourdomain.com; 

    index index.html index.htm; 

    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm|mp3)$ { 
     root /home/yourdomain/public; # or any path to public folder 
     expires 30d; 
     add_header Pragma public; 
     add_header Cache-Control "public"; 
    } 

    # all other requests goes to :8000 
    location/{ 
     log_not_found off; 
     access_log off; 
     proxy_pass http://127.0.0.1:8000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

この

enter image description here

+0

あなたの例では、server.jsが8000ポートでリッスンします。 –

+0

@鄭元重NodeJSは8000(ほとんどの場合1337)または任意のポートでリッスンします.nginxは80でリッスンし、プロキシは自分のノードのアプリケーションポートに渡します – num8er

関連する問題