当前位置: 首页 > news >正文

02 nginx 的环境搭建

前言

这一系列文章主要包含的内容主要是 各种常用软件的调试环境的搭建  

主要的目的是 搭建一个可打断点的一个调试环境 

c 系列 主要是基于 clion 调试, java 系列主要是基于 idea 调试, js 系列主要是基于 webstorm 调试 

需要有一定的 c, c++, java, js 相关基础 

基于的环境是一个 ubuntu16.04 desktop, 初始的时候 仅仅更新了源, 安装了 clion 
 

redis, nginx, mysql, vsftpd
javac, javap, jstack, jmap, jinfo
kafka,
spark, flink
coreutils, glibc, gdb 
hotspotVM, linux
... 等等其他

 

 

编译 nginx-1.22.1 

首先去官方网站下载最新源码, 然后拷贝自 目标虚拟机 

 

 

 

开始配置, 有条件的话可以安装一下 pcre, ssl, zip 相关库, 这里没有安装 

root@ubuntu:~/Desktop/nginx-1.22.1# ./configure --without-http_rewrite_module --without-http_gzip_module
checking for OS+ Linux 4.4.0-62-generic x86_64
checking for C compiler ... found+ using GNU C compiler+ gcc version: 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for gcc builtin 64 bit byteswap ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... found
checking for Linux specific features
checking for epoll ... found
checking for EPOLLRDHUP ... found
checking for EPOLLEXCLUSIVE ... not found
checking for eventfd() ... found
checking for O_PATH ... found
checking for sendfile() ... found
// 省略部分输出 
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for sysconf(_SC_LEVEL1_DCACHE_LINESIZE) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
creating objs/MakefileConfiguration summary+ PCRE library is not used+ OpenSSL library is not used+ zlib library is not usednginx path prefix: "/usr/local/nginx"nginx binary file: "/usr/local/nginx/sbin/nginx"nginx modules path: "/usr/local/nginx/modules"nginx configuration prefix: "/usr/local/nginx/conf"nginx configuration file: "/usr/local/nginx/conf/nginx.conf"nginx pid file: "/usr/local/nginx/logs/nginx.pid"nginx error log file: "/usr/local/nginx/logs/error.log"nginx http access log file: "/usr/local/nginx/logs/access.log"nginx http client request body temporary files: "client_body_temp"nginx http proxy temporary files: "proxy_temp"nginx http fastcgi temporary files: "fastcgi_temp"nginx http uwsgi temporary files: "uwsgi_temp"nginx http scgi temporary files: "scgi_temp"

 

 

开始编译 

调整编译时优化级别, 不优化  

 

root@ubuntu:~/Desktop/nginx-1.22.1# make 
make -f objs/Makefile
make[1]: Entering directory '/root/Desktop/nginx-1.22.1'
cc -c -pipe  -O0 -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \-o objs/src/core/nginx.o \src/core/nginx.c
cc -c -pipe  -O0 -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \-o objs/src/core/ngx_log.o \src/core/ngx_log.c
cc -c -pipe  -O0 -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \-o objs/src/core/ngx_palloc.o \src/core/ngx_palloc.c
// 省略一部分输出 
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_random_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_upstream_zone_module.o \
objs/ngx_modules.o \
-ldl -lpthread -lcrypt \
-Wl,-E
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory '/root/Desktop/nginx-1.22.1'

 

root@ubuntu:~/Desktop/nginx-1.22.1# ls -l objs/ | grep nginx
-rwxr-xr-x 1 root root 3148224 Apr  5 01:40 nginx
-rw-r--r-- 1 root root    5537 Apr  5 01:40 nginx.8

 

 

clion 中调试

clion 中打开 nginx-1.22.1 项目 

新建 make application, 配置名称 

target 配置 make 相关, build 配置 Makefile 中 build 的命令, clean 配置 Makefile 中 clean 的命令 

executable 配置编译好的 nginx-server 的可执行文件 

program arguments 即为 nginx-server 所需要的参数, 这里配置为配置文件  

 

然后启动 nginx-server 服务 

 

 

访问 nginx 的服务

 

 

但是 还存在一个问题是, 我们期望调试的是请求流程的处理, 因此 我们需要调试 work 进程     

因此 我们这里交换 master, worker 的业务, 以便于 我们直接在 clion 中调试 worker 

 

 

ngx_http_static_module.ngx_http_static_handler 中打上断点, 然后 访问 nginx 的静态资源, 发现断点如下, 至此 可以正常调试了 

http://192.168.0.108/index.html

 

 

 

 

 


文章转载自:

http://FSxQCw2k.Lhhdy.cn
http://kdbVyCCq.Lhhdy.cn
http://7YF7kWCN.Lhhdy.cn
http://iex0K8BC.Lhhdy.cn
http://XTkYKaJN.Lhhdy.cn
http://7ySooMZ9.Lhhdy.cn
http://HW6rsHUI.Lhhdy.cn
http://ctlosvsL.Lhhdy.cn
http://dlJ6v740.Lhhdy.cn
http://SJBS0GnV.Lhhdy.cn
http://XacZlxve.Lhhdy.cn
http://mZyio3HW.Lhhdy.cn
http://uoqWAjAf.Lhhdy.cn
http://WXeqX1Be.Lhhdy.cn
http://92wx7CZC.Lhhdy.cn
http://5RovSF33.Lhhdy.cn
http://LbGESECT.Lhhdy.cn
http://pj1NGjt4.Lhhdy.cn
http://Th585Vi0.Lhhdy.cn
http://IwOjVwgl.Lhhdy.cn
http://jFvJ8FVU.Lhhdy.cn
http://qcmNRU0g.Lhhdy.cn
http://BVQsDDtD.Lhhdy.cn
http://E7sbpGLO.Lhhdy.cn
http://FBtZoYEm.Lhhdy.cn
http://ddpRaeR4.Lhhdy.cn
http://zrOxBaJp.Lhhdy.cn
http://h2LU5xak.Lhhdy.cn
http://T6hES4NC.Lhhdy.cn
http://iuQD244C.Lhhdy.cn
http://www.dtcms.com/a/235845.html

相关文章:

  • python打卡训练营打卡记录day46
  • 小程序实现下拉刷新(踩坑 下拉刷新不触发)
  • 【Linux基础知识系列】第十三篇-Cron与定时任务管理
  • 【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
  • 09.三数之和
  • 低内聚高耦合的衡量指标
  • Linux top 命令 的使用总结
  • Python Day43 学习(日志Day10-11复习)
  • SQLServer中的存储过程与事务
  • 【普及+/提高】洛谷P2114 ——[NOI2014] 起床困难综合症
  • Linux操作系统之进程(五):初识地址空间
  • JAVA元编程
  • SCSAI工业智能操作系统=PLM对象模型 × 大模型认知引擎 × 工作流调度层
  • 分布式锁-Redisson实现
  • Linux编程:1、文件编程
  • yolov8自训练模型作为预训练权重【增加新类别】注意事项
  • 思维链的 内部机制和简单理解
  • Q: dify前端使用哪些开发框架?
  • RK3588 火焰烟雾检测
  • 2025.6.5学习日记 Nginx主目录文件 .conf介绍、热部署 定时日志切割
  • MySQL基础(二)SQL语言、客户端工具
  • python中的经典视觉模块:OpenCV(cv2)全面解析
  • 数学复习笔记 28
  • 代理服务器-LVS的3种模式与调度算法
  • c++ set与multiset的介绍
  • 【计算机网络】非阻塞IO——poll实现多路转接
  • Go垃圾回收参数调优:实现低延迟服务的实战指南
  • usb工业广焦摄像头怎么调焦
  • keil编译工程,结合map文件和bin文件,实测C语言中不同类型的变量存储在不同的内存区域
  • 【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载