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中, ...
随机推荐
- node gm图片操作
1,安首先要安装 GraphicsMagick或者ImageMagick 2,npm install gm --save 3,编码测试 var fs = require('fs') //graph ...
- node-images 进行图片压缩
前置条件:先安装images npm install images 编写代码 思路: 从指定文件夹遍历图片,执行压缩,压缩完成后放到指定文件夹中,并保持图片名无变化. var images = req ...
- 前端学习笔记--css案例
要实现的案例: 1.分析布局 2.划分文件结构: 3.编写css代码 * { padding: 0; margin: 0; } body { font-size: 16px; color: burly ...
- (java)selenium webdriver学习--打开新窗口,并判断新窗口是否与目标窗口一致
描述:selenium webdriver学习--打开新窗口,并判断新窗口是否与目标窗口一致,若一致则切换到该窗口并获取标题 跳出if判断,获取父级标题,并关闭 HTML标签不太明显时,可以用路径表示 ...
- laravel 依赖注入
<?php interface Animal{ public function attack(); public function talk(); } class People implemen ...
- netty: 以默认的ByteBuf作为传输数据
client部分代码: //线程 EventLoopGroup worker = new NioEventLoopGroup(); //辅助类 Bootstrap b = new Bootstrap( ...
- learning java AWT EventQs
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.Ac ...
- 自行撰写Grasshopper电池
Grasshopper目前作为参数化设计是非常常用的工具,但是人们会经常碰到它提供的电池不能满足自己设计方案需求的情况,所以就需要自己创作电池,而最简单的一种方法就是自己写. 工具: Visual S ...
- Linux安装配置JDK与卸载
最近在Linux系统部署门户,安装Oracle,导入dmp,JDK等等,遇到一大堆问题,解决后特有一番小小成就感,哇哈哈!在这里记录一下遇到问题: 官网下载JDK压缩包( .tar.gz ):http ...
- NOIP前做题记录
鉴于某些原因(主要是懒)就不一题一题写了,代码直接去\(OJ\)上看吧 CodeChef Making Change 传送门 完全没看懂题解在讲什么(一定是因为题解公式打崩的原因才不是曲明英语太差呢- ...