Nginx简介和反向代理应用实践

Nginx简介和反向代理应用实践

Nginx简介

一、Nginx简介

  1. Nginx(engine x)是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器。
  2. Nginx是由俄罗斯人Igor Sysoev采用C语言开发编写的,第一个公开版本发布于2004年。
  3. Nginx特点是占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名。官方测试为5万并发请求。
  4. 与Nginx同类型的Web服务器还有Apache、Lighttpd、Tengine(阿里巴巴)等。
  5. 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。

 

二、Nginx环境搭建

  1. 下载

官网地址:http://nginx.org/en/download.html

命令:wget http://nginx.org/download/nginx-1.16.1.tar.gz

 

  1. 安装

安装教程:https://www.runoob.com/linux/nginx-install-setup.html

安装目录:/usr/local/webserver/nginx

解压目录:/usr/local/src/nginx-1.16.1

【注】:修改配置文件在安装目录下的conf目录下

  1. 启动

1.启动有两种方式:

(1)普通启动:切换到nginx安装目录下的sbin目录,执行:./nginx

(2)通过配置文件启动:/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf   (-c代表指定配置文件)

 

2.检查是否启动成功:ps -ef | grep nginx

nginx体系结构由master进程和其worker进程组成,master进程读取配置文件,并维护worker进程,而worker进程对请求进行实际处理。

 

  1. 关闭

(1)处理完当前请求任务再关闭:

  1. 找出nginx的master进程号:ps -ef | grep nginx
  2. 执行命令:kill -QUIT 进程pid

(2)快速关闭:

  1. 找出nginx的master进程号:ps -ef | grep nginx
  2. 执行命令:kill -TERM 进程pid
  1. 其他

(1)重新载入配置文件:./nginx -s reload

(2)重启nginx:./nginx -s reopen

(3)停止nginx:./nginx -s stop

(4)配置检查(检查配置文件是否正确):./nginx -t

(5)查看版本:./nginx -v  、  ./nginx -V

 

二、Nginx配置文件

1.核心配置文件:nginx.conf,由三部分组成:基本配置、events配置、http配置

配置文件的完整配置说明:https://wenku.baidu.com/view/92bc8b8f680203d8ce2f2464.html

 

三、Nginx主要应用场景

       静态网站、负载均衡、静态代理、动静分离、虚拟主机

 

 

反向代理

一、反向代理与正向代理

1. 反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外表现为一个反向代理服务器。

2. 正向代理类似一个跳板机,代理访问外部资源。

写法:

server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index  index.html index.htm;

        }

 

        location ^~/hello/ {

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_X_forwarded_for;

            proxy_pass http://127.0.0.1:8083;

}

}

 

二、Nginx配置

1. location配置方法详解

  1. 格式location [ 空格 | = | ~ | ~* |^~ | !~ | !~* ] /uri/ {}
  2. 说明

= 表示精确匹配

~ 表示区分大小写的正则匹配

~* 表示不区分大小写的正则匹配

       ^~ 表示优于正则表达式的匹配,如果该location是最佳匹配,则不再进行正则匹配

       / 表示通用匹配,如果没有其他匹配,任何请求都会匹配到

       !~&&!~* 表示区分大小写不匹配的正则和不区分大小写的不匹配的正则

        

  1. 匹配的搜索顺序优先级:(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)

【注】:当有匹配成功时,立即停止匹配,按照当前匹配规则处理请求。

  1. 末尾是否以“/”结尾
  1. 没有“/”结尾时,location/abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等
  2. 而有“/”结尾时,location/abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求

 

2. proxy_pass代理规则

  1. 格式: proxy_pass 空格URL  (URL为要设置的被代理服务器的地址,包含传输协议、主机名称或IP地址加端口号、URI等要素。)

【注】:URL中是否含有URI,如果不包含,nginx服务器不会改变原地址的URI;如果包含了URI,则nginx服务器会使用新的URI替换原来的URI。

  1. 末尾是否以“/”结尾:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值