nginx基础(2)-源码编译安装

源码编译安装

下载nginx 

nginx官方下载地址: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 部分指令的参数支持正则表达式

配置参数:时间的单位配置参数:空间的单位
msmillisecondsddaysBbytes 字节
ssecondswweeksk/Kkilobytes 千字节
mminutesMmonths,30 daysm/Mmegabytes 兆字节
hhoursyyears,365 daysg/Ggigabytes 吉字节

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值