nginx基础(2)-源码编译安装 约定不等于承诺〃 2022-10-23 15:30 147阅读 0赞 ## 源码编译安装 ## 下载nginx nginx官方下载地址:[http://nginx.org/en/download.html][http_nginx.org_en_download.html] wget http://nginx.org/download/nginx-1.18.0.tar.gz tar -zxvf nginx-1.18.0.tar.gz cd nginx-1.18.0 安装依赖包及基本命令包 yum install -y gcc gcc-c++ gdb net-tools telnet libevent-devel subversion bind-utils wget policycoreutils-python sysstat lsof redhat-lsb vim pcre-devel openssl openssl-devel ntp ntpdate unzip nginx目录文件 [root@yuan nginx-1.18.0]# ll 总用量 764 drwxr-xr-x 6 1001 1001 326 3月 2 11:55 auto # 提供了4个子目录 -rw-r--r-- 1 1001 1001 302863 4月 21 2020 CHANGES # 对nginx版本中有哪些特性和bugfix进行说明 -rw-r--r-- 1 1001 1001 462213 4月 21 2020 CHANGES.ru # 俄罗斯语言版本的CHANGES drwxr-xr-x 2 1001 1001 168 3月 2 11:59 conf # 示例文件,安装好之后会将此目录中的示例文件拷贝到安装目录以方便配置 -rwxr-xr-x 1 1001 1001 2502 4月 21 2020 configure # 用来生成中间文件,执行编译前的一个必备动作 drwxr-xr-x 4 1001 1001 72 3月 2 11:55 contrib # 提供了两个pa脚本,和vim的工具 drwxr-xr-x 2 1001 1001 40 3月 2 11:55 html # 提供了两个标准的html文件 -rw-r--r-- 1 1001 1001 1397 4月 21 2020 LICENSE -rw-r--r-- 1 root root 376 3月 2 13:26 Makefile drwxr-xr-x 2 1001 1001 21 3月 2 11:55 man # Linux对nginx的帮助文件,这里可以看到nginx的基本帮助和配置 -rw-r--r-- 1 1001 1001 49 4月 21 2020 README drwxr-xr-x 9 1001 1001 91 3月 2 11:55 src # 框架都在此目录的代码中 配置使vim打开nginx配置文件时语法高亮 mkdir /root/.vim cp -r contrib/vim/* /root/.vim/ 查看configure支持哪些参数 ./configure --help | more 默认安装nginx 可配置prefix地址 默认在/usr/local/nginx/ ./configure 执行完configure命令后会多出以下两个内容 [root@yuan nginx-1.18.0]# ll 总用量 764 drwxr-xr-x 6 1001 1001 326 3月 2 11:55 auto -rw-r--r-- 1 1001 1001 302863 4月 21 2020 CHANGES -rw-r--r-- 1 1001 1001 462213 4月 21 2020 CHANGES.ru drwxr-xr-x 2 1001 1001 168 3月 2 11:59 conf -rwxr-xr-x 1 1001 1001 2502 4月 21 2020 configure drwxr-xr-x 4 1001 1001 72 3月 2 11:55 contrib drwxr-xr-x 2 1001 1001 40 3月 2 11:55 html -rw-r--r-- 1 1001 1001 1397 4月 21 2020 LICENSE -rw-r--r-- 1 root root 376 3月 2 13:26 Makefile drwxr-xr-x 2 1001 1001 21 3月 2 11:55 man drwxr-xr-x 3 root root 174 3月 2 13:28 objs # 生成的中间文件 -rw-r--r-- 1 1001 1001 49 4月 21 2020 README drwxr-xr-x 9 1001 1001 91 3月 2 11:55 src [root@yuan nginx-1.18.0]# cd objs/ [root@yuan objs]# ll 总用量 80 -rw-r--r--. 1 root root 17628 2月 9 16:07 autoconf.err -rw-r--r--. 1 root root 39886 2月 9 16:07 Makefile -rw-r--r--. 1 root root 6791 2月 9 16:07 ngx_auto_config.h -rw-r--r--. 1 root root 657 2月 9 16:07 ngx_auto_headers.h -rw-r--r--. 1 root root 5856 2月 9 16:07 ngx_modules.c # 决定了接下来编译时,有哪些模块会被编译进nginx drwxr-xr-x. 9 root root 84 2月 9 16:07 src # C语言编译时生成的中间文件都会放在此目录 编译 make # 编译完成后,objs目录下会生成大量中间文件,主要为以下三部分 # 如果需要对nginx进行版本升级,则需要从objs中将nginx执行文件拷贝到nginx的安装目录中 # 如果使用了动态模块,那么动态模块编译会生成so动态文件,届时也会放在objs目录下 -rwxr-xr-x. 1 root root 3825645 2月 9 16:25 nginx -rw-r--r--. 1 root root 5317 2月 9 16:25 nginx.8 -rw-r--r--. 1 root root 32312 2月 9 16:25 ngx_modules.o 安装,只有首次安装时可使用此命令 make install 最后进入nginx目录,看到 [root@yuan nginx]# cd /usr/local/nginx/ [root@yuan nginx]# ll 总用量 0 drwx------ 2 nobody root 6 3月 2 13:41 client_body_temp drwxr-xr-x 2 root root 333 3月 2 13:41 conf # 决定nginx功能的配置文件在conf下 drwx------ 2 nobody root 6 3月 2 13:41 fastcgi_temp drwxr-xr-x 2 root root 40 3月 2 13:30 html drwxr-xr-x 2 root root 58 3月 2 13:41 logs # access.log和error.log在logs下 drwx------ 2 nobody root 6 3月 2 13:41 proxy_temp drwxr-xr-x 2 root root 19 3月 2 13:30 sbin # 最主要的nginx二进制文件在sbin下 drwx------ 2 nobody root 6 3月 2 13:41 scgi_temp drwx------ 2 nobody root 6 3月 2 13:41 uwsgi_temp [root@yuan nginx]# ## Nginx配置文件的通用语法介绍 ## Nginx配置文件是一个asc文本文件: 01 它由两部分组成,一个是directive(指令),一个是directive block(指令块)。 02 每条指令以 ; 英文分号结尾,指令与参数间以空格符号分隔,多参数之间以分号分隔。 03 指令快以 \{\} 大括号将多条指令组织在一起 04 include语句允许组合多个配置文件以提升可维护性 05 使用 \# 添加注释,提高可读性 06 以 $ 符号使用变量 07 部分指令的参数支持正则表达式 <table style="width:390px;"> <tbody> <tr> <td colspan="4" style="border-color:#c0c0c0;">配置参数:时间的单位</td> <td colspan="2" style="border-color:#c0c0c0;">配置参数:空间的单位</td> </tr> <tr> <td style="border-color:#c0c0c0;">ms</td> <td style="border-color:#c0c0c0;">milliseconds</td> <td style="border-color:#c0c0c0;">d</td> <td style="border-color:#c0c0c0;">days</td> <td style="border-color:#c0c0c0;">B</td> <td style="border-color:#c0c0c0;">bytes 字节</td> </tr> <tr> <td style="border-color:#c0c0c0;">s</td> <td style="border-color:#c0c0c0;">seconds</td> <td style="border-color:#c0c0c0;">w</td> <td style="border-color:#c0c0c0;">weeks</td> <td style="border-color:#c0c0c0;">k/K</td> <td style="border-color:#c0c0c0;">kilobytes 千字节</td> </tr> <tr> <td style="border-color:#c0c0c0;">m</td> <td style="border-color:#c0c0c0;">minutes</td> <td style="border-color:#c0c0c0;">M</td> <td style="border-color:#c0c0c0;">months,30 days</td> <td style="border-color:#c0c0c0;">m/M</td> <td style="border-color:#c0c0c0;">megabytes 兆字节</td> </tr> <tr> <td style="border-color:#c0c0c0;">h</td> <td style="border-color:#c0c0c0;">hours</td> <td style="border-color:#c0c0c0;">y</td> <td style="border-color:#c0c0c0;">years,365 days</td> <td style="border-color:#c0c0c0;">g/G</td> <td style="border-color:#c0c0c0;">gigabytes 吉字节</td> </tr> </tbody> </table> http配置的指令块 http 表明此大括号里的所有指令都是由http模块去解析去执行的 upstream 表明上游服务,当nginx需要与Tomcat、Django等企业内网的其他服务有交互时,可定义此模块 server 定义一个域名或一组域名 location URL表达式 ## Nginx服务加到systemctl ## vim /usr/lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=multi-user.target 启动命令: systemctl start nginx [http_nginx.org_en_download.html]: http://nginx.org/en/download.html
还没有评论,来说两句吧...