Nginxウェブサイトサービス
nginxサービス基盤
1.1 nginxの概要
Nginxは、軽量のWebサーバー/リバースプロキシサーバーおよび電子メール(IMAP / POP3)プロキシサーバーで、BSDのようなプロトコルでリリースされています。その特徴は、メモリ使用量が少なく、強力な同時実行機能を備えていることです。実際、nginxの同時実行機能は、同じタイプのWebサーバーでよりよく機能します。中国本土のnginx Webサイトのユーザーには、Baidu、JD、Sina、NetEase、Tencent、Taobaoなどがあります。
利点
接続の同時実行性が高い場合、NginxはApacheサービスの優れた代替手段です。米国のNginxは、仮想ホスティングビジネスを行う上司がよく選択するソフトウェアプラットフォームの1つです。最大50,000の同時接続の応答をサポートできます。開発モデルとしてepollおよびkqueueを選択していただき、ありがとうございます。
1.2 nginxのインストール手順
最初にファイアウォールをオフにして無効にする
systemctl stop firewalld
systemctl disabled firewalld
nginxソフトウェアパッケージを/ optディレクトリにコピーし、nginxを
解凍してインストールします。
cd /opt
tar xzvf nginx-1.15.9.tar.gz
useradd -M -s /bin/nologin nginx #创建运行用户、组
サポートソフトウェアのインストール、コンパイルとインストール
yum -y install gcc gcc-c++ make pcre-devel zlib-devel
cd nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module #开启stub_status状态统计模块
make && make install
1.3 nginxの最適化
パスの最適化
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx
nginxの起動、再構成、停止
nginx ## 启动 Nginx
netstat -anpt |grep nginx ## 过滤Nginx的进程
yum -y install psmisc ###最小安装没有killall令需要安装
killall -s HUP nginx ## 重载Nginx配置文件(相当于刷新)
killall -s QUIT nginx ## 退出 Nginx
システムサービスを追加する
方法1:
vi /lib/systemd/system/nginx.service
编辑模式
[Unit]
Description=nginx ###描述
After=network.target ####描述服务类别
[Service]
Type=forking ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID #根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID #根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target #最小安装方式适用
:wq保存退出
chmod 754 /lib/systemd/system/nginx.service
systemctl enable nginx.service
systemctl start nginx
方法2
[root@localhost ~]# cd /etc/inid.d #添加使用service工具进行管理
[root@localhost init.d]# ls
[root@localhost init.d]# vim nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@localhost init.d]# chmod +x nginx
[root@localhost init.d]# chkconfig --add nginx
[root@localhost init.d]# chkconfig --level 35 nginx on
この時点で、ファイアウォールが閉じてnginxサービスが開かれた後、アクセスは成功します
1.4アクセス状況統計
HTTP_ STUB_ STATUSステータス統計モジュールを有効にします。
コンパイルパラメータを構成するときは、-with-http_stub_status_module
nginx -Vに参加して、インストールされているNginxにHTTP_STUB_STATUSモジュールが含まれているかどうかを確認します
/usr/local/nginx/conf/nginx.conf設定ファイルを変更します
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {
root html;
index index.html index.htm;
}
添加如下内容
location /status {
stub_status on;
access_log off;
}
:wq保存退出
systemctl restart nginx
アクティブな接続は、
サーバーが処理されたリクエストを受け入れるアクティブな接続の現在の数を示します。処理された接続情報を示します
。1 1 1は
、処理された接続の数1、成功したTCPハンドシェイクの数1、処理されたリクエストの数1を示します。
2つのNginxアクセス制御
2.1認可ベースのアクセス制御
yum -y install httpd-tools
创建用户test并设置密码
htpasswd -c /usr/local/nginx/passwd.db test
New password:
Re-type new password:
查看密码(已加密)
cat /usr/local/nginx/passwd.db
修改文件权限为只读
chmod 400 /usr/local/nginx/passwd.db
将所有者修改为 nginx ,设置nginx的运行用户能够读取
chown nginx /usr/local/nginx/passwd.db
ll -d /usr/local/nginx/passwd.db
修改主配置文件nginx.conf,对相应目录添加认证配置项
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {
root html;
index index.html index.htm;
#添加如下两行
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
}
[root@localhost ~]# nginx -t #检测语法
[root@localhost ~]# systemctl restart nginx
ユーザー名とパスワードを入力して正常にログインします
2.2クライアントベースのアクセス制御
構成ルール
IP / IPセグメントの拒否:特定のIPまたはIPセグメントへのクライアントアクセスを拒否します
IP / IPセグメントを許可:特定のIPまたはIPセグメントのクライアントアクセスを許可
ルールは上から下に実行され、一致すると停止し、一致しなくなります
注意
拒否と許可の両方は、拒否/許可の関係のみです
配置步骤
修改主配置文件nginx.conf,添加相应配置项,除主机20.0.0.1之外允许其他客户端访问
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {
root html;
index index.html index.htm;
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
deny 20.0.0.1;
allow all;
}
[root@localhost ~]# systemctl restart nginx
3つのnginx仮想ホスト
仮想ホスティングを使用すると、個別のNginxサーバーを提供したり、実行中のWebサイトごとにNginxプロセスのグループを個別に実行したりする必要はありません。仮想ホスティングは、同じサーバーと同じNginxプロセスのグループで複数のWebサイトを実行する機能を提供します。
3.1ドメイン名に基づく仮想ホスティング
1.修改Windows客户机的C:\Windows\System32\drivers\etc/hosts文件
20.0.0.11 www.61ser.top www.51ser.top
2.准备各个网站的目录和测试首页
mkdir -p /var/www/html/61ser/
mkdir -p /var/www/html/51ser/
echo "www.61ser.top" >> /var/www/html/61ser/index.html
echo "www.51ser.top" >> /var/www/html/51ser/index.html
3.修改配置文件,把配置文件中的server{}代码段全部去掉,加入2个新的server{}段,对应2个域名
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.61ser.top;
charset utf-8;
access_log logs/www.61ser.top.access.log;
location / {
root /var/www/html/61ser;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
server {
listen 80;
server_name www.51ser.top;
charset utf-8;
access_log logs/www.51ser.top.access.log;
location / {
root /var/www/html/51ser;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
systemctl restart nginx
测试
www.61ser.top
www.51ser.top
3.2 IPベースの仮想ホスティング
仮想ネットワークカードの追加
UUIDの
変更IPアドレスの
変更:192.168.100.11ゲートウェイの変更:192.168.100.1
ネットワークカードを追加する具体的な操作については、次のブログを参照してください。ポータル:Linuxネットワークカードの基本設定とネットワークテスト用の一般的なコマンド
主机配置两个IP地址
vim /usr/local/nginx/conf/nginx.conf
server {
listen 20.0.0.11:80;
server_name 20.0.0.11:80;
}
server {
listen 192.168.100.11:80;
server_name 192.168.100.11:80;
}
[root@localhost ~]# systemctl restart nginx
3.3ポートベースの仮想Webホスティング
vim /usr/local/nginx/conf/nginx.conf
server {
listen 20.0.0.11:666;
server_name 20.0.0.11:666;
}
server {
listen 20.0.0.11:888;
server_name 20.0.0.11:888;
}
[root@localhost ~]# systemctl restart nginx