Nginx跨域配置详解

一、概念

Ningx,是轻量级、开源的web服务器,具有高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。
优势:

  • 以事件驱动的方式编写,使其具有高并发高性能
  • 可扩展性好
  • 热部署

应用场景

  • 静态资源服务,通过本地文件系统提供服务
  • 反向代理服务、负载均衡
  • API服务、权限控制,减少应用服务器压力

二、正向代理和反向代理

两种代理做的事情都是代为收发请求和相应

  • 正向代理: 代理客户端
    在这里插入图片描述
    正向代理代理的是客户端,服务器不知道实际发起请求的客户端
  • **反向代理:**代理服务端
    在这里插入图片描述
    反向代理的是服务器,客户端不知道实际提供服务的服务端

三、安装Nginx

官网下载,到此目录下,start ningx 就可以启动了
在这里插入图片描述
启动后如下:
在这里插入图片描述

conf都是配置的,点进去有一个nginx.conf就可以配置相关内容了

四、跨域配置

  • 前端代码,访问的时候要用服务器的地址,我这里用的是http-server
<button id="getOK">发送请求OK(客户端解决跨域问题)</button>
    <script>
        $(document).ready(function () {
            $('#getOK').click(function () {
                $.ajax({
                    url:'http://localhost:3003/ok',
                    success:function(res) {
                        console.log("success",res)
                    },
                    error:function(err) {
                        console.log('fail',err)
                    }
                })
            })
        }) 
    </script>
  • 后端代码
const express = require('express')
const cookieParser = require('cookie-parser')

var app = express()


var router = express.Router()
router.get('/ok',function (req,res) {
    res.json({
        code:200,
        msg:"isOK"
    })    
})


app.use(router)
app.use(cookieParser)
app.listen(3000,function () {
    console.log('listen in 3000')
})
  • nginx配置
server {
         listen 3003;
         server_name localhost;
          ## 前端地址
         location = / {
              proxy_pass  http://127.0.0.1:8080;
         }
         ## /no 表示以/no开头的url
         ## 后端地址
        location /no {
              proxy_pass http://localhost:3000; 
 }

这样他们就在同一个域下了,访问如下
在这里插入图片描述

五、nginx配置gzip压缩

server {
    # 开启gzip 压缩
    gzip on;
    # 设置gzip所需的http协议最低版本 (HTTP/1.1, HTTP/1.0)
    gzip_http_version 1.1;
    # 设置压缩级别,压缩级别越高压缩时间越长  (1-9)
    gzip_comp_level 4;
    # 设置压缩的最小字节数, 页面Content-Length获取
    gzip_min_length 1000;
    # 设置压缩文件的类型  (text/html)
    gzip_types text/plain application/javascript text/css;
    #on的话会在Header里增加"Vary: Accept-Encoding",给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
    #我这里的浏览器肯定支持gzip压缩,所以就不开启此功能了
    gzip_vary off;
    #IE6对Gzip不怎么友好,不给它Gzip压缩了
    gzip_disable "MSIE [1-6]\.";
 }

六、nginx常用的指令

start nginx           启动nginx
nginx -s stop        快速关闭nginx
nginx -s reload     改变了Nginx相关配置,需要重新加载配置而重载。

七、nginx里的正则

~:    区分大小写
~*:   不区分大小写
^~:     非精确匹配
=:       精确匹配

个人笔记,大概了解这么多,没有深入学习,以后再补充,如果有什么问题,还请多指教

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值