Linuxでnginxを使用した



有するLinuxでNGinXを使ったネットコアは簡単に想像できるでしょう.この記事では、NGinxに関連した私の経験について話します.あなたが私のようなIIS/Windows世界から来るならば、あなたが心ですべてを知っている所で、Nginxの宣言的なアプローチは少し奇妙かもしれません.

私はすでに何か他の何かを必要とするか?


KSTRALはASPのデフォルトサーバ実装です.ネットコア、それは超高速、クロスプラットフォーム、カスタマイズ可能であり、それ自身で実行することができます.それは完璧なサーバーですが、それはセキュリティに関連する多くの機能が不足しているように見えます.ケストレルについてのもう一つのものは、それです
必要ではありませんが、それはあなたの構成と防御の余分な層を与えるため、既存のインフラストラクチャとスムーズに統合するためKestrlの前に逆プロキシを持つことをお勧めします.

逆プロキシサーバのないエッジサーバとしてsedは、複数のプロセス間で同じIPとポートを共有することをサポートしません。 Nginxとは


はWebサービスのためのオープンソースソフトウェア、ロードバランシング、また、逆プロキシ機能を持っているメディアストリーミングです.NGinxの背後にある目標の一つは、そこに最速のWebサーバーを作成することでした.現在、最も人気のあるサーバNGINXの1つである

そこに。 Linuxでnginxをインストールする


Linuxディストリビューションによっては、パッケージマネージャは異なるかもしれません.私は、赤い帽子sudo yum install nginxトリックをしました.成功したインストールの後、あなたはサーバー(例えば強調されたフォルダなしで)のように見えているサーバーの/etc/nginx経路の下でNGinxのためにファイルとフォルダを見つけます
Nginx構造
そこに最も重要なファイルの一つはnginxです.あなたのウェブアプリのための他の構成を含むか、参照するconfファイル.NGINXサーバを起動できるようにするためには、この設定は有効でなければなりません.

NGinxのすべてのアプリケーションの設定


今、私は少しデフォルトのnginxをクリーンアップしました.confのようになります.
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

}
より簡単なフォーマットのために、私は2つの拡張でVisual Studioコードを使用しました
ライン28で、私は別のウェブサイトのすべての私の設定を別々のファイルに配置したいので、include文を追加しました.
その後、SiteCount有効なフォルダ、およびCertsフォルダ(証明書を含む)を作成しました.SiteCount有効なフォルダでは、私はMyAPIという名前のファイルを作成しました.confとその中で、これを追加しました.
server {
    server_name myserver;
    root /var/opt/myapps/ui;

    index index.html index.htm index.nginx-debian.html;

    location / {
        try_files $uri $uri/ /index.html;
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }

    location /api {
        proxy_pass http://localhost:4906;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }
}
設定ファイルには2つの'場所'セクション、UIアプリ用のもの、API用のものがあります.二つのアプリは、同じ'ドメイン'から別のパスで提供したいと思います.
  • のようなルートからのUIアプリ/myapp
  • などの階層の深い何かからのAPI
    これが完了すると、ターミナルでnginx -t -c /etc/nginx/nginx.confを実行することでNGinx設定をテストできます.それがうまくいくなら、あなたは先に進むことができます

    役に立つnginxコマンド

    sudo nginx service startsudo nginx service restartsudo nginx service status

    nginx設定 要約する


    設定方法を見ました.NGNXとLinuxのコアは同じですが、Windowsでも同じ設定が動作します.あなたが設定NGANXのほかに行う必要がある唯一のことはNginx Formatter.にし、確認することです.
    次のポストでは、我々のAPIの前にhttpsを追加します.なぜなら、セキュリティを気にする必要があるからです.
    (Irina Sturtuのブログ)で、最初にポストrun the API as a Linux Serviceが現れました