Nginxウェブサイトサービス-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

おすすめ

転載: blog.csdn.net/cenjeal/article/details/108555969