nginxを構成して使用する
LAMPスタックの仮想化に特化したcyberciti.biz Webサイトの一連の記事の翻訳を完了しています 。 最後の記事では、nginxリバースプロキシのインストールと構成に焦点を当てます。nginxは、Webサーバーまたはリバースプロキシサーバーとしてだけでなく使用されるオープンソース製品です。 軽量でリソースを尊重するため、ロードバランサー( ダムラウンドリボンからより意味のあるものまで)としても使用されますが、 すべてはあいまいです。および/または仮想ネットワークサービスへのアクセスを整理するためのプロキシソリューションとしてサイクルの以前の記事で確立された、1つの外部ホストアドレス、たとえばIP 202.54.1.1 (以前の例で説明したように)。
この記事では、ドメイン名www.example.comのApache + php5サーバーと、この例ではstatic.example.comという名前のLighttpd静的サーバーのnginxをリバースプロキシとしてインストールする方法を見つけます。 IPアドレス192.168.1.1の vm00仮想サーバーですべての設定を排他的に行います。
DNSセットアップ
www.example.comとstatic.example.comの両方がIPアドレス192.168.1.1を指していることを確認してください。nginxサーバーをインストールする
次のコンソールコマンドを入力して、nginxをインストールします。$ cd /tmp $ wget http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm # rpm -iv nginx-release-rhel-6-0.el6.ngx.noarch.rpm # yum install nginx
サーバーコンソールの応答例:
Loaded plugins: rhnplugin Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package nginx.x86_64 0:1.2.1-1.el6.ngx will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================= Package Arch Version Repository Size ========================================================================= Installing: nginx x86_64 1.2.1-1.el6.ngx nginx 331 k Transaction Summary ========================================================================= Install 1 Package(s) Total download size: 331 k Installed size: 730 k Is this ok [y/N]: y Downloading Packages: nginx-1.2.1-1.el6.ngx.x86_64.rpm | 331 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Installing : nginx-1.2.1-1.el6.ngx.x86_64 1/1 ---------------------------------------------------------------------- Thanks for using nginx! Check out our community web site: * http://nginx.org/en/support.html If you have questions about commercial support for nginx please visit: * http://www.nginx.com/support.html ---------------------------------------------------------------------- Verifying : nginx-1.2.1-1.el6.ngx.x86_64 1/1 Installed: nginx.x86_64 0:1.2.1-1.el6.ngx Complete!
nginx Webサーバーサーバーをリバースプロキシとして構成する
ファイル/etc/nginx/conf.d/default.confを編集します。 # vi /etc/nginx/conf.d/default.conf
追加するか、既存の行を変更することにより:
## - ## ## Apache (vm02) - www.example.com ## upstream apachephp { server 192.168.1.11:80; #Apache1 } ## Lighttpd (vm01) static.example.com ## upstream lighttpd { server 192.168.1.10:80; #Lighttpd1 } ## www.example.com ## server { listen 202.54.1.1:80; server_name www.example.com; access_log /var/log/nginx/log/www.example.access.log main; error_log /var/log/nginx/log/www.example.error.log; root /usr/share/nginx/html; index index.html index.htm; ## apache1 ## location / { proxy_pass http://apachephp; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ## www.example.com ## ## static.example.com ## server { listen 202.54.1.1:80; server_name static.example.com; access_log /var/log/nginx/log/static.example.com.access.log main; error_log /var/log/nginx/log/static.example.com.error.log; root /usr/local/nginx/html; index index.html; location / { proxy_pass http://lighttpd; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host static.example.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ## static.example.com ##
nginxをオンにする
次のコマンドを入力します。 # chkconfig nginx on # service nginx start
ファイアウォールを構成する
次のファイアウォール設定を構成します。- デフォルトですべてのインバウンド/アウトバウンド接続を拒否します(デフォルトですべてのINPUT / OUTPUTをドロップします)
- TCPポート80および443のみを開きます(202.54.1.1:80および/またはeth0の場合は443)
- eth1をnginxリバースプロキシとApache / Lighttpdサーバー間の通信で唯一の信頼できるデバイスとして設定します
これらのパラメータを設定するには、次の手順を実行します。
# system-config-firewall-tui
/ etc / sysconfig / iptablesを手動で編集し、ファイアウォールも設定できます(詳細についてはcyberciti.bizの記事をご覧ください )。
/etc/sysctl.conf
/etc/sysctl.confを次のように編集します。 # Execshild kernel.exec-shield = 1 kernel.randomize_va_space = 1 # IPv4 settings net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Increase system file descriptor limit to fs.file-max = 50000 # Increase system IP port limits net.ipv4.ip_local_port_range = 2000 65000 # Ipv6 net.ipv6.conf.default.router_solicitations = 0 net.ipv6.conf.default.accept_ra_rtr_pref = 0 net.ipv6.conf.default.accept_ra_pinfo = 0 net.ipv6.conf.default.accept_ra_defrtr = 0 net.ipv6.conf.default.autoconf = 0 net.ipv6.conf.default.dad_transmits = 0 net.ipv6.conf.default.max_addresses = 1
次のコマンドを使用して、新しいLinuxカーネル設定をダウンロードします。
# sysctl -p
指定されたLinuxカーネルチューニングディレクティブの詳細については、対応するFAQを参照してください。
Nginxサーバーのセキュリティ
投稿「 Top 20 nginx Web Server Security Practices 」も参照してください。 また、nginx、リバースプロキシ、およびSSL設定に関する追加資料として、レッスン資料を参照してください。- CentOS / Redhat Linux:Web Cluster Failover用のKeepaliveのインストール
- nginx:バランスSSLリバースプロキシの設定(ロードバランスSSLプロキシ)
トップLAMPスタックセキュリティプラクティス
- 通信の暗号化:仮想マシンをセットアップするときにsshとvpnを使用します。 scp / sftpクライアントを使用して、サーバーにファイルをアップロードします。
- Webサーバーにインストールされているすべてのジャンクが本当に必要ですか? 不要なソフトウェアのインストールを避け、妥協から身を守ってください。 yum、apt-get、dpkgなどのRPMパッケージマネージャーを使用して、インストールされているソフトウェアを追跡します。
- セキュリティ更新プログラムのインストールは、健全なLinuxサーバーを維持するための重要な部分です。 Linuxは、システムを最新の状態に保つために必要なすべてのソフトウェアを提供し、バージョンからソフトウェアバージョンに切り替える手順は最も便利な方法で行われます。 セキュリティ関連の更新はすべて、できるだけ早く監視およびインストールする必要があります。
- ユーザーアカウントに必要最小限の特権を付与します。 サーバーへのsshアクセスを左右に分散させないでください。
- サイトcyberciti.bizのLAMPスタックのセキュリティに関するベストプラクティスに関する記事もお読みください。
- Linuxサーバーでの20のセキュリティトリック
- システム管理者向けの25のベストPHPセキュリティ設定プラクティス
- Nginxサーバーセキュリティのベストプラクティストップ20
- トップ20 OpenSSHサーバーセキュリティのベストプラクティス
- Linuxサーバーコンソールへの物理アクセスを保護するためのヒント
おわりに
このガイドが仮想マシンのセットアップ時に役立つことを願っています。また、CentOS / RHELサーバーで独自のWebスタックのセットアップを開始できるように、情報が十分に役立つことを願っています。- はじめに
- ステップ#1:セットアップ/インストール:NFSファイルサーバー
- ステップ#2:セットアップ/インストール:MySQLデータベースサーバー
- ステップ#3:セットアップ/インストール:Memcached Caching Server
- ステップ#4:セットアップ/インストール:Apache + php5 Webサーバーアプリケーション
- ステップ#5:セットアップ/インストール:静的アセット用のLighttpd Webサーバー
- ステップ#6:セットアップ/インストール:nginxリバースプロキシサーバー
翻訳者から:
この記事シリーズには、cyberciti Webサイトの資料への約50の外部リンクが含まれています。 私の側では、読者に英語のテキストと向かい合っておくのはあまり正直ではありません(そうでなければ、翻訳を読みます)。 提案はこれです:翻訳された資料で最も頻繁に言及されているトップリンクはここにあります:
- iptablesの開始に関する数行
- CentOS / RHELにnfsv4サーバーをインストールする
- yumパッケージマネージャー :基本的なコマンド
- システム管理者のPHPセキュリティを改善するための25のトッププラクティス
- 20の最高のnginxサーバーセキュリティトリック
- Linuxで新しいユーザーアカウントを作成する
- OpenSSHサーバーのセキュリティのベストプラクティストップ20
- sysctl-kernelパラメータの変更に関する数行
- 使用可能なIPポートの範囲を拡張することに関するいくつかの行
- リバースプロキシとしてのnginx
- ファイル記述子(FD)の最大数を増やす方法について
そして、36個のリンクが0回以上言及されました:
www.php.net/array
www.cyberciti.biz/faq/mysql-user-creation
www.cyberciti.biz/tips/open-source-project-management-software.html
www.cyberciti.biz/faq/linux-demilitarized-zone-howto
www.cyberciti.biz/faq/restart-httpd
www.cyberciti.biz/faq/how-do-i-start-and-stop-nfs-service
www.cyberciti.biz/faq/rhel-centos-fedora-keepalived-lvs-cluster-configuration
www.cyberciti.biz/tips/linux-laptop.html
www.cyberciti.biz/faq/centos-fedora-rhel-iptables-open-nfs-server-ports
www.cyberciti.biz/faq/linux-install-and-start-apache-httpd
www.cyberciti.biz/faq/rhel-fedora-centos-linux-temporarily-switchoff-selinux
www.cyberciti.biz/faq/linux-make-directory-command
www.cyberciti.biz/faq/howto-disable-httpd-selinux-security-protection
www.cyberciti.biz/tips/top-linux-monitoring-tools.html
www.php.net/isset
www.cyberciti.biz/tips/linux-iptables-examples.html
bash.cyberciti.biz/mysql/add-database-username-password-remote-host-access
dev.mysql.com/doc/refman/5.5/en
www.cyberciti.biz/faq/tag/etcfstab
www.cyberciti.biz/faq/fedora-sl-centos-redhat6-enable-epel-repo
www.cyberciti.biz/faq/tag/etcsysconfigmemcached
www.cyberciti.biz/tips/my-10-unix-command-line-mistakes.html
www.cyberciti.biz/tips/download-email-client-for-linux-mac-osx-windows.html
www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening
www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
www.cyberciti.biz/faq/linux-unix-bsd-wordpress-memcached-cache-plugin
www.cyberciti.biz/faq/howto-install-memcached-under-rhel-fedora-centos
www.cyberciti.biz/tips/tips-to-protect-linux-servers-physical-console-access.html
www.cyberciti.biz/faq/how-to-install-mysql-under-rhel
www.cyberciti.biz/tips/unix-linux-bsd-pydf-command-in-colours.html
www.cyberciti.biz/faq/howto-linux-unix-setup-nginx-ssl-proxy
www.cyberciti.biz/faq/how-to-mount-bind-partitions-filesystems-in-linux
www.cyberciti.biz/faq/rhel-fedora-linux-install-memcached-caching-system-rpm
www.phpmyadmin.net/home_page/index.php
www.cyberciti.biz/faq/rhel-fedorta-linux-iptables-firewall-configuration-tutorial
www.cyberciti.biz/faq/stop-lighttpd-server
www.cyberciti.biz/faq/mysql-user-creation
www.cyberciti.biz/tips/open-source-project-management-software.html
www.cyberciti.biz/faq/linux-demilitarized-zone-howto
www.cyberciti.biz/faq/restart-httpd
www.cyberciti.biz/faq/how-do-i-start-and-stop-nfs-service
www.cyberciti.biz/faq/rhel-centos-fedora-keepalived-lvs-cluster-configuration
www.cyberciti.biz/tips/linux-laptop.html
www.cyberciti.biz/faq/centos-fedora-rhel-iptables-open-nfs-server-ports
www.cyberciti.biz/faq/linux-install-and-start-apache-httpd
www.cyberciti.biz/faq/rhel-fedora-centos-linux-temporarily-switchoff-selinux
www.cyberciti.biz/faq/linux-make-directory-command
www.cyberciti.biz/faq/howto-disable-httpd-selinux-security-protection
www.cyberciti.biz/tips/top-linux-monitoring-tools.html
www.php.net/isset
www.cyberciti.biz/tips/linux-iptables-examples.html
bash.cyberciti.biz/mysql/add-database-username-password-remote-host-access
dev.mysql.com/doc/refman/5.5/en
www.cyberciti.biz/faq/tag/etcfstab
www.cyberciti.biz/faq/fedora-sl-centos-redhat6-enable-epel-repo
www.cyberciti.biz/faq/tag/etcsysconfigmemcached
www.cyberciti.biz/tips/my-10-unix-command-line-mistakes.html
www.cyberciti.biz/tips/download-email-client-for-linux-mac-osx-windows.html
www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening
www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
www.cyberciti.biz/faq/linux-unix-bsd-wordpress-memcached-cache-plugin
www.cyberciti.biz/faq/howto-install-memcached-under-rhel-fedora-centos
www.cyberciti.biz/tips/tips-to-protect-linux-servers-physical-console-access.html
www.cyberciti.biz/faq/how-to-install-mysql-under-rhel
www.cyberciti.biz/tips/unix-linux-bsd-pydf-command-in-colours.html
www.cyberciti.biz/faq/howto-linux-unix-setup-nginx-ssl-proxy
www.cyberciti.biz/faq/how-to-mount-bind-partitions-filesystems-in-linux
www.cyberciti.biz/faq/rhel-fedora-linux-install-memcached-caching-system-rpm
www.phpmyadmin.net/home_page/index.php
www.cyberciti.biz/faq/rhel-fedorta-linux-iptables-firewall-configuration-tutorial
www.cyberciti.biz/faq/stop-lighttpd-server
今私にとって興味深いのは、つまり 数日中に転送する予定のもの-下のリスト。 翻訳や吹き替えが必要で、松信義則の報告書が示唆するような超越的な価値があるものがあれば、私たちは読んで翻訳します。
O'Reilly MySQL Conference&Expo is a Wrap // 2011 web
関心のある範囲:サーバー管理、最適化、LAMPスタックの監視。 仮想化、IaaS、KVM、xfs、NFS。 また興味深いもの:hPHP(ヒップホップPHP)、Wordpress。
あなたから-私への資料へのリンク-翻訳とお辞儀。
(O'Reilly Velocity、NJ-LOPSA PICC、Tech Ed、LinuxCon)以外の会議を知っている場合は、資料/プレゼンテーション/ビデオを公開してください。すべてを教えてください。