nginx 访问图片404_Nginx学习笔记(二、Nginx配置文件详解) - 被猪附身的人
nginx的启停控制
1、Nginx信号控制:
nginx中可以通过发送信号的方式来控制服务器的启停等,但要达成这些操作首先要知道nginx的PID。
获取pid的方式有两种:
- 利用linux的ps命令查看:ps -ef | grep nginx 或者是 ps aux | grep nginx
- 直接查看nginx的PID存储文件:vim nginx存储目录/logs/(如,我本地为vi /usr/local/nginx/logs/)
找到PID后便可以通过PID来发送信号了,目前nginx提供了如下几种信号。
信号 |
用法 |
TERM/INT |
快速停止nginx服务 |
QUIT |
平缓的停止nginx服务 |
HUP |
平滑重启,即使用新的配置文件启动后平缓停止原有进程 |
USR1 |
重新打开日志,常用于日志的切割· |
USR2 |
使用新的nginx版本启动服务,之后平缓停止原有的进程,也就是所谓的“平滑升级”, |
WINCH |
平缓停止worker prcess ,用于nginx服务平滑升级 |
同样的向Nginx服务进程发送信号也有两种方式:一种是使用Nginx二进制文件,另外一种是使用kill命令发送信号。
当然我们也可以动态的指定pid,kill 信号 filepath(filepath=nginx pid路径)。
1 kill QUIT /usr/local/nginx/logs/
2、Nginx服务启动:
linux下在nginx安装目录下的sbin命令中执行nginx二进制文件即可.
1 cd /usr/local/nginx/sbin
2 ./nginx
关于其它的命令可通过-h或?查看:
1 ./nginx -h
2 ./nginx -?
3、Nginx服务停止:
1、快速停止:立马丢弃手上的工作,停掉但取nginx正在处理的所有网络请求。
2、平缓停止:完成当前工作后再停止nginx。
1 ./nginx -s stop # 快速停止(习惯的方式) 2 ./nginx -g INT # 快速停止 3 ./nginx -g TERM # 快速停止 4 ./nginx -g QUIT # 平缓停止5 6 # 使用PID方式 7kill INT PID8kill TERM PID9kill QUIT PID
1011 # kill -912 kill -9 信号 PID
13 kill -9 PID # 不推荐,容易导致部分用户丢失连接
4、Nginx服务重启:
1 # 可以指定新的配置文件2 ./nginx -g 信号 [新的配置文件]
34 # 可以使用PID,或者是pid文件所在的文件5kill HUB PID
67 # 在工作中常用的重启方式:平滑重启我们的nginx服务器,生产环境中经常使用8 ./nginx -s reload
5、Nginx服务升级:
如果我们需要对当前的Nginx服务进行升级 ,应用新的模块,最简单的方式是停下来,然后开启新的Nginx服务,那么给我们的用户体验是非常差的,会导致用户在一段时间内无法访问我们的服务器为了解决这个问题,Nginx提供了平滑升级的方案:
注意:为了实现nginx服务器的平滑升级,新安装的服务器路径应该和旧的一致。因此建议用新安装的服务器之前先备份一下我们的旧nginx服务器,如果由于种种原因不能保持新旧客户端路径一致则可以做一下操作,将旧的服务器路径更改为新的路径,新的服务器放入旧的路径中。
1# newinstallpath新文件的路径2 ./nginx -p new_install_path3 4# 备份旧的服务器5 6# 安装新的服务器7 8# 使新旧服务器实现平滑升级9 ./nginx -g USR2
1011# 或者使用
12kill USR2 路径
1314# 查看新服务器的启动情况
15 ps -ef |grpe nginx
1617# 发送平滑停止旧的服务器信号
18 ./nginx -g WINCH
执行过程:
- Nginx服务接受到USR2的信号后,首先将旧的文件后面添加一个.oldbin。
- 变成了,.oldbin 然后执行新版本的Nginx服务器的二进制文件启动服务,如果启动成功那么我们将会有两个Nginx服务在提供服务。
- 之后需要向旧的发送WINCH信号,使旧的nginx服务平缓的停止并删除.oldbin文件 在发送WINCH信号前我们可以随时停止新的服务。
nginx的配置文件解读
1#user nobody; # 设定访问的用户或组,若不设置默认所有人都可以访问2 worker_processes 1; # 设定工作组的数量,理论上越大越好,但是很多原因限制了性能,一般的跟我们服务器核心数一样就可以了3 4# 日志文件存储的地方,默认是nginx下的logs 注释为释放的话没有日志生成5 #error_log logs/error.log;6 #error_log logs/error.log notice;7# 日志的级别设置8 #error_log logs/error.log info;9 10# 进程的pid存放以及生成,如果你不释放开那么就不会在logs下生成文件11 #pid logs/;12 13# events块14# 这里设置的属性一般和网络连接有关的,所以没事别瞎折腾他,网络会出现很多莫名其妙的异常 15# 常用到的有worker_processes的设置,比如是否序列化,是否允许,同时接受多个网络请求 16# 选取什么样的时间模型等等17events {18 # 设置最大的连接数为,一般默认512,但是常用的时候,一般是1024-2048 19 # 一般不要超过你的操作系统的最大文件句柄数20 worker_connections 1024;21}22 23# 后续章节再述24http {25 include mime.types;26 default_type application/octet-stream;27 28 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '29 # '$status $body_bytes_sent "$http_referer" '30 # '"$http_user_agent" "$http_x_forwarded_for"';31 32 #access_log logs/access.log main;33 34 sendfile on;35 #tcp_nopush on;36 37 #keepalive_timeout 0;38 keepalive_timeout 65;39 40 #gzip on;41 42 server {43 listen 80;44 server_name localhost;45 46 #charset koi8-r;47 48 #access_log logs/host.access.log main;49 50 location / {51 root html;52 index index.html index.htm;53 }54 55 #error_page 404 /404.html;56 57 # redirect server error pages to the static page /50x.html58 #59 error_page 500 502 503 504 /50x.html;60 location = /50x.html {61 root html;62 }63 64 # proxy the PHP scripts to Apache listening on 127.0.0.1:8065 #66 #location ~ \.php$ {67 # proxy_pass http://127.0.0.1; 68 #}69 70 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:900071 #72 #location ~ \.php$ {73 # root html;74 # fastcgi_pass 127.0.0.1:9000;75 # fastcgi_index index.php;76 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;77 # include fastcgi_params;78 #}79 80 # deny access to .htaccess files, if Apache's document root81 # concurs with nginx's one82 #83 #location ~ /\.ht {84 # deny all;85 #}86 }87 88 89 # another virtual host using mix of IP-, name-, and port-based configuration90 #91 #server {92 # listen 8000;93 # listen somename:8080;94 # server_name somename alias another.alias;95 96 # location / {97 # root html;98 # index index.html index.htm;99 # }
100 #}
101102103 # HTTPS server
104 #
105 #server {
106 # listen 443 ssl;
107 # server_name localhost;
108109 # ssl_certificate cert.pem;
110 # ssl_certificate_key cert.key;
111112 # ssl_session_cache shared:SSL:1m;
113 # ssl_session_timeout 5m;
114115 # ssl_ciphers HIGH:!aNULL:!MD5;
116 # ssl_prefer_server_ciphers on;
117118 # location / {
119 # root html;
120 # index index.html index.htm;
121 # }
122 #}
123124 }
nginx 访问图片404_Nginx学习笔记(二、Nginx配置文件详解) - 被猪附身的人相关推荐
- hibernate框架学习笔记2:配置文件详解
实体类: package domain;public class Customer {private Long cust_id;private String cust_name;private Str ...
- java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解
Java学习笔记16-Netty缓冲区ByteBuf详解 Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的. JDK Byt ...
- 【学习笔记】线段树详解(全)
[学习笔记]线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来... [目录] [基础]作者:\((Silent\)_\(EAG)\) [懒标记 ...
- [原创]Saltstack学习笔记:命令参数详解以及配置文件说明
很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...
- spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...
- Laravel学习笔记汇总——Collection方法详解
## Laravel学习笔记汇总--Collection方法详解 本文参考:https:// laravel.com/docs/8.x/collections // 返回整个底层的数组 collect ...
- mmdetection学习笔记(二)配置文件详解
配置文件详解 四项基础配置 1. _base_/datasets 2. _base_/models 3. _base_/schedules 4. _base_/default_runtime.py 基 ...
- MyBatis复习笔记2:配置文件详解
配置文件详解 属性(properties) MyBatis可以使用 properties 来引入外部 properties 配置文件的内容 resource:引入类路径下的资源 url:引入网络路径或 ...
- cdt规约报文用程序解析_程序员必备的学习笔记《TCP/IP详解(二)》
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP 协议用来找到目标主机的 Ethernet 网卡 Mac 地址,IP 则承载要发 送的消息.数据链路层可以从 ARP 得到数据的传送信息,而从 ...
最新文章
- Python之字符串格式化(format)
- 计算机桌面文件管理窗口,隐藏Win10此电脑窗口的6个额外文件夹
- opengl加载显示3D模型ZAE类型文件
- 汇编loop指令及用法解释
- 纳尼???我JVM优化过头了,直接把异常信息优化没了?怎么办
- SQL 语句执行顺序
- hdfs 多租户_Hadoop多租户架构配置
- [转载] python3 格式化字符串 f-string 介绍
- 天勤 数据结构 P80 T10
- 用windows电脑制作macos系统安装U盘
- 这么简单!安卓手机投屏到电脑的神器
- 图解域名解析DNS过程
- 用telnet逛bbs
- adcclk最大_关于STM32 在进行ADC采样时,ADCCLK时钟频率的确定
- 爬取Google Play中app的用户评论(1)
- 洛谷P1046陶陶摘苹果题解--zhengjun
- 支付宝商家二维码收款、订单状态查询、退款API试用笔记
- nginx添加ssl证书
- 考研报名时,需要准备哪些信息?
- RTP Payload H264