CentOS7上Nginx的使用
Nginx 的启动
指定配置文件的方式启动nginx
# nginx -c /etc/nginx/nginx.conf
对于yum安装的nginx,使用systemctl命令启动
# systemctl start nginx
Nginx 的停止
从容停止
kill -QUIT Nginx主进程号
快速停止nginx
kill -TERM Nginx主进程号
强制停止所有nginx进程
pkill -9 nginx
Nginx的平滑重启
在修改了nginx配置文件后,在重启nginx之前,需要确认nginx配置文件的语法是否正确,可执行以下命令检测
# nginx -t -c /etc/nginx/nginx.conf
如上没有错误的话,就可以平滑重启了
# nginx -s reload
或者
kill -HUP Nginx主进程号
Nginx的平滑升级
对于编译安装的nginx,可以将新版本编译安装到旧版本的nginx安装路径中。替换之前,最好备份一下旧的可执行文件。
下载新版本nginx
# wget http://nginx.org/download/nginx-1.9.14.tar.gz 获取旧版本nginx的configure选项
# nginx -V 编译新版本nginx
# tar -zxvf nginx-1.9.14.tar.gz
# cd nginx-1.9.14
# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic'
# make 备份旧版本nginx可执行文件,使用新版本nginx可执行文件替代旧的可执行文件
# mv /usr/sbin/nginx /usr/sbin/nginx.old
# cp objs/nginx /usr/sbin/nginx
测试新版本nginx是否正常
nginx –t –c /etc/nginx/nginx.conf
平滑升级nginx,旧版本Nginx的pid变为oldbin,此时旧版本和新版本的nginx同时运行,共同处理完用户请求
kill -USR2 `cat /var/run/nginx.pid`
从容关闭旧版本的nginx进程
kill -WINCH `cat /var/run/nginx.oldbin`
一段时间后,旧版本的nginx进程处理了所有已连接的请求后退出,仅由新版本的nginx进程来处理输入的请求了,可以通过以下命令查看
# ps -ef | grep nginx
这时候,我们可以决定是使用新版本,还是恢复到旧版本
kill -HUP 旧的主进程号 :Nginx在不重载配置文件的情况下启动他的工作进程
kill -QUIT 新的主进程号 :从容关闭其工作进程
kill -TERM 新的主进程号 :强制退出
kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号
新的主进程退出后,旧的主进程会移除 .oldbin 后缀,恢复为它 的 .pid 文件,这样,一切就恢复到升级之前了。
如果尝试升级成功,而你也希望保留新的服务器时,可发送 QUIT 信号给旧的主进程,使其退出而只留下新的服务器运行。
Nginx配置文件nginx.conf的结构
1. 全局块
2. events块
3. http块
4. server块
5. location块
基本配置
配置运行Nginx服务器用户(组)
user user [group];
配置允许生成的worker process数
work_processes number | auto;
配置Nginx进程PID存放路径
pid file;
配置错误日志的存放路径
error_log file | stderr [debug | info | notice | warn | error | crit | alert | emerg];
配置文件的引入
include file;
设置网络连接的序列化
accept_mutex on | off;
配置是否允许同时连接多个网络连接
multi_accept on | off;
事件驱动模型的选择
use method;
配置最大连接数
worker_connections number;
定义MIME-Type
include mime.types;
default_type application/octet-stream;
自定义服务日志
access_log path [format [buffer=size]];
配置允许sendfile方式传输文件
sendfile on | off;
配置连接超时时间
keepalive_timeout [header_timeout];
单连接请求数上限
keepalive_requests number;
配置网络监听
第一种配置监听的IP地址:
listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbbuf=size] [sndbuf=size] [deferred] [accept_filter=filter] [bind] [ssl];
第二种配置监听端口:
listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [ssl];
第三种配置UNIX Domain Socket:
listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ssl];
基于名称的虚拟主机配置
# 虚拟主机的名称设置为mysever.com或www.myserver.com
server_name myserver.com www.myserver.com; # 使用通配符,通配符只能用在首段或尾段
server_name *.myserver.com www.myserver.*; # 使用正则表达式,~作为正则表达式的开始标记
server_name ~^www\d+\.myserver\.com$;
基于IP的虚拟主机配置
如果只有一个网卡,可以添加多个IP别名
查看网卡信息
# nmcli con show
查看IP信息
# ip addr
添加网卡别名
# nmcli con mod eth0 +ipv4.addresses 10.10.10.21/24
重新加载网卡配置
# nmcli con load /etc/sysconfig/network-scripts/ifcfg-eno16777736
# nmcli dev connect eno16777736
重新查看IP信息
# ip addr
相关配置片段:
...
http
{
server
{
listen: 80;
server_name: 10.10.10.20;
...
}
server
{
listen: 80;
server_name: 10.10.10.21;
...
}
...
}
配置location块
location = [= | ~ | ~* | ^~ ] uri { ... }
"=" 用于标准uri前,要求请求字符串与uri严格匹配。
"~" 用于表示uri包含正则表达式,并且区分大小写。
"~*" 用于表示uri包含正则表达式,并且不区分大小写。
"^~" 用于标准uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。
配置请求的根目录
root path;
更改location的URI
alias path;
设置网站的默认首页
index file ...;
设置网站的错误页面
error_page code ... [=[redponse]] uri
基于IP配置Nginx的访问权限
allow address | CIDR | all;
deny address | CIDR | all;
CentOS7上Nginx的使用的更多相关文章
- asp.net Core 部署到CentOs7上,使用Nginx做代理
一.CentOs7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过 ...
- .Net Core在Centos7上初体验
本文主要内容是简单介绍如何在centos7上开发.Net Core项目,在此之前我们首先了解下.Net Core的基本特性. 1 .Net Core和.Net FrameWork的异同 1.1 .Ne ...
- 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客
前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...
- 部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot)
部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot) 1.基础环境********************************************** ...
- Centos7安装Nginx实战
一.背景 最近在写一些自己的项目,用到了nginx,所以自己动手来在Centos7上安装nginx,以下是安装步骤. 二.基本概念以及应用场景 1.什么是nginx Nginx是一款使用C语言开发的高 ...
- CentOS7上部署ASP.Net Core 2.2应用
前言 在CentOS7上部署ASP.Net Core应用是我的技术路线验证的一部分,下一个产品计划采用ASP.Net Boilerplate Framework开发.因此需要求提前进行一下技术验证,在 ...
- centos7上systemd详解
centos7上systemd详解 发表于 2016-06-07 | 分类于 linux CentOS 7继承了RHEL 7的新的特性,例如强大的systemd, 而systemd的使用也使得以往 ...
- linux(centos7) 安装nginx
linux(centos7) 安装nginx 1.14(stable) 版本 Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内, ...
- centos7上部署新版 jumpserver 跳板机服务
CentOS 7 建议在一个纯净的 centos7上进行下面的安装部署 关闭 selinux 和防火墙 [root@jumpserver ~]# setenforce 0 [root@jumpserv ...
随机推荐
- JavaScript 将字符串转化为json对象
var json = eval('(' + data + ')'); 其中data为字符串数据
- RTSP
相关博客: RTSP 很详细的英文文档 RTSP交互命令简介及过程参数描述 RTSP协议 http://blog.csdn.net/andyweike/article/details/621071 ...
- void (*fun)(void);什么意思?
2440test程序中的Main.c中在结构体中有这么一句: void (*fun)(void); 后查阅资料得知这句代码的意思是: 定义一个函数指针. 比如:定义一个指向函数的指针,该函数有一个整形 ...
- 老陈---谈Delphi中SSL协议的应用[转]
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...
- Java新手入门必须掌握的30个基本概念
今天给大家推荐的文章是有关Java基本概念的,掌握好这些基本概念对学习J2SE.J2EE.J2ME都很重要,也能更好地理解Java的精髓,初学者要注意啦! ▶Java概述: 目前Java主要应用于中间 ...
- 【leetcode】编辑距离
dp方程“ 1.初始化:dp[0][i]=i; dp[j][0]=j; 2.dp[i][j]= dp[i-1][j-1](相等) dp[i-1][j]+1 ,,dp[i][j-1]+1 ...
- 转载:C++之高精度算法
C++之高精度算法 注意:本文转载自http://blog.sina.com.cn/s/blog_4fdb102b010087ng.html,十分感谢原作者:忍者 前言:由于计算机运算是有模运算 ...
- 2 weekend110的mapreduce介绍及wordcount + wordcount的编写和提交集群运行 + mr程序的本地运行模式
把我们的简单运算逻辑,很方便地扩展到海量数据的场景下,分布式运算. Map作一些,数据的局部处理和打散工作. Reduce作一些,数据的汇总工作. 这是之前的,weekend110的hdfs输入流之源 ...
- MySQL数据库设计复习笔记及项目实战
最近手头上有3个项目开动,其他2个都是从底层开始的,一个已经开始了一段时间的了,在小城市小团队开发的条件下,都没有专门的DBA来做数据库的设计和维护,往往都是开发人员顶上,可是看了很多的数据库的设计, ...
- POJ 3922 A simple stone game
题目: E - A simple stone game Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d &am ...