openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍
openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍
一、nginx的安装下载及编译安装
1、Nginx下载:nginx-1.13.0.tar.gz,下载到:/usr/local/src
[root@node5 src]# wget http://nginx.org/download/nginx-1.13.0.tar.gz
tar xf nginx-1.13.0.tar.gz
cd nginx-1.13.0
./configure --prefix=/usr/local/nginx
# make && make install
2、关闭nginx
[root@node5 nginx]# ps -ef|grep nginx
root 16394 1 0 15:35 ? 00:00:00 nginx: master process ./nginx
nobody 16395 16394 0 15:35 ? 00:00:00 nginx: worker process
root 16399 1426 0 15:41 pts/0 00:00:00 grep --color=auto nginx
[root@node5 nginx]# kill -INT 16394
3、安装依赖
[root@node5 ~]# yum install -y gcc gcc-c++ ncurses-devel perl pcre pcre-devel zlib gzip zlib-devel
4、Nginx编译
$ ./configure --prefix=/usr/local/nginx
5、安装Nginx:
安装命令:make & make install
6、查看安装路径
$ cd /usr/local/nginx
$ ll
conf 存放配置文件
html 网页文件
logs 存放日志
sbin shell启动、停止等脚本
7、启动nginx
$ cd sbin
$ ./nginx
8、浏览器,访问ip地址,默认80端口
9、停止nginx
$ ps -ef | grep nginx
执行命令:$ kill –INT 进程号
$ kill -INT 3844
$ ./nginx -s stop
10、重新读取配置文件
$ nginx -s reload
11、检查配置文件是否正确
$ ./nginx -t
问题报错:[error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
解决方案:
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-c的命令是指定配置文件位置
二、正向代理和反向代理概念
正向代理
用户要访问服务器C,但因为网络原因无法访问;但服务器A可以访问服务器C。这样用户可以把服务器A设置为正向代理服务器。由服务器A去请求服务器C,然后服务器A把数据返回会用户。
反向代理
用户需要访问一些服务器应用,但对方不想把服务器应用地址暴露给用户,这样可以确保安全。那用户如果访问呢?可以通过反向代理服务器,用户只需要知道反向代理服务器地址就可以,最后由反向代理服务器去访问服务器的应用
总结:正向代理与反向代理的区别
1)正向代理 是需要 在用户的电脑上 配置正向代理服务器的;而反向代理不需要,因为用户是直接访问的反向代理服务器
2)正向代理的应用场景是 用户是知道目标服务器的地址,如:www.google.com,但不能直接访问,那么就需要在用户电脑配置一个正向代理服务器,用户再次访问的地址www.google.com。
而反向代理的应用场景是 用户本来就不知道 目标服务器的地址;而是由平台方提供一个反向代理服务器的地址,用户直接访问反向代理服务器的地址就行 www.a.com
不管目标服务器有多少,用户不需要关心,只要访问反向代理服务器就ok;由反向代理服务器去解析访问目标服务器
3)反向代理 极大的保护了应用的安全性,而且此结构可以很好的搭建负载均衡
三、nginx的常用命令及信号控制
一)nginx命令
1)nginx启动
指令:nginx程序 -c nginx配置文件
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2)nginx重启
#cd /usr/local/nginx/sbin
##重启
# ./nginx -s reload
进入nginx可执行程序的目录
# cd /usr/local/nginx/sbin/
# ./nginx -s reload
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
重启是建立在nginx服务需要启动
3)nginx停止
# ./nginx -s stop
# ./nginx -s quit
quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求
stop 是快速关闭,不管有没有正在处理的请求。
4)重新打开日志
# ./nginx -s reopen
5)nginx检查配置文件
检查配置文件是否正确
第一种
进入nginx可执行程序的目录
# cd /usr/local/nginx/sbin/
# ./nginx -t
第二种
# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
二)nginx的信号控制
Nginx支持2种进程模型Single和Master-Worker
Single是单进程,一般不适用,
Master-Worker是主进程和工作进程模型运行,主进程对工作进程管理。
Nginx允许我们通过信号来控制主进程,用信号的方式可以达到不影响现有连接的目的。
信号类型
INT,TERM 快速关闭信号
QUIT 从容关闭信号
HUP 从容重启信号,一般用于修改配置文件后,重启
USR1 重读日志,一般用于日志的切割
USR2 平滑升级信号
WINCH 从容关闭旧进程
具体语法:
kill -信号选项 nginx的主进程号
例:
# kill -INT 26661
# kill -HUP 4873
1)nginx停止
# ps -ef | grep nginx 获得进程号
第1种从容“优雅”停止
# kill -QUIT master进程号
# Nginx服务可以正常地处理完当前所有请求再停止服务
# 步骤:首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。
第2种快速停止
# kill -TERM master进程号
# kill -INT master进程号
# 快速停止服务时,worker进程与master进程在收到信号后会立刻跳出循环,退出进程。
第3种强制停止
# pkill -9 nginx
# 系统强杀nginx进程
2)重启nginx
# kill -HUP master进程号
已经介绍了,QUIT,INT,TERM,HUP的信号
下几节课程会详细介绍USR1,USR2,WINCH信号。这里先埋下一个点,先了解下
openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍的更多相关文章
- openresty开发系列10--openresty的简单介绍及安装
openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...
- openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息
openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...
- openresty开发系列38--通过Lua+Redis 实现动态封禁IP
openresty开发系列38--通过Lua+Redis 实现动态封禁IP 一)需求背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝 ...
- openresty开发系列30--openresty中使用全局缓存
openresty开发系列30--openresty中使用全局缓存 Nginx全局内存---本地缓存 使用过如Java的朋友可能知道如Ehcache等这种进程内本地缓存.Nginx是一个Master进 ...
- openresty开发系列28--openresty中操作mysql
openresty开发系列28--openresty中操作mysql Mysql客户端 应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢? ...
- openresty开发系列24--openresty中lua的引入及使用
openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua ---> ...
- openresty开发系列11--openresty的api入门
openresty开发系列11--openresty的api入门 1)ngx_lua模块的hello world编辑nginx下conf配置文件nginx.conf# vi nginx.conf在se ...
- openresty开发系列4--nginx的配置文件说明
openresty开发系列4--nginx的配置文件说明 Nginx基本配置 Nginx的主配置文件是:nginx.conf,nginx.conf主要组成如下: # 全局区 有一个工作子进程,一般 ...
- openresty开发系列37--nginx-lua-redis实现访问频率控制
openresty开发系列37--nginx-lua-redis实现访问频率控制 一)需求背景 在高并发场景下为了防止某个访问ip访问的频率过高,有时候会需要控制用户的访问频次在openresty中, ...
随机推荐
- Java 中的函数式接口
java.util.function中定义了几组类型的函数式接口以及针对基本数据类型的子接口. Predicate -- 传入一个参数,返回一个bool结果, 方法为boolean test(T t) ...
- Mysql 日期与时间戳的相互转化
select CURDATE(); #获取当前的日期,示例:2019-10-29 select UNIX_TIMESTAMP(CURDATE()); #将当前的时间格式转换为时间戳,示例:由2019- ...
- vue中input输入第一个字符时,光标会消失,需要再次点击才能输入
vue中input输入第一个字符时,光标会消失,需要再次点击才能输入 在这里我犯了一个小错误,v-if语法比较倾向于一次性操作,当input获取焦点时,v-if判断为true,立即刷新数据,进行渲染, ...
- 01-学习vue前的准备工作(let和const)
es6语法:let和const es6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效 <!DOCYTPE html> <ht ...
- SPOJ - BALNUM - Balanced Numbers(数位DP)
链接: https://vjudge.net/problem/SPOJ-BALNUM 题意: Balanced numbers have been used by mathematicians for ...
- shiro授权+注解式开发
shiro授权和注解式开发 1.shiro授权角色.权限 2.Shiro的注解式开发 ShiroUserMapper.xml <select id="getRolesByUserId& ...
- C# 模式匹配
最近在使用vs编码时,重构提示:模式匹配 Element view = bindable as Element; if (view == null) { return; } 运用模式匹配可以简写为: ...
- 【mssql】增删改查笔记
一.插入数据 1.插入数据返回当前主键ID 当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 , ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 Debian9.5系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...