Nginx 入门及基本命令行操作 (2)

在 https://openresty.org/en/download.html 中下载 OpenResty 的源代码,然后按照 Nginx 的编译步骤执行即可。

Nginx 配置文件 配置规则 events { worker_connections 1024; } http { #incloud mime.types; #default_type application/octet-stream; log_format main \'$remote_addr - $remote_user [$time_local] "$request" \' \'$status $body_bytes_sent "$http_referer" \' \'"$http_user_agent" "$http_x_forwarded_for"\'; #access_log logs/geek.access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; gzip_min_length 1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png multipart/form-data; server { listen 8080; server_name 127.0.0.1; #charset koi8-r; access_log logs/geek.access.log main; location /lua { default_type text/html; content_by_lua \' ngx.say("User-Agent: ", ngx.req.get_headers()["User-Agent"]) \'; } } #error_page 404 /404.html; }

如上所示,是一个非典型的 Nginx 配置文件,Nginx 的配置文件语法遵循以下规则:

配置文件由指令与指令块构成

每条指令以 ; 结尾,指令与指令的参数之间以空格符号分割

指令块以 {} 将多条指令组织在一起

events { # 指令块 worker_connections 1024; # 指令 }

include 语句允许组合多个配置文件,以提升可维护性

使用 # 添加注释

使用 $ 符号添加变量

部分指令的参数支持正则表达式

配置参数 时间单位

ms:毫秒

s:秒

m:分钟

h:小时

d:天

M:月 = 30 天

y:年 = 365 天

空间单位

bytes

k/K:kilobytes

m/M:megabytes

g/G:gigabytes

HTTP 配置的指令块

http:表示由 http 模块来处理请求

upstream:表示上游服务器地址

server:表示站点地址

location:表示 URL

这些指令块在接下来都会遇到。

Nginx 命令行

在刚刚编译完成的 Nginx 目录下,有一个 sbin 目录,就是用来存放 Nginx 的二进制文件的

➜ sbin ll total 1712 -rwxr-xr-x 1 mtdp staff 854K 3 3 07:29 nginx

Nginx 启动时,有一系列的命令行参数可以指定,下面分别介绍一下。

./nginx -h/-? # 打开帮助 -c # 使用指定的配置文件,而不是默认的 conf 文件夹下的配置文件 -g # 指定配置命令,覆盖掉配置文件中的指令 -p # 指定运行目录 -s # 发送信号 stop 立刻停止服务;quit 优雅的停止服务;reload 重载配置文件;reopen 重新开始记录日志文件 -t/-T # 测试配置文件是否有语法错误 -v/-V # 打印 nginx 的版本信息、编译信息等 热部署

当配置文件发生变更时,需要重载配置文件:

nginx -s reload

但想要更换 nginx 版本时,就需要采用热部署的方式:

查看现有 master 进程的 pid。可以看出来,worker 进程是 master 进程的子进程

image-20200322113304882

拷贝新的二进制文件到安装目录,然后 kill 发送信号给现有的 master 进程

# master 进程 pid 为 83308 kill -USR2 61333

查看 Nginx 进程。可以发现,新的 master 进程也是基于老的 master 进程 fork 出来的

image-20200322113627600

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdyys.html