[nginx] 从源码编译安装NGINX
nginx通过rpm包进行的安装和配置:
[web][nginx] 初识nginx -- 使用nginx搭建https DPI解码测试环境
现在,要通过源码进行安装。
参考:https://nginx.org/en/docs/configure.html
1. 下载PCRE-8.41 https://ftp.pcre.org/pub/pcre/ 并解压。
2. 安装 zlib
yum install zlib-devel
3. configure
root@D128 ~/S/nginx-1.13.# ./configure --prefix=/root/BUILD --with-pcre=/root/Src/pcre-8.41/
root@D128 ~/S/nginx-1.13.9# make
4. 安装
root@D128 ~/S/nginx-1.13.# make install
安装完了,在这里
root@D128 ~/BUILD# ls
client_body_temp/ conf/ fastcgi_temp/ html/ logs/ proxy_temp/ sbin/ scgi_temp/ uwsgi_temp/
5. 启动,
执行这个程序,就会用默认配置启动了。
/root/BUILD/sbin/nginx
但是,关掉iptables,selinux之后,依然报错
// :: [error] #: * "/root/BUILD/html/index.html" is forbidden (: Permission denied), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "127.0.0.1"
// :: [error] #: * "/root/BUILD/html/index.html" is forbidden (: Permission denied), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "127.0.0.1"
原来是因为我放在了 /root/目录下,root的目录权限导致了这个问题。
root@D128 /# chmod root/
6 GDB
默认编译文件objs/Makefile就是-g的,所以默认就能gdb
https://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/
(gdb) set follow-fork-mode child
在fork后的子进程中设置断点:
(gdb) b ngx_daemon.c:
Breakpoint at 0x42f014: file src/os/unix/ngx_daemon.c, line .
nginx的进程启动大流程: (配置文件的初始化在第一次fork之前进行。)

7. loction
http://nginx.org/en/docs/http/ngx_http_core_module.html#location
今天重点研究的侧重点是location与pcre的问题,用来提升7层LB的性能。
现在,要搞清楚下面两个函数的调用契机和逻辑
ngx_http_core_find_config_phase
ngx_http_core_find_location 调用了 PCRE (ngx_http_regex_exec -> pcre_exec)
ngx_http_core_location
ngx_http_core_regex_location 调用了PCRE (ngx_http_regex_compile)
从如下代码中可以发现,该ngx_http_core_location函数用于做location关键字的配置
src/http/ngx_http_core_module.c: line 273
{ ngx_string("location"),
NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_BLOCK|NGX_CONF_TAKE12,
ngx_http_core_location,
NGX_HTTP_SRV_CONF_OFFSET,
,
NULL },
[nginx] 从源码编译安装NGINX的更多相关文章
- CentOS7 源码编译安装Nginx
源码编译安装nginx 1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...
- 源码编译安装nginx及设置开机启动项
1.上传nginx文档:解压到/data目录下,并安装依赖包tar xf nginx-1.20.1.tar.gz -C /data/cd /data/nginx-1.20.1/ && ...
- Linux系统 - 源码编译安装Nginx
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
- Centos7通过yum跟源码编译安装Nginx
源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...
- Ubuntu 16.04源码编译安装nginx 1.10.0
一.下载相关的依赖库 pcre 下载地址 http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.t ...
- 源码编译安装nginx
安装依赖软件 1.安装编译工具gcc gcc是一个开源编译器集合,用于处理各种各样的语言:C.C++.Java.Ada等,在linux世界中是最通用的编译器,支持大量处理器:x86.AMD64.Pow ...
- Centos6.5源码编译安装nginx
1.安装pcre下载地址:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz #tar -axvf pcre ...
- CentOS 7 源码编译安装 Nginx
这里安装的是nginx 1.14版本 1.下载源码 #下载 wget http://nginx.org/download/nginx-1.14.0.tar.gz #解压 tar -xzf nginx- ...
- CentOS中源码编译安装Nginx
1.从官网通过wget命令将Nginx源码包下载到Linux上 Nginx下载页面:http://nginx.org/en/download.html 2.在Linux上安装需要依赖的环境 yum ...
随机推荐
- python prettytable模块
简介 Python通过PrettyTable模块可以将输出内容如表格方式整齐地输出. 安装 pip install prettytable 1 示例 from prettytable import P ...
- 每日英语:Dashing the China Dream
Much has been said about what the 'China Dream' really means to many Chinese -- whether it is nation ...
- linux每日命令(10):touch命令
linux的touch命令一般用来修改文件时间戳,或者新建一个不存在的文件. 一.命令格式: touch [参数]... 文件... 二.命令参数: 参数 描述 -a 或--time=atime或-- ...
- iOS开发 关于启动页和停留时间的设置
引言: 在开发一款商业App时,我们大都会为我们的App设置一个启动页. 苹果官方对于iOS启动页的设计说明: 为了增强应用程序启动时的用户体验,您应该提供一个启动图像.启动图像与应用程序的首屏幕看起 ...
- oracle删除数据库中的所有表
连接:http://linben.blog.51cto.com/6205951/1293619 1.先禁用数据库中所有的约束 select 'alter table ' || table_name | ...
- OPatch cannot find a valid oraInst.loc file to locate Central Inventory
命令:opatch lsinventory用于查看数据库所打Patch的列表.但运行的时候发现错误: [oracle@bej301441 OPatch]$ opatch lsinventory In ...
- OpenWRT AR9331 mjpg-streamer 网络安装和离线ipk安装
OpenWRT AR9331 固件 我的摄像头ID为: root@Off-1CD0:/# lsusb Bus 001 Device 002: ID 1871:0101 OpenWRT支持的UVV摄像 ...
- Python使用lxml模块和Requests模块抓取HTML页面的教程
Web抓取Web站点使用HTML描述,这意味着每个web页面是一个结构化的文档.有时从中 获取数据同时保持它的结构是有用的.web站点不总是以容易处理的格式, 如 csv 或者 json 提供它们的数 ...
- autodesk fbx sdk sample里面的工程无法调试解决方法
1.项目属性->常规中的目标文件名改为1 2.链接器->调试中的生成程序数据库文件改成:$(OutDir)1.pdb 3.连接器->常规中的输出文件改成:$(OutDir)1.exe ...
- 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式
环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7.1 mysql数据 ...