背の高い404問題を解決する方法

背の高い404を解決する方法

vhost.confを構成した後、ドメイン名にアクセスすると404が返されます。順番に確認してください

  • selinuxが閉じているかどうか
  • ドメイン名のパスは正しいですか
  • ホスト名はipに対応していますか

これらの場所では問題はありませんが、どうすればよいですか?

nginxプロセスモデルはmaster-workerモデルです。ワーカーcgi解決による特定の要求を担当します。

[sujianhui@dev529 public]$>ps aux | grep nginx
root      9977  0.0  0.0  47496  2444 ?        Ss   15:13   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
sujianh+ 19271  0.0  0.0  49584  2732 ?        S    20:27   0:00 nginx: worker process
sujianh+ 19992  0.0  0.0 112720   964 pts/0    S+   20:44   0:00 grep --color=auto nginx

ワーカープロセスがロードするファイルを追跡できる場合は問題ありません。ファイルが存在するかどうかを確認するだけで、問題はファイルを追跡する方法にありますか?

Linuxにstraceは、プロセスによって開始されたシステム呼び出しを監視できるツールがあります。つまり、オペレーティングシステムの6つの基本操作を確認できます。その中にはstat、ファイルのメタ情報を取得するためのシステム呼び出しがあります。
これを監視できます

ワーカープロセスを1つだけ開いたので、1つのワーカープロセスをトレースするだけで十分です。

[sujianhui@dev529 network_security]$>strace -p 19271
strace: Process 19271 attached
epoll_wait(11, [{EPOLLIN, {u32=261448992, u64=94395052680480}}], 512, -1) = 1
accept4(7, {sa_family=AF_INET, sin_port=htons(38612), sin_addr=inet_addr("127.0.0.1")}, [16], SOCK_NONBLOCK) = 4
epoll_ctl(11, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLRDHUP|EPOLLET, {u32=261449689, u64=94395052681177}}) = 0
epoll_wait(11, [{EPOLLIN, {u32=261449689, u64=94395052681177}}], 512, 60000) = 1
recvfrom(4, "GET / HTTP/1.1\r\nHost: local.lara"..., 1024, 0, NULL, NULL) = 661
stat("/home/sujianhui/PhpstormProjects/blog/public/", {st_mode=S_IFDIR|0775, st_size=95, ...}) = 0
stat("/home/sujianhui/PhpstormProjects/blog/public/", {st_mode=S_IFDIR|0775, st_size=95, ...}) = 0
stat("/home/sujianhui/PhpstormProjects/blog/public/index.php", {st_mode=S_IFREG|0664, st_size=1731, ...}) = 0
epoll_ctl(11, EPOLL_CTL_MOD, 4, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=261449689, u64=94395052681177}}) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 5
ioctl(5, FIONBIO, [1])                  = 0
epoll_ctl(11, EPOLL_CTL_ADD, 5, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=261449457, u64=94395052680945}}) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(9000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS 
epoll_wait(11, [], 512, 60000)          = 0
...
...
close(9)                                = 0
epoll_wait(11, [], 512, 4943)           = 0
close(4)                                = 0
epoll_wait(11, ^Cstrace: Process 19271 detached
 <detached ...>

重要な情報を抽出する

`stat("/home/sujianhui/PhpstormProjects/blog/public/index.php", {st_mode=S_IFREG|0664, st_size=1731, ...}) = 0`

追跡statにより、作業者が探していることがわかります/home/sujianhui/PhpstormProjects/blog/public/index.php。この問題は解決されました。
同様に、この解決策は403でも実行できます。

5xxシリーズ

5xxシリーズの問題はすべてPHP側に表示されます。次のnginxエラーログを確認する方が、ブラインド推測よりも信頼性が高くなります。

おすすめ

転載: blog.csdn.net/qq_30549099/article/details/109149979
おすすめ