Nginx 設定等変更履歴

WebサーバNginx

目次一覧

 状態:-  閲覧数:1,160  投稿日:2014-12-01  更新日:2019-05-01
error.logログレベルを「warn」から「error」へ変更 / nginx: [warn] duplicate MIME type "application/json"対応 / either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64 対応

特定バーチャルドメインのみ「エラーログ出力先」を変更

特定バーチャルドメインのみ「エラーログ出力先」&「エラーログレベル」を変更

error.logログレベルを「warn」から「error」へ変更 / nginx: [warn] duplicate MIME type "application/json"対応 / either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64 対応

 閲覧数:273 投稿日:2015-02-20 更新日:2019-04-19 

error.logログレベルを「warn」から「error」へ変更


変更理由
・PHP Notice エラー が多過ぎるため
・「本当に確認したいエラー」を探すことが苦痛

変更日
・2018/7/23

# vi /etc/nginx/nginx.conf
・修正前
error_log  /var/log/nginx/error.log warn;


・修正後
#error_log  /var/log/nginx/error.log warn;
error_log  /var/log/nginx/error.log error;


# systemctl restart nginx.service

nginxのエラーログ出力方法と確認

nginx: [warn] duplicate MIME type "application/json"対応


# certbot renew --dry-run
//中略
Cleaning up challenges
nginx: [warn] duplicate MIME type "application/json" in /etc/nginx/nginx.conf:62


対応日
・2019/1/29

# less /etc/nginx/nginx.conf
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;


# vi /etc/nginx/nginx.conf
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;


# systemctl stop nginx
# systemctl start nginx

either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64 対応


# certbot renew --dry-run
warnメッセージ
//中略
Cleaning up challenges
//中略
nginx: [warn] could not build optimal server_names_hash, you should increase either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64; ignoring server_names_hash_bucket_size


対応日
・2019/1/29

“nginx.conf“の”http“コンテキストに下記を追加
# vi /etc/nginx/nginx.conf
http {

   #中略

   server_names_hash_bucket_size 128;

}


# systemctl stop nginx
# systemctl start nginx


特定バーチャルドメインのみ「エラーログ出力先」を変更

 閲覧数:305 投稿日:2015-04-30 更新日:2019-05-01 

現在の問題点


PHPエラーログ
・「/var/log/nginx/error.logファイル」に出力される
・件数が多過ぎて見づらい
・特定サイトのみ、エラーログ出力先を変更したい

現状確認


$ less /etc/nginx/nginx.conf
$ less /etc/nginx/conf.d/php-demo.example.com.conf
$ less /etc/nginx/nginx.conf

設定変更


error_log行を追加
$ sudo vi /etc/nginx/conf.d/php-demo.example.com.conf
    error_page   500 502 503 504  /50x.html;
   error_log  /var/log/php/error.log error;

   location = /50x.html {
       root   /usr/share/nginx/html;
   }


エラー発生
・syntax は ok だが、「No such file or directory」エラー発生
$ sudo sh -c 'nginx -t && systemctl restart nginx.service || systemctl status nginx.service -l'
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() "/var/log/php/error.log" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
● nginx.service - nginx - high performance web server
  Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  Active: active (running) since 水 2019-05-01 04:01:07 JST; 4h 31min ago
    Docs: http://nginx.org/en/docs/
 Process: 21888 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
 Process: 21893 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
 Process: 21891 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 21896 (nginx)
  CGroup: /system.slice/nginx.service
          ├─21896 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.con
          ├─21897 nginx: worker process                  
          └─21898 nginx: worker process                  

5月 01 04:01:06 hoge.vs.sakura.ne.jp systemd[1]: Starting nginx - high performance web server...
5月 01 04:01:07 hoge.vs.sakura.ne.jp nginx[21891]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
5月 01 04:01:07 hoge.vs.sakura.ne.jp nginx[21891]: nginx: configuration file /etc/nginx/nginx.conf test is successful
5月 01 04:01:07 hoge.vs.sakura.ne.jp systemd[1]: Started nginx - high performance web server.


ディレクトリがないためエラー
・なければ勝手に作成してくれるものと思っていた
・そんなわけではないみたい
$ sudo less /var/log/nginx/error.log
2019/05/01 08:32:32 [emerg] 23368#23368: open() "/var/log/php/error.log" failed (2: No such file or directory)


/var/log/直下に、phpディレクトリ作成
$ sudo mkdir /var/log/php
$ ls -l /var/log/
合計 30204
drwxr-xr-x. 2 root       root             6 10月 31  2016 anaconda
drwx------. 2 root       root            94  4月 19 05:01 audit
-rw-r--r--  1 root       root          9896 12月 29 16:46 boot.log
-rw-------  1 root       utmp             0  5月  1 04:39 btmp
-rw-------  1 root       utmp             0  4月  1 03:46 btmp-20190501
drwxr-xr-x. 2 chrony     chrony           6 11月 24  2015 chrony
-rw-------  1 root       root         41094  5月  1 07:49 cron
-rw-------  1 root       root        189414  4月  8 03:55 cron-20190408
-rw-------  1 root       root        144174  4月 14 03:27 cron-20190414
-rw-------  1 root       root        195997  4月 22 04:08 cron-20190422
-rw-------  1 root       root        106050  4月 28 04:14 cron-20190428
-rw-r--r--  1 root       root         36591 12月 29 16:46 dmesg
-rw-r--r--  1 root       root         36439  7月 27  2018 dmesg.old
-rw-------  1 root       root           108  4月 28 04:14 fail2ban.log
-rw-------  1 root       root           108  3月 31 07:42 fail2ban.log-20190408
-rw-------  1 root       root           108  4月  8 03:55 fail2ban.log-20190414
-rw-------  1 root       root           108  4月 14 03:27 fail2ban.log-20190422
-rw-------  1 root       root           108  4月 22 04:08 fail2ban.log-20190428
-rw-------  1 root       root          1321 10月 31  2016 grubby
drwx------  2 root       root             6 11月  5 10:47 httpd
-rw-r--r--  1 root       root        292292  5月  1 08:17 lastlog
drwx------  2 root       root         12288  5月  1 05:29 letsencrypt
-rw-------  1 root       root         10151  5月  1 06:05 maillog
-rw-------  1 root       root         10657  4月  8 00:22 maillog-20190408
-rw-------  1 root       root         28309  4月 14 01:27 maillog-20190414
-rw-------  1 root       root         64151  4月 22 01:36 maillog-20190422
-rw-------  1 root       root         28680  4月 28 04:06 maillog-20190428
-rw-------  1 root       root       2838098  5月  1 08:38 messages
-rw-------  1 root       root       7200310  4月  8 03:55 messages-20190408
-rw-------  1 root       root       5575050  4月 14 03:27 messages-20190414
-rw-------  1 root       root       7388865  4月 22 04:08 messages-20190422
-rw-------  1 root       root       5420440  4月 28 04:14 messages-20190428
-rw-r--r--  1 mysql      mysql       717726  4月 30 23:51 mysqld.log
drwxr-xr-x  2 root       root          4096  5月  1 04:39 nginx
drwxr-xr-x  2 root       root             6  5月  1 08:39 php
drwxrwx---  2 apache     root           122  4月 28 04:14 php-fpm
drwx------. 2 root       root             6  6月 10  2014 ppp
drwxr-xr-x. 2 root       root          4096  4月 24 00:00 sa
-rw-------  1 root       root         24738  5月  1 08:39 secure
-rw-------  1 root       root         28936  4月  7 22:22 secure-20190408
-rw-------  1 root       root        105900  4月 14 00:20 secure-20190414
-rw-------  1 root       root         55807  4月 21 01:07 secure-20190422
-rw-------  1 root       root         62109  4月 28 00:54 secure-20190428
drwxr-xr-x. 2 root       root            22  9月 15  2016 tuned
drwxrwxrwx  2 ★★ ★★    4096  9月 13  2018 uwsgi
-rw-r--r--  1 root       root           240 12月 29 16:46 wpa_supplicant.log
-rw-rw-r--  1 root       utmp        422016  5月  1 08:17 wtmp
-rw-------  1 root       root          3628  4月 13 00:13 yum.log
-rw-------  1 root       root         14869  4月 21  2018 yum.log-20190101


$ sudo sh -c 'nginx -t && systemctl restart nginx.service || systemctl status nginx.service -l'
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


動作確認


意図的にエラー発生させてみる
▼index.php
<?php

hoge



/var/log/php/の所有ユーザと所有グループがrootだったので不安だったが、
・無事に書き込みされた

▼/var/log/php/error.log
2019/05/01 08:45:48 [error] 23449#23449: *63 FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected 'ini_set' (T_STRING) in /var/www/html/xxxx/public/index.php on line 5" while reading response header from upstream, client: 223.219.134.174, server: php-demo.example.com, request: "GET /demo/settlement/marketplace/marketplace-master/public/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 08:45:52 [error] 23449#23449: *64 FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected 'ini_set' (T_STRING) in /var/www/html/xxxx/public/index.php on line 5" while reading response header from upstream, client: 223.219.134.174, server: php-demo.example.com, request: "GET /demo/settlement/marketplace/marketplace-master/public/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 08:45:53 [error] 23448#23448: *68 FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected 'ini_set' (T_STRING) in /var/www/html/xxxx/public/index.php on line 5" while reading response header from upstream, client: 223.219.134.174, server: php-demo.example.com, request: "GET /demo/settlement/marketplace/marketplace-master/public/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"


$ ls -l /var/log/php
合計 12
-rw-r--r-- 1 root root 10322  5月  1 09:17 error.log


エラー出力内容は重複しない
・複数個所に書き込まれたりはしない
※今回「▼/var/log/php/error.log」に出力されたエラー内容は、従来の「▼/var/log/nginx/error.log」には出力されていなかった

注意事項


「▼/var/log/php/error.log」ファイル
・Nginx再起動する際、サイズ0で作成される
・同ファイル削除後、Nginx再起動しなかった場合、ファイルがないためログは出力されない


特定バーチャルドメインのみ「エラーログ出力先」&「エラーログレベル」を変更

 閲覧数:120 投稿日:2019-05-01 更新日:2019-05-01 

問題発生


Web画面ではエラー表示されているが、
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.

If you are the system administrator of this resource then you should check the error log for details.

Faithfully yours, nginx.


・エラーログには出力されない

対応


エラーログレベルを変更
$ sudo vi /etc/nginx/conf.d/php-demo.example.com.conf
#    error_log  /var/log/php/error.log error;
   error_log  /var/log/php/error.log debug;


Nginx設定。エラーログレベル

$ sudo sh -c 'nginx -t && systemctl restart nginx.service || systemctl status nginx.service -l'
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


エラー確認


▼/var/log/php/error.log
2019/05/01 08:49:48 [error] 23449#23449: *145 FastCGI sent in stderr: "PHP message: Phirehose: Connecting to twitter stream: https://stream.twitter.com/1.1/statuses/sample.json with params: array ()
PHP message: Phirehose: Connecting to ssl://stream.twitter.com, port=443, connectTimeout=5
PHP message: Phirehose: Connection established to stream.twitter.com
PHP message: Phirehose: POST /1.1/statuses/sample.json HTTP/1.1
Host: stream.twitter.com:443
Connection: Close
Content-type: application/x-www-form-urlencoded
Content-length: 0
Accept: */*
Authorization: OAuth realm="",oauth_consumer_key="xxxx",oauth_nonce="xxxx",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1556668161",oauth_version="1.0A",oauth_token="xxxx",oauth_signature="xxxx"
User-Agent: Phirehose/1.0RC +https://github.com/fennb/phirehose" while reading upstream, client: 66.249.83.222, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 08:49:48 [error] 23448#23448: *146 FastCGI sent in stderr: "PHP message: Phirehose: Connecting to twitter stream: https://stream.twitter.com/1.1/statuses/sample.json with params: array ()
PHP message: Phirehose: Connecting to ssl://stream.twitter.com, port=443, connectTimeout=5
PHP message: Phirehose: Connection established to stream.twitter.com
PHP message: Phirehose: POST /1.1/statuses/sample.json HTTP/1.1
Host: stream.twitter.com:443
Connection: Close
Content-type: application/x-www-form-urlencoded
Content-length: 0
Accept: */*
Authorization: OAuth realm="",oauth_consumer_key="xxxx",oauth_nonce="xxxx",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1556668161",oauth_version="1.0A",oauth_token="xxxx",oauth_signature="xxxx"
User-Agent: Phirehose/1.0RC +https://github.com/fennb/phirehose" while reading upstream, client: 66.102.6.189, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:02:51 [error] 23448#23448: *780 FastCGI sent in stderr: "PHP message: Phirehose: Connecting to twitter stream: https://stream.twitter.com/1.1/statuses/sample.json with params: array ()
PHP message: Phirehose: Connecting to ssl://stream.twitter.com, port=443, connectTimeout=5
PHP message: Phirehose: Connection established to stream.twitter.com
PHP message: Phirehose: POST /1.1/statuses/sample.json HTTP/1.1
Host: stream.twitter.com:443
Connection: Close
Content-type: application/x-www-form-urlencoded
Content-length: 0
Accept: */*
Authorization: OAuth realm="",oauth_consumer_key="xxxx",oauth_nonce="xxxx",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1556668946",oauth_version="1.0A",oauth_token="xxxx",oauth_signature="xxxx"
User-Agent: Phirehose/1.0RC +https://github.com/fennb/phirehose" while reading upstream, client: 66.249.79.221, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:03:43 [error] 23448#23448: *780 FastCGI sent in stderr: "PHP message: Phirehose: Consume rate: 52 status/sec (3109 total), avg enqueueStatus(): 0.14ms, avg checkFilterPredicates(): 0ms (0 total) over 60 seconds, max stream idle period: 1 seconds" while reading upstream, client: 66.249.79.221, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:04:38 [error] 23448#23448: *780 FastCGI sent in stderr: "PHP message: Phirehose: Consume rate: 50 status/sec (2983 total), avg enqueueStatus(): 0.14ms, avg checkFilterPredicates(): 0ms (0 total) over 60 seconds, max stream idle period: 1 seconds" while reading upstream, client: 66.249.79.221, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:09:11 [error] 23448#23448: *954 FastCGI sent in stderr: "PHP message: Phirehose: Connecting to twitter stream: https://stream.twitter.com/1.1/statuses/sample.json with params: array ()
PHP message: Phirehose: Connecting to ssl://stream.twitter.com, port=443, connectTimeout=5
PHP message: Phirehose: Connection established to stream.twitter.com
PHP message: Phirehose: POST /1.1/statuses/sample.json HTTP/1.1
Host: stream.twitter.com:443
Connection: Close
Content-type: application/x-www-form-urlencoded
Content-length: 0
Accept: */*
Authorization: OAuth realm="",oauth_consumer_key="xxxx",oauth_nonce="xxxx",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1556669325",oauth_version="1.0A",oauth_token="xxxx",oauth_signature="462%2BUPnxYXPqOOnVUW0FiP7STvI%3D"
User-Agent: Phirehose/1.0RC +https://github.com/fennb/phirehose" while reading upstream, client: 66.249.79.221, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:10:01 [error] 23448#23448: *954 FastCGI sent in stderr: "PHP message: Phirehose: Consume rate: 46 status/sec (2733 total), avg enqueueStatus(): 0.16ms, avg checkFilterPredicates(): 0ms (0 total) over 60 seconds, max stream idle period: 1 seconds" while reading upstream, client: 66.249.79.221, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:10:52 [error] 23448#23448: *954 FastCGI sent in stderr: "PHP message: Phirehose: Consume rate: 80 status/sec (4819 total), avg enqueueStatus(): 0.1ms, avg checkFilterPredicates(): 0ms (0 total) over 60 seconds, max stream idle period: 1 seconds" while reading upstream, client: 66.249.79.221, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:15:50 [error] 23449#23449: *1139 FastCGI sent in stderr: "PHP message: Phirehose: Connecting to twitter stream: https://stream.twitter.com/1.1/statuses/sample.json with params: array ()
PHP message: Phirehose: Connecting to ssl://stream.twitter.com, port=443, connectTimeout=5
PHP message: Phirehose: Connection established to stream.twitter.com
PHP message: Phirehose: POST /1.1/statuses/sample.json HTTP/1.1
Host: stream.twitter.com:443
Connection: Close
Content-type: application/x-www-form-urlencoded
Content-length: 0
Accept: */*
Authorization: OAuth realm="",oauth_consumer_key="xxxx",oauth_nonce="xxxx",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1556669725",oauth_version="1.0A",oauth_token="xxxx",oauth_signature="xxxx"
User-Agent: Phirehose/1.0RC +https://github.com/fennb/phirehose" while reading upstream, client: 66.249.79.194, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:16:41 [error] 23449#23449: *1139 FastCGI sent in stderr: "PHP message: Phirehose: Consume rate: 58 status/sec (3477 total), avg enqueueStatus(): 0.13ms, avg checkFilterPredicates(): 0ms (0 total) over 60 seconds, max stream idle period: 1 seconds" while reading upstream, client: 66.249.79.194, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:17:36 [error] 23449#23449: *1139 FastCGI sent in stderr: "PHP message: Phirehose: Consume rate: 54 status/sec (3242 total), avg enqueueStatus(): 0.12ms, avg checkFilterPredicates(): 0ms (0 total) over 60 seconds, max stream idle period: 1 seconds" while reading upstream, client: 66.249.79.194, server: php-demo.example.com, request: "GET /demo/twitter/phirehose/customize/1/1.sample.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"
2019/05/01 09:21:48 [error] 23643#23643: *1 FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected 'ini_set' (T_STRING) in /var/www/html/xxxx/public/index.php on line 5" while reading response header from upstream, client: 223.219.134.174, server: php-demo.example.com, request: "GET /demo/settlement/marketplace/marketplace-master/public/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "php-demo.example.com"



Apache「.htaccess」→ Nginx



週間人気ページランキング / 9-16 → 9-22
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 19
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 14
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 13
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 12
5 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 7
6 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 7
6 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 PHPファイルでchmodエラー | PHP(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 6
7 さくらVPS0 6
8 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 5
9 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 4
9 echo と cat の違い 4
9 phpMyAdmin 4.4.3(phpMyAdmin) カテゴリー 4
9 tar: これは tar アーカイブではないようです 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/23 1:01 更新