[记录]nginx 配置反向代理

有时候在本地进行开发时,可能会遇到跨域的问题,我所知道的有这么几种解决方案:

  • 使用 jsonp(需要服务端配合)
  • 使用 cors(需要服务端配合)
  • 浏览器端禁用同源策略
  • 使用 vue/react 等脚手架中的代理配置
  • 使用其他服务器的代理配置

可能还有其他的方法,但这些方法是较为常用了。
个人认为,如果不涉及到请求外站的资源,使用 jsonp 的意义不大,最好是服务端进行跨域资源共享(CORS)的配置,这样最简单方便,几乎不需要前端做什么事情。
最近我们一个项目中也遇到了跨域的问题,服务端开启了 CORS 后无效(可能是服务端设置不完全所致),于是我在本地使用 nginx 进行反向代理配置。配置的过程很简单,下面进行一下简单的记录。配置步骤一共分为两步(如果你没有安装 nginx 的话)。

安装 nginx

我使用的是 windows 操作系统,因此需要下载 windows 版的 nginx,下载地址:http://nginx.org/en/download.html
下载对应版本后解压到某个文件夹就可以了。

配置 nginx.conf

接下来就是对 nginx 进行配置,打开 nginx 所在的文件夹,进入 conf 文件夹,打开 nginx.conf,进行简单的修改:

server {
    listen       80;
    server_name  localhost;
    root   [这里填写站点根目录];

    # 这个是项目中的接口地址
    location /[项目接口地址]{
        proxy_pass  [服务器 IP];
    }
    ...
}

遇到的一些小坑

这期间也遇到了几个小坑:
1.权限问题
由于我的电脑是用了固态硬盘,所以我把所有的软件都安装在 C盘,nginx 也是如此,但将 nginx 安装到 C盘后,出现了一些奇奇怪怪的错误,比如无法写入日志,无法访问到配置文件等等。最后将 nginx 移动到其他盘得以解决。
2.net::ERR_BLOCKED_BY_CLIENT 问题
这个其实和 nginx 没有什么关系,我在配置了 nginx 的反向代理后,还是无法在页面中访问到服务器的数据,但是将接口地址复制到新窗口打开,是可以获取到内容的,这就就纳闷了。
最后在网上搜索,可能是一些广告屏蔽插件造成的,于是我对插件进行了一些设置,不要对我们的项目进行屏蔽,问题就顺利解决了。

完。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,156评论 19 139
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,371评论 21 356
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,834评论 24 1,002
  • Page 1:nginx 服务器安装及配置文件详解 CentOS 6.2 x86_64 安装 nginx 1.1 ...
    xiaojianxu阅读 8,609评论 1 41
  • 孟子曰:“存乎人者,莫良于眸子。眸子不能掩其恶。胸中正,则眸子瞭焉;胸中不正,则眸子眊焉。听其言也,观其眸子,人焉...
    风辰子阅读 275评论 0 3