试着概括一下 Nginx
为了学习Linux2,试着总结一下Nginx。它与Apache一样受欢迎,由于我没有过多关注细节设置,所以我的总结比较简单。
安装
我经常使用Amazon Linux 2,但是Amazon Linux 2没有提供Nginx的yum包。
因此,需要按照以下步骤进行添加。
在亚马逊Linux 2上,从附加软件仓库安装Nginx。
主要的配置文件
ファイル説明/etc/nginx/nginx.confメイン設定ファイル/etc/nginx/conf.d/default.confデフォルトサーバーの設定ファイル/etc/nginx/conf.d/ssl/confSSLの設定ファイル/etc/nginx/conf.d/virtual.confバーチャルホストの設定ファイル
基本书式:指令 值;
还有一些采用块结构的指令。
在父块中设置的内容会传递给子块。
指令{
其他指令;
…
}
ディレクティブ説明コンテキストinclude他の設定ファイルを読み込む全てuserワーカープロセスの実行ユーザーmainworker_processesワーカープロセス数mainworker_connections1つのワーカープロセスが同時に処理できるコネクション数eventslog_formatアクセスログの書式定義httpaccess_logアクセスログのパスとログレベルhttp,server,locationerror_logエラーログファイルのパスとログレベルmain,http,server.locationlistenリクエストを受け付けるポート番号serverserver_nameサーバー名serverkeepalive_requests一度の接続で受け付けることのできるリクエスト数の上限http,server,locationkeepalive_timeoutキープアライブのタイムアウトまでの秒数http,server,locationserver_tokensバージョン番号の表示http,server,locationrootドキュメントルートhttp,server,locationindexインデックスファイルhttp,server,locationautoindexインデックスリスト表示のon/offhttp,server,locationerror_pageエラーコードとエラーページノURIhttp,server,locationrewriteリダイレクトの設定server,locationfastcgi_passFastCGI サーバへリクエストをプロキシする
在上下文中,您可以使用各种指令来指定参数。
如果要将用户重定向到另一个网站,可以按照以下方式进行设置。
※ 如果是临时重定向,则将 “permanent” 更改为 “redirect”。
server {
listen 80;
server_name www.example.com;
rewrite ^(.*)$ http://www.example.net$1 permanent;
SSL/TLS: 安全套接层/传输层安全
SSL関連のディレクティブ説明sslonなら有効ssl_certificateサーバー証明書ファイル、中間CA証明書ファイルssl_certificate_keyサーバー秘密鍵ファイルssl_protocolsバージョンssl_ciphers暗号アルゴリズム
http {
ssl_ciphers:ECDHE-RSA-AES128-SHA;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
}
server {
ssl on;
listen 443 ssl;
server_name www.example.com;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
root /var/www/html;
location / {
index index.html index.htm;
}
如果在Nginx中省略ssl_protocols和ssl_ciphers会发生什么情况?
反向代理
リバースプロキシ関連のディレクティブ説明proxy_passプロキシ先URIproxy_http_versionhttpのバージョンproxy_set_headerプロキシ先に送られるリクエストヘッダの定義
server{
listen 80 default_server;
server_name www.example.com;
location / {
proxy_pass http://192.168.0.1;
proxy_set_header 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
不是从客户端访问而是从反向代理访问被记录下来。因此,为了让Web服务器能够记录真实的访问来源,我们需要通过proxy_set_header指令来重新编写标头,定义Host标头、X-Real-IP标头和X-Forwarded-For标头。