Nginx 全局命令介绍

Nginx 介绍篇

📌 Nginx 是异步框架的⽹⻚服务器,也可以⽤作反向代理、负载平衡器和 HTTP
缓存。该软件由俄罗斯程序员伊⼽尔 · 赛索耶夫开发并于 2004 年⾸次公开发
布。2011 年成⽴同名公司以提供⽀持服务。2019 年 3 ⽉ 11 ⽇,Nginx 公司被
F5 ⽹络公司以 6.7 亿美元收购。 Nginx 是免费的开源软件,根据类 BSD 许可
证的条款发布。

Nginx 优点

⾼并发⽀持 单机能够⽀持 10W+ 的并发连接(取决于内存⼤⼩,极限能够到百万),那么
在实际⽣产中也是⾮常能接近这个数字的,这主要得益于 nginx 在 linux 环境下使⽤
epoll IO 多路复⽤模型。
内存消耗低 在同类型 web 服务中, nginx apache 占⽤的内存资源更少,在⼀般
情况下 10K ⾮活跃的 HTTP Keep-Alive 连接在 nginx 中仅消耗 2.5M 内存。
⾼扩展性 低耦合的模块设计,并且有丰富的第三⽅模块⽀持。
⾼可靠性 经过⼗⼏年各种复杂场景和各⼤公司的⽣产环境验证,并且 nginx 的架构是
master 进程和 worker 进程组成的,如果 worker 进程出现问题,那么 master 进
程可以快速开启⼀个新的 worker 进程提供服务。

主流 Web 服务器市场占有率对⽐

2023全网首发Nginx系列教程,免备案域名访问、防盗链、压缩、合并请求应有尽有,你确定不收藏?

Nginx 全局命令介绍

查看当前 nginx 版本

nginx -v
# 返回
nginx version: nginx/1.18.0 (Ubuntu)
检查配置⽂件是否正确
nginx -t
# 成功见如下
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重载配置⽂件
nginx -s reload
快速关闭
nginx -s stop
优雅关闭
nginx -s quit
重新打开⽇志⽂件
nginx -s reopen
通过系统信号进⾏停机
⼯作⽅式是通过获取 Nginx 的主进程号,然后通过 kill 命令进⾏停⽌ Nginx
获取 Nginx 的 PID
如下可以看到进程信息分为 master process worker process ,前者代表主
进程后者代表的是⼯作进程
# 获取NginxPID号
ps -ef|grep nginx
# ==========效果如下图==============
root 508258 1 0 11:11 ? 00:00:00 nginx: master process /
www-data 508260 508258 0 11:11 ? 00:00:00 nginx: worker process
www-data 508261 508258 0 11:11 ? 00:00:00 nginx: worker process
www-data 508262 508258 0 11:11 ? 00:00:00 nginx: worker process
www-data 508263 508258 0 11:11 ? 00:00:00 nginx: worker process
root 572099 506069 0 12:19 pts/10 00:00:00 grep --color=auto nginx
还有⼀种⽅式就是直接访问 /run/nginx.pid ⽂件获取 PID 号。
优雅停机
kill -quit `/run/nginx.pid`
kill -quit (输入nginx主进程号)
快速停机
kill -term `/run/nginx.pid`
kill -term (输入nginx主进程号)
# 或者
kill -int `/run/nginx.pid`
kill -int (输入nginx主进程号)
强制停机
kill -9 `/run/nginx.pid`
kill -9 (输入nginx主进程号)
# 或者
pkill -9 nginx
平滑重启
当 Nginx 接收到 HUP 信号时,它会尝试先解析配置⽂件(如果指定配置⽂件,就使⽤
指定的,否则使⽤默认的),如果成功,就应⽤新的配置⽂件(例如,重新打开⽇志⽂
件或监听的套接字)。之后,Nginx 运⾏新的⼯作进程并从容关闭旧的⼯作进程。通知
⼯作进程关闭监听套接字,但是继续为当前连接的客户提供服务。所有客户端的服务完
成后,旧的⼯作进程被关闭。如果新的配置⽂件应⽤失败,Nginx 将继续使⽤旧的配置
进⾏⼯作。
kill -hup `/run/nginx.pid`
kill -hup (输入nginx主进程号)
Nginx ⽬录⽂件 & 配置⽂件讲解
root@beiming:~# tree /opt/nginx/
/opt/nginx/
├── client_body_temp
├── conf #存放一系列配置文件的目录
│ ├── fastcgi.conf #fastcgi程序相关配置文件
│ ├── fastcgi.conf.default #fastcgi程序相关配置文件备份
│ ├── fastcgi_params #fastcgi程序参数文件
│ ├── fastcgi_params.default #fastcgi程序参数文件备份
│ ├── koi-utf #编码映射文件
│ ├── koi-win #编码映射文件
│ ├── mime.types #媒体类型控制文件
│ ├── mime.types.default #媒体类型控制文件备份
│ ├── nginx.conf #主配置文件
│ ├── nginx.conf.default #主配置文件备份
│ ├── scgi_params #scgi程序相关配置文件
│ ├── scgi_params.default #scgi程序相关配置文件备份
│ ├── uwsgi_params #uwsgi程序相关配置文件
│ ├── uwsgi_params.default #uwsgi程序相关配置文件备份
│ └── win-utf #编码映射文件
├── fastcgi_temp #存放fastcgi程序临时文件
├── html #存放网页文档
│ ├── 50x.html #错误页码显示网页文件
│ └── index.html #网页的首页文件
── logs #存放nginx的日志文件
│ ├── access.log #默认访问日志
│ ├── error.log #错误日志
│ └── nginx.pid #nginx pid文件
├── proxy_temp #代理相关临时文件
├── sbin #存放启动程序
│ └── nginx #nginx启动程序
├── scgi_temp #存放scgi程序临时文件
└── uwsgi_temp #存放uwsgi程序临时文件
9 directories, 21 files
#user nobody; //定义执行nginx程序的用户
worker_processes 1; #指定nginx进程数
#错误日志定义类型有:debug、info、notice、warn、error、crit
#error_log logs/error.log; //指定错误日志目录
#error_log logs/error.log notice; //指定notice类型的错误日志目录
#error_log logs/error.log info; //指定全局错误日志目录
#worker_rlimit_nofile 1024; //指定但进程最多打开文件数量
#pid logs/nginx.pid; //指定进程文件的目录
events { #事件区块
#事件模型有:kqueue、rtsig、epoll、/dev/poll、select、poll
use epoll; #指定参考事件模型
worker_connections 1024; #指定单进程最大链接数
}
http { #http区块
include mime.types; #指定nginx支持的媒体类型
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/access.log main; //指定nginx的访问日志目录
sendfile on; #开启高效的传输模式
#tcp_nopush on; //防止网络阻塞
#keepalive_timeout 0; //链接超时事件
keepalive_timeout 65;
#gzip on; //开启gzip压缩输出
#gzip_min_length 1k; //最小压缩文件大小
#gzip_buffers 4 16k; //压缩缓冲区
#gzip_http_version 1.0; //压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
#gzip_comp_level 2; //压缩等级
#gzip_types text/x-javascript text/css application/xml; //压缩类型,默认
#gzip_vary on; //增加响应头”Vary: Accept-Encoding”
#limit_zone crawler $binary_remote_addr 10m; //开启限制IP连接数的时候需要使
#FastCGI程序相关参数
#配置FastCGI程序相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
#fastcgi_connect_timeout 300; //连接到后端fastcgi超时时间
#fastcgi_send_timeout 300; //向fastcgi请求超时时间(这个指定值已经完成两次握
#fastcgi_read_timeout 300; //接收fastcgi应答超时时间,同理也是2次握手后
#fastcgi_buffer_size 64k; //读取fastcgi应答第一部分需要多大缓冲区,该值表示
#fastcgi_buffers 4 64k; //指定本地需要多少和多大的缓冲区来缓冲fastcgi应答请求
#fastcgi_busy_buffers_size 128k; //默认值是fastcgi_buffer的2倍
#fastcgi_temp_file_write_size 128k; //写入缓存文件使用多大的数据块,默认值是
#fastcgi_cache TEST; //开启fastcgi缓存并为其指定为TEST名称,降低cpu负载,防止
#应答代码缓存时间,200和302应答缓存为1个小时,301一天,其他1分钟
#fastcgi_cache_valid 200 302 1h;
#fastcgi_cache_valid 301 1d;
#fastcgi_cache_valid any 1m;
#主机配置
server { #server区块,每一个区块表示一个虚拟主机
listen 80; #侦听端口
server_name localhost; #配置此主机的域名
#charset koi8-r; //配置字符编码
#access_log logs/host.access.log main; //配置默认访问日志目录
location / { #location区块 通过指定模式来与客户端请求的URI相匹配
root html; #配置站点根目录
index index.html index.htm; #默认文件
}
#error_page 404 /404.html; //当发生404错误的时候能够显示
# redirect server error pages to the static page /50x.html //将服
#
error_page 500 502 503 504 /50x.html; #当发生其中错误的时候能够显
#反向代理
#location / {
#proxy_pass http://127.0.0.1:88; //指定代理地址
#proxy_redirect off; //当上游服务器返回的响应是重定向或刷新请求(如HTTP响
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $host; //允许重新定义或者添加发往后端服务器的请求头
#client_max_body_size 10m; //允许客户端请求的最大单文件字节数
#client_body_buffer_size 128k; //缓冲区代理缓冲用户端请求的最大字节数
#proxy_connect_timeout 90; //nginx跟后端服务器连接超时时间(代理连接超时)
#proxy_send_timeout 90; //后端服务器数据回传时间(代理发送超时)
#proxy_read_timeout 90; //连接成功后,后端服务器响应时间(代理接收超时)
#proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大
#proxy_buffers 4 32k; //proxy_buffers缓冲区,网页平均在32k以下的设置
#proxy_busy_buffers_size 64k; //高负荷下缓冲大小(proxy_buffers*2)
#proxy_temp_file_write_size 64k; //设定缓存文件夹大小,大于这个值,将从u
106
#}
#设置js和css缓存时间
#location ~ .*\.(js|css)?$
#{
#expires 2h;
# }
#设置图片缓存事件
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#{
#expires 5d;
# }
#监控Nginx状态的地址
#location /NginxStatus {
#stub_status on; //开启监控状态
#access_log on; //开启默认访问监控
#auth_basic "NginxStatus"; //设置验证模块
#auth_basic_user_file conf/htpasswd; //htpasswd文件的内容可以用apache提
#}
#动静分离配置
#所有jsp的页面均交由tomcat处理
#location ~ .(jsp|jspx|do)?$ {
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_pass http://127.0.0.1:8080;
# }
#所有静态文件由nginx直接读取不经过tomcat
#location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid
#{
#expires 10d;
#}
#location ~ .*.(js|css)?${
#expires 2h;
#}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北游学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值