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中, ...
随机推荐
- 汽车电子测试项目管理系统-TPA
概述 INTEWORK-TPA(Test Project Administrator, 以下简称TPA) 是一款集成的测试项目管理工具,它可以管理测试过程中的所有数据,包括需求.用例.样件.计划.报告 ...
- Codeforces D. Powerful array(莫队)
题目描述: Problem Description An array of positive integers a1, a2, ..., an is given. Let us consider it ...
- destoon6.0搜索页熊掌号页面改造技巧【原创】
大家都知道,DT官方是封禁搜索页的,是不让百度蜘蛛抓取的,但是搜索页又是大型网站优化的重点,今天来说说关于DT6.0搜索页熊掌号的改造方法,如果您要改造内容页面可以查看我前几期的分享! 首先要开启百度 ...
- git教程——简单总结
1 创建版本库: 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: (1)使用命令git add <file>,注意,可反复多次使用,添加多个文件: (2) ...
- LightOJ - 1282 - Leading and Trailing(数学技巧,快速幂取余)
链接: https://vjudge.net/problem/LightOJ-1282 题意: You are given two integers: n and k, your task is to ...
- 在idea中调试spark程序-配置windows上的 spark local模式
spark程序大致有如下运行模式: standalone模式:spark自带的模式 spark on yarn:利用hadoop yarn来做集群的资源管理 local模式:主要在测试的时候使用, 这 ...
- RabbitMQ交换机、RabbitMQ整合springCloud
目标 1.交换机 2.RabbitMQ整合springCloud 交换机 蓝色区域===生产者 红色区域===Server:又称Broker,接受客户端的连接,实现AMQP实体服务 绿色区域===消费 ...
- Windows下串口编程
造冰箱的大熊猫@cnblogs 2019/1/27 将Windows下串口编程相关信息进行下简单小结,以备后用. 1.打开串口 打开串口使用CreateFile()函数.以打开COM6为例: HAN ...
- js 常见数组算法
数组方法概述 1.不改变原数组,返回新数组 concat() 连接两个或多个数组,两边的原始数组都不会变化,返回被连接数组的一个副本. join() 把数组中所有元素放入一个字符串中,返回字符串. s ...
- ArcGIS Enterprise 10.7.1新特性:批量发布服务
ArcGIS Enterprise 10.7.1提供了批量发布GIS服务的功能,能大大简化GIS系统管理员的工作量. 作为发布人员和管理人员,支持向Portal for ArcGIS添加云存储.文件共 ...