Heim > Artikel > Backend-Entwicklung > Debuggen des Nginx-Quellcodes (3).
Fortsetzung des vorherigen Artikels
Wenn Nginx ausgeführt wird, wird es als Hintergrundprozess mit einem Master- und drei Prozessprozessen ausgeführt. Um das Debuggen zu erleichtern, muss diese Konfiguration geändert werden.
Ändern Sie den Quellcode direkt hier. Um die erneute Erstellung zu vereinfachen, ändern Sie zuerst das Makefile
Ändern Sie das ursprüngliche
<code><span>clean:</span> rm -rf Makefile objs</code>
in:
<code><span>clean</span>: rm -rf nginx objs<span>/ngx_modules.o objs/src/core*.o objs/src/event/</span>*.o objs<span>/src/event/modules/</span>*.o objs<span>/src/http/</span>*.o objs<span>/src/http/modules/</span>*.o objs<span>/src/http/modules/proxy/</span>*.o objs<span>/src/os/unix/</span>*.o</code>
, damit nicht alle Makefile-Dateien nach der Bereinigung gelöscht werden.
Kommentieren Sie den Code im Zusammenhang mit Daemon und Multiprozess in core/nginx.c aus:
<code><span>/* if (!ngx_inherited && ccf->daemon) { if (ngx_daemon(cycle->log) == NGX_ERROR) { return 1; } ngx_daemonized = 1; } */</span></code>
und
<code><span>printf</span>(<span>"[main] to start ngx_single_process_cycle\n"</span>); <span>///if (ngx_process == NGX_PROCESS_MASTER) {</span><span>/// ngx_master_process_cycle(cycle, &ctx);</span><span>///} else {</span> ngx_single_process_cycle(cycle, &ctx); <span>///}</span></code>
Ich habe oben ein printf hinzugefügt, weil nginx wird direkt in der Konsole ausgeführt, überprüfen Sie den Druck und ändern Sie für den späteren Start die Portnummer in conf/nginx.conf auf 8080, führen Sie make erneut aus, und Sie können die gedruckte Ausgabe auf der Konsole sehen. Wenn der Browser auf http://localhost:8080 zugreift, wird ebenfalls Erfolg zurückgegeben und andere Protokollinformationen werden weiterhin in Dateien im Protokollverzeichnis ausgegeben.
Das Obige stellt das Debuggen des Nginx-Quellcodes (3) vor, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.