Nginx是什么!?
Nginx是一款web反向代理服务器软件
他的特点是: 轻量级! 高性能! 可以瞬间重启!
Nginx能干什么!?
1.0 Nginx可以反向代理 静态资源 作为静态资源服务器
2.0 Nginx可以反向代理 不同的访问路径,让这些访问路径对外 提供统一规范的 入口 (这种形式也可以用来结果浏览器跨域问题)
3.0 Nginx可以反向代理 tomcat服务器集群,并且在代理tomcat们的时候对他们进行 服务端负载均衡
4.0 Nginx加载插件后 可以代理Lua脚本,当接收某个url请求时可以执行Lua脚本
Nginx怎么操作!?
首先看一下 Nginx 安装 好后的 目录结构
这个是Windows版的 目录结构如下 这个是Linux版的 目录结构如下
以下讲解是基于Linux版的
在sbin目录内 可以 操作 Nginx 启动 停止 重启
启动
./nginx
停止
./nginx -s stop
重启
./nginx -s reload
查看服务状态
ps -ef | grep nginx
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1.0 利用Nginx 发布静态资源
I
将静态资源 安放在 Linux中的某个目录下, 比如说 我把我要发布的静态资源 放在 这个 /root/ng4do 目录下,
可以让认为 ng4do 是一个web项目
这里的重点是 这个项目是 ng4do 相对于这个项目来说!!!! 注意是相对于这个项目来说 项目的根目录是 /root/ng4do
II
修改 Nginx 的 配置文件 在nginx 安装目录下 conf 目录内
找到nginx.conf 配置文件
nginx.conf.default 是对nginx.conf文件的备份,就是怕你 经常改动 nginx.conf 文件后 不知道了 nginx.conf 原本最初的 样子
vi nginx.conf 修改这个配置文件
找到 server{
listen 80;
.......
}
这里
此图是尚未做修改的 状态
在server {里面 替换 为如下内容}
location / {
root /root/ng4do; #左边的 root 代表 声明 此处是根目录 右边 /root/ng4do 是项目的根目录
index /root/ng4do/day01.html; #左边声明 默认页是这个页面
}
修改后是这个样子
vi编辑文件是Linux基本操作,编辑Linux文件的基本操作,在此不做赘述;
还有一个主意配置文件要改的地方是 第一行 user root;
不然访问报403 说没有权限访问
配置文件改好后,
重启Nginx即可
我静态资源的目录结构是这样
url 访问 这个地址就可以访问到静态资源
http://58.87.122.88/day01/day01.html
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1.5 利用Nginx 发布 多个 静态资源 (多个静态资源 使用不同的端口号)
前言 : 在上文中,已经发布了一个 静态资源 端口号 是80 资源内容放在 /root/ng4do 目录下
现在我们 发布第二个 资源 端口号是81
I
先把静态资源放置在 某个目录下,本文中是 放在/root/ng4dy 目录下
II
更改nginx.conf配置文件
新增一个
server{
listen 81;
.......
}
配置文件改好后是这个样子的
III
重启Nginx 服务器
如此完成
我们试着访问一下 http://58.87.122.88:81/day06/day06.html 这个81端口的 静态资源也发布好了
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2.0 提供统一的 端口, 在这个端口上可以接受 不同的rul请求,
根据 不同 的url 路径 路由到 与之对应的 资源上
I
在上文基础上,我们已经发布了 两个 静态资源 端口号 分别是80 与 81
更改nginx.conf配置文件
增加如下内容
server {
listen 88; #对外提供一个端口88的 服务
server_name daili; #取名 代理
location / {
if ($uri = /do) { rewrite /do http://$host:80/day01/day01.html; } #如果访问的url是 http://58.87.122.88:88/do 则路由到 80 端口 那个静态资源上
if ($uri = /dy) { rewrite /dy http://$host:81/day04/day04.html; } #如果访问的url是 http://58.87.122.88:88/dy 则路由到 81 端口 那个静态资源上
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
更改号的配置文件是这个样子
2.5 Nginx路由tomcat动态资源一样可以
在我的服务器里同时还在跑一个tomcat服务器,这个对外提供的访问端口是 http://58.87.122.88:6868/
我把它们给定一个同一的入口,改配置文件如下
我访问这个 http://58.87.122.88:88/tomcat 就可以路由到我的tomcat服务器 上去
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3.0 Nginx 对tomcat集群 提供负载均衡
请移步>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4.0 Nginx 代理Lua脚本 执行功能
请移步>>>>>