CentOS+Nginx+PHP+Mysql(3)(転送)

Jun 23, 2016 pm 02:31 PM

[AVI、MP3 などのダウンロードを提供するように Ngnix を設定する]

# vi /usr/local/webserver/nginx/conf/mime.types
↑ mime.types ファイルを編集します
ダウンロード前の形式 ファイルの種類を「application/octet-stream」に変更します
# vi /usr/local/webserver/nginx/conf/mime.types.default
↑ mime.types.default ファイルを編集します
ダウンロード形式の前にファイルの種類を指定します。 「application/octet-stream」に変更されました

[Web サイトの同時実行制限を設定する]
nginx.conf ファイルの設定時に同時実行制限が追加されました。詳しくは、公式 Wikipedia (http. ://wiki.codemongers.com/NginxChsHttpLimit_zoneModule) 「httplimit_zonemodule」セクション

[nginx プログラム制限設定時の 1M アップロードの問題]
nginx.conf ファイルの設定時に 1M アップロード制限が解除されました。詳細については、を参照してください。 nginx.conf ファイル内のコメント

[PHP の最適化]
詳細については、(http://www.cnprint.org/bbs/blogs/1/blog312.html) の「PHP 最適化設定」セクションを参照してください
一部のみ必要な内容をここに設定します

# vi /usr/local/webserver/php/etc/php.ini
↑ php.ini ファイルを編集します

1.「disable_functions="
」を「disable_functions = phpinfo,passthru,exec」に変更します,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status"
↑**このオプションは、Web サイト構築後に変更することをお勧めします。 **このオプションでは、使用を禁止する PHP 関数を設定できます。 PHP の関数は非常に危険です。これらの関数の実行が許可されている場合、プログラムに抜け穴が発生すると、非常に重大な損失が発生します。
注: サーバーにシステムステータス検出用の PHP プログラムが含まれている場合は、shell_exec、proc_open、proc_get_status およびその他の関数を無効にしないでください。

2. "upload_max_filesize = 2M"
を "upload_max_filesize = 50M" に変更します
↑このオプションは、PHP で許可される最大アップロード ファイル サイズを設定します。デフォルトは 2MB です。この設定は、実際のアプリケーション要件に基づいて適切に増やすことができます。

[mysqlの最適化]
詳細は、(http://www.cnprint.org/bbs/blogs/1/blog312.html)の「mysqlの最適化とセキュリティの設定」セクションを参照してください
ここでは必要な内容のみを設定します

# vi /usr/local/webserver/mysql/my.cnf ↑ my.cnf ファイルを編集します

1. "table_cache = 64"
を "table_cache = 512" に変更します
↑テーブル キャッシュのサイズを指定します。 MySQL がテーブルにアクセスするたびに、テーブル バッファにスペースがある場合は、テーブルが開かれてそこに配置され、テーブルの内容に高速にアクセスできるようになります。ピーク時のステータス値 Open_tables と Opened_tables を確認することで、table_cache の値を増やす必要があるかどうかを判断できます。 open_tables が table_cache と等しく、open_tables が常に増加していることがわかった場合は、table_cache の値を増やす必要があります (上記のステータス値は、「Open_tables」などの show status を使用して取得できます)。 table_cache をむやみに大きな値に設定することはできないことに注意してください。設定値が高すぎると、ファイル記述子が不足し、パフォーマンスが不安定になったり、接続が失敗したりする可能性があります。

2. "sort_buffer_size = 512k"
を "sort_buffer_size = 2M" に変更します
↑ 各スレッドのソートに必要なバッファー

3. "read_buffer_size = 128k"
を "read_buffer_size = 2M" に変更します
↑特定のテーブルをスキャンし、MySQL がそのテーブルにメモリ バッファを割り当てます。 read_buffer_size 変数は、このバッファのサイズを制御します。連続スキャンの速度が遅すぎると思われる場合は、この変数の値とメモリ バッファ サイズを増やすことでパフォーマンスを向上させることができます。

4. "read_rnd_buffer_size = 512k"
を "read_rnd_buffer_size = 4M" に変更します
↑ソート操作後のデータの読み取りを高速化し、カテゴリ行の読み取り速度を向上させます。使用可能なメモリよりもはるかに大きいテーブルに対して GROUP BY または ORDER BY 操作を実行している場合は、read_rnd_buffer_size の値を増やして、並べ替え操作後の行の読み取りを高速化する必要があります。このオプションの有用性はまだ理解できません...

5. REPAIR TABLE の "myisam_sort_buffer_size = 8M"
を "myisam_sort_buffer_size = 32M"
↑ に変更します。このオプションの使い方がわかりません。Baidu の設定方向も 128M、64M、32M などさまざまです。妥協して選択してください。

【mysqlのセキュリティ設定】
詳細は、(http://www.cnprint.org/bbs/blogs/1/blog312.html)の「Mysqlのセキュリティ設定」セクションを参照してください
必要な一部の内容のみ設定していますここ

* *iptables** でリモート接続、つまりポート 3306 を閉じるように設定します。これは MySQL のデフォルトのリスニング ポートです。ここでは MySQL はローカル スクリプトのみを提供するため、リモート接続は必要ありません。 MySQL の組み込みセキュリティ メカニズムは非常に厳格ですが、MySQL プログラム自体に問題がある場合、不正アクセスによって MySQL の組み込みセキュリティ メカニズムが完全にバイパスされる可能性があるため、TCP ポートをリッスンすることは依然として危険な動作です。 (本当にmysqlにリモート接続する必要がないのか判断する必要があります)

[システム全体のセキュリティ調整]

1. **最終設定** RHEL または Red Had Enterprise Linux 5.X のユーザーは、まず /etc/selinux/config ファイルの SELINUX="" を変更して SElinux を有効にする必要があります。これにより、システムが異常にクラッシュすることがなくなります。これをオフにするべきだと考える人もいますが、私はそれを強くお勧めしません。もちろん、実際のサーバーではなく、趣味でのみ RHEL を使用する場合には問題ありません。
2. **最終設定** iptables ファイアウォールを有効にします。これには、システムのセキュリティを強化するための多くの利点があります。ファイアウォール ルールを設定します。
iptables の要件:
* すべてのポートをブロックします
* デフォルトの SSH ポートを 56565 に設定します
* ポート 56565、80、および 3306 を開きます
* ローカル アクセスのみを許可するようにポート 3306 を設定します

Iptables ルール:
# vi /usr/local /webserver/fw.sh
次のスクリプト コマンドを fw.sh ファイルに貼り付けます
#!/bin/bash
# iptables サービスを停止します
/sbin/service iptables stop
# 初期チェーンのデフォルト ポリシー
/sbin /iptables -F -t filter
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
# ネイティブネットワーク転送を有効にする
/sbin/iptables -A INPUT -i lo -j ACCEPT
# 確立された接続を受け入れる
/sbin/ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# ICMP Control
/sbin/iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
# WWW サービス
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# SSH サービス
/sbin/iptables -A INPUT -p tcp --dport 56565 -j ACCEPT
# DDOS 対策
/sbin /iptables -I INPUT -p tcp --syn -m ttl --ttl-eq 117 -j DROP
/sbin/iptables -I INPUT -p tcp --syn -m length --length :40 - j DROP
# mysql 3306 Accept
/sbin/iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
# iptablesサービスを起動
/sbin/service iptables start

保存後以下のコマンドを実行
# chmod 755 /usr/local/webserver/fw.sh
# echo '/usr/local/webserver/fw.sh ' > > /etc/rc.d/rc.local
# /usr/local/webserver/fw.sh

3. セットアップを実行して、開く必要のないサービスが 1 つ減り、危険が 1 つ減りました。 <システムインストール後の初期環境設定>で設定します

4. Control-Alt-Delete キーボードシャットダウンコマンドを無効にします
「/etc/inittab」ファイル内の次の行をコメントアウトします (# を使用します):
# vi /etc /inittab
「ca::ctrlaltdel:/sbin/shutdown -t3 -r now」を「#ca::ctrlaltdel:/sbin/shutdown -t3 -r now」に変更します
この変更を機能させるには、以下のコマンド:
# /sbin/init q
5.「/etc/rc.d/init.d」以下のスクリプトファイルの権限を設定します
起動時に実行されるプログラムを実行または終了するスクリプトファイルの権限を設定します。
# chmod -R 700 /etc/rc.d/init.d/*
これは、root だけがこのディレクトリ内のスクリプト ファイルの読み取り、書き込み、実行を許可されていることを意味します。
6. 「/etc/services」ファイルを免疫化します。
「/etc/services」ファイルを免疫化し、サービスの不正な削除または追加を防ぎます:
#chattr +i /etc/services
7. システムが ping に応答しないようにします。外部/内部ソースからのリクエスト。
これで、誰もあなたのマシンに ping を送信して応答を受け取ることができなくなり、サイトのセキュリティを大幅に強化できます。次のコマンド行を /etc/rc.d/rc.local に追加すると、起動のたびに自動的に実行されます。
# vi /etc/rc.d/rc.local
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
8. システム上のすべてのユーザーにリソース制限を設定すると、DoS タイプの攻撃 (サービス拒否攻撃) を防ぐことができます。 )
最大プロセス数、メモリ量など。たとえば、すべてのユーザーに対する制限は次のようになります。
# vi /etc/security/limits.conf
以下のコード例では、すべてのユーザーはセッションあたり 10 MB に制限され、4 人の同時ログインが許可されます。 3 行目は、全員のコア ダンプを無効にします。 4 行目は、ユーザー bin に対するすべての制限を削除します。
* ハード RSS 10000
* ハード maxlogins 4
* ハードコア 0
bin -
これらの制限をアクティブ化します
# vi /etc/pam.d/login 一番下に行を追加します: session required /lib/security/pam_limits.so 。
9. chattr コマンドを使用して、以下のファイルに変更不可の属性を追加します。
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/gshadow
** mysql データベースのパスワードを変更後設定してください** Pay実行時の注意 この操作の後は、システムにユーザーを追加したり、root としてパスワードを変更したりすることはできません。
ユーザーを追加するか、パスワードを変更したい場合。続行する前に、まず chattr -i /etc/passwd およびその他のコマンドを使用して書き込み不可の設定を削除する必要があります。
10. sshd ポートを変更します:
ファイアウォール構成を変更し、新しいリモート ポート (56565) を開きます
# vi /etc/sysconfig/iptables

/etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config
内部のポートを 56565 に変更します (特定のポートは任意であり、他のプログラムのポートと競合することはできません)。そして、先頭の # 記号をコメントアウトして

、sshd サービスを有効にします:

# pkill sshd
# service sshd start

ファイアウォール構成を変更し、古いリモート ポート (22) を閉じます
# vi /etc/sysconfig/iptables
注: ファイアウォール構成ファイルを変更した後、セットアップを使用してファイアウォール設定を変更しないでください。そうしないと、現在の設定が変更されます。無効です
11. カーネルパラメータを調整します
sysctl.conf ファイルを編集します:
# vi /etc/sysctl.conf
次のように変更します:
net.ipv4.conf.default.accept_source_route=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_echo_ignore_all=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.ip_conntrack_max=65535
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_synack_retries=1
.gc_timeout=100
net.ipv 4.tcp_max_syn_backlog=32768
net.ipv4.conf.default.rp_filter=0
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
kernel.shmmax = 134217728
ステータスの表示:
# sysctl - p
12. システムログを頻繁に確認してください。システム ログは主に /var/log/ ディレクトリにあります。問題の芽を摘み取ります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

See all articles