server {
listen 9000; #端口
server_name localhost; #服务名
charset utf-8; # 避免中文乱码
root E:\Download\java; #显示的根索引目录,注意这里要改成你自己的,目录要存在
location / {
autoindex on; #开启索引功能
autoindex_exact_size off; # 关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb)
autoindex_localtime on; # 显示本机时间而非 GMT 时间
}
}
2、配置完成后重启服务器
sudo /usr/local/nginx/sbin/nginx -s reload
安装完成Nginx服务器之后我们需要来学习如何启动,停止,重启Nginx服务。在Linux平台下有着不止一种的控制Nginx启停的方法 下面我们来详细的学习一下。
Nginx的信号控制
在控制nginx中有一类是通过信号控制的,因此我们来先介绍一下Nginx服务器的信号控制
在nginx服务运行时,会保持一个主进程和多个worker process 工作进程, 我们可以通过给主进程发送信号,就可以控制服务的启停了,那么我们如何去给服务发送信号发送信号我们必须要知道服务的PID, 那么我们就来获取一下他的进程ID
第一种直接利用ps 查看详情 :
第二种 我们直接查看文件存储地址查看: 此 *** 作需要先开启pid的存储才可以生效
找到我们的pid之后那么可以开始我们下一步的 *** 作 再开始之前先了解一下可以接受的信号有哪些,各自有什么含义
向Nginx服务进程发送信号也有两种方式:
同样我我们可以使用动态的PID
kill 信号 filepath (filepath指的是我们的NginxPID的路径)
nginx服务的启动
在linux平台下,启动Nginx服务器直接运行安装目录下的Sbin目录中的二进制文件即可
具体命令在sbin目录下:
这里主要讲下二进制文件的用法这是我们工作中常常用到的一些指令
nginx服务停止
停止我们的Nginx有两种方式
Nginx服务的重启
当我们Nginx服务加入新的模块后,如果希望当前的Nginx服务应用新的配置或者使用新的模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务然后使用新的Nginx配置文件重启Nginx服务, 这里我们讲的 是平滑的重启Nginx服务
平滑是重启的一个过程,Nginx服务进程收到信号后先读取我们新的配置文件,如果我们新的配置文件正常,那么启动新的Nginx服务,然后平滑的关闭旧的进程服务,如果新的Nginx服务配置文件有问题那么将显示错误然后任然使用旧的Nginx
使用以下命令可以做到Nginx的平滑重启
Nginx服务的升级
如果我们需要对当前的Nginx服务进行升级 ,应用新的模块,最简单的方式是停下来,然后开启新的Nginx服务,那么给我们的用户体验是非常差的,会导致用户在一段时间内无法访问我们的服务器为了解决这个问题,Nginx提供了平滑升级的方案
过程如下:
注意:
为了实现nginx服务器的平滑升级,新安装的服务器路径应该和旧的一致。因此建议用新安装的服务器之前先备份一下我们的旧nginx服务器,如果由于种种原因不能保持新旧客户端路径一致则可以做一下 *** 作,将旧的服务器路径更改为新的路径,新的服务器放入旧的路径中
执行过程
Nginx服务接受到USR2的信号后,首先将旧的Nginx。pid文件后面添加一个oldbin
变成了,nginxpidoldbin 然后执行新版本的Nginx服务器的二进制文件启动服务,如果启动成功那么我们将会有两个Nginx服务在提供服务
之后需要向旧的发送WINCH信号,使旧的nginx服务平缓的停止并删除
nginxpidoldbin文件 在发送WINCH信号前我们可以随时停止新的服务
从目录中我们不难看出所有的配置文件都放在conf目录下主要的配置文件为 Nginxconf
那么下面我们带领你来去详细的解读一下其中的配置详情
注:近期持续更新有关nginx的知识点,欢迎大家关注!
nginx 10045 服务器主动关闭连接方式如下:/
主动断开与客户端浏览器的连接
如果是 Nginx 服务器需要输出大于等于 fastcgi_buffer_size 缓存的数据才能即时输出 header 断开连接, 若还是不行可尝试关闭 gzip
如: fastcgi_buffer_size 64k; 即: 需要 641024 字符(可多不可少),
可使用 str_repeat(' ', 65536); 另外 str_repeat(' ', 6554); 这种方式其实生成速度更慢
@param null|string $str 当前输出的内容, 若无需输出则设置为空
/
public function connectionClose($str = null) {
$str = ob_get_contents() $str;
// 若实际输出内容长度小于该值将可能导致主动断开失败
header('Content-Length: ' strlen($str));
header('Connection: Close');
ob_start();
echo $str;
ob_flush();
flush();
}不是,Nginx代理只是在客户端和服务器间提供了一个中间件,它不会消耗服务器的网络带宽。当一个请求发生时,客户端会发起一个请求到Nginx服务器,Nginx服务器会将请求转发到真正的服务器上,服务器响应请求后,Nginx服务器将响应返回给客户端。Nginx代理服务器可以提高网络服务的性能,它可以减少网络请求的数量,缓存网页内容,压缩传输数据,负载均衡和其他功能,但是它不会消耗网络带宽资源。Nginx就是反向代理服务器。Nginx(enginex)是一个高性能的Web和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服器。代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)