由于网上Nginx的文档太少,很多特性只能自己去尝试,遂记录Nginx的一些使用知识。

以下nginx.conf配置文件中的配置:

1.Nginx不记录错误日志:

error_log /dev/null;  #[linux下]

error_log null;       #[Windows下]

2.Nginx不记录404等错误信息:

error_log  logs/error.log  info;

3.Nginx允许html执行post[解决http/1.1 405 Method not allowed]

error_page   405 =200 @405;
location @405
{
       root  /opt/htdocs;
}

4.Nginx虚拟主机+备机自动上线例子:

http {

upstream myCluster{
     server 192.168.62.102:7001;
     server 192.168.62.101:7001 backup;  #[备机,主机掉线后,备机自动响应]
}

upstream bbsCluster{                    #[虚拟主机,可以绑定不同的域名]
     server 192.168.62.102;
     server 192.168.62.101 backup;
}

server {

location /virtual {
     proxy_pass  http://myCluster/;      #这里的名字和上面的cluster的名字相同
     proxy_redirect     off;
     proxy_set_header   Host             $host;
     proxy_set_header   X-Real-IP        $remote_addr;
     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  }

}

server {
        listen       80;
        server_name  bbs.knife.com;      #绑定的第二个域名

location / {
     proxy_pass  http://bbsCluster/;     #这里的名字和上面的cluster的名字相同
     proxy_redirect     off;
     proxy_set_header   Host             $host;
     proxy_set_header   X-Real-IP        $remote_addr;
     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    }

}

以下是Nginx常用命令:

启动操作
命令:

nginx
默认为:nginx -c /usr/nginx/conf/nginx.conf
-c参数指定了要加载的nginx配置文件路径。

停止操作
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文章)来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx

另外,若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'

平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径

例如:

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf

平滑升级
如果服务器正在运行的Nginx要进行升级、添加或删除模块时,我们需要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行。
步骤1:
如果升级Nginx程序,先用新程序替换旧程序文件,编译安装的话新程序直接编译到Nginx安装目录中。
步骤2:执行命令
kill -USR2 旧版程序的主进程号或进程文件名
此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版Nginx。新旧Nginx会同市运行,共同处理请求。
这时要逐步停止旧版Nginx,输入命令:
kill -WINCH 旧版主进程号
慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版工作进程。

此时,我们可以决定使用新版还是恢复到旧版。
不重载配置启动新/旧工作进程
kill -HUP 旧/新版主进程号
从容关闭旧/新进程
kill -QUIT 旧/新主进程号
如果此时报错,提示还有进程没有结束就用下面命令先关闭旧/新工作进程,再关闭主进程号:
kill -TERM 旧/新工作进程号

这样下来,如果要恢复到旧版本,只需要上面的几个步骤都是操作新版主进程号,如果要用新版本就上面的几个步骤都操作旧版主进程号就行了。

Nginx配置使用积累[不断更新]相关推荐

  1. 更新:为 NGINX 配置免费的 Let‘s Encrypt SSL/TLS 证书

    众所周知,网站的 SSL/TLS 加密会为您的用户带来更靠前的搜索排名和更出色的安全性.但目前有许多障碍阻碍了网站所有者采用 SSL. 其中两个最大障碍是证书获取成本高昂和所涉人工流程繁琐.而现在,有 ...

  2. 正向代理和反向代理的区别Nginx配置虚拟主机流程(后续更新)

    目录 目标 安装Nginx 配置虚拟主机 准备 方法一 方法二(推荐) 验证虚拟主机 正向代理和反向代理的区别 区别&案例 正向代理和反向代理流程 目标 熟练在Linux安装单机Nginx: ...

  3. 使用etcd+confd管理nginx配置

    1.前言 最近在项目中用nginx做反向代理,需要动态生成nginx的配置.大概流程是用户在页面上新增域名.http或https协议以及端口信息,后台会根据域名自动生成一个nginx的server配置 ...

  4. php+php-fom+nginx配置参数调优详解

    文章目录 一.前言 1.mysql配置参数: 2.注意 二.php参数配置及讲解 1.phpini的基本设置 2.php参数设置 三.php-fpm设置 1.设置子进程数,增加并发量 2.防止频繁出现 ...

  5. Nginx 配置https 自动续期

    #安装 acme.sh curl https://get.acme.sh | sh#确保 nginx安装了 http_v2_module nginx源码目录下 ./configure --prefix ...

  6. 【nginx配置】 proxy_pass反向代理配置中url后面加不加/的说明

    在日常的web网站部署中,经常会用到nginx的proxy_pass反向代理,有一个配置需要弄清楚:配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把loca ...

  7. Nginx(四):Nginx配置实战

    相关阅读: Nginx(一):Nginx原理概述 与 安装步骤详解 Nginx(二):反向代理原理 与 配置文件详解 Nginx(三):负载均衡策略 与 Nginx静态服务器 Nginx(四):Ngi ...

  8. DBA查询命令积累——不断更新

    DBA查询命令积累--不断更新 原文:DBA查询命令积累--不断更新 一.服务器配置: 1.兼容级别:兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为. 1.1.查看数据库兼容级别及更改 ...

  9. [Nginx]nginx 配置实例-动静分离

    nginx 配置实例-动静分离 1.什么是动静分离 Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是动态请求跟静态请求分开,可 ...

最新文章

  1. WinCE Heartbeat Message的实现
  2. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水
  3. Django从理论到实战(part15)--自定义path转换器
  4. Bootstrap-CSS:表格
  5. TensorFlow2.0(二)--Keras构建神经网络分类模型
  6. 有奖投票丨HC2019开发者关注的TOP10问题你最想听哪个?
  7. 驰骋工作流引擎2016年第1次组团培训日程
  8. 查看linux系统网卡工作模式、速率等ethtool eth0
  9. 2017-2018-1 20155320 实验三——实时系统
  10. SpringMVC+Thymeleaf +HTML的简单框架
  11. 洛谷 P2117 小Z的矩阵
  12. PhpStorm-2017.3 注册激活
  13. 简单一招就能进行不同平台的推文转移,复制粘贴。
  14. 汽车 php 深圳,深圳小汽车增量调控管理信息系统查询官网
  15. 海康威视摄像头连接(.net)
  16. 测试学习-测试工具wireshark、HFS、wlan信号
  17. .NET工具篇(二)—GACUtil
  18. Pr 复古胶片老电影回忆效果
  19. FFMPEG AvFilter使用实例(实现视频缩放,裁剪,水印等)
  20. 傅里叶变换基函数可视化

热门文章

  1. tensorflow中的变量管理
  2. 生成xml_Java操作XML
  3. 基于视觉的在线地图:一种Transformer网络方法
  4. 多激光雷达外参⾃动化标定算法及代码实例
  5. AAAI2021论文:一个激光雷达点云的3D目标单步检测法CIA-SSD
  6. CV技术在医疗领域中有哪些应用?Salesforce、谷歌、斯坦福综述文章登上Nature子刊...
  7. 非线性优化:徒手实现LM算法
  8. ecplise SpringCould搭建过程---创建SpringCould父工程
  9. linux 删除文件夹
  10. XCMS | LC/MS and GC/MS Data Analysis