本地通过nginx配置反向代理的全过程记录


Posted in Servers onMarch 31, 2021

前言

Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能。我们在日常开发中使用到Nginx的主要有以下几个场景:

  • Nginx作为http服务器
  • 跨域请求
  • 负载均衡
  • 网络资源的动静分离

作为前端,我们主要是关注前两个场景

一、下载安装

点此下载 ,下载完成后解压,解压后文件如下:

本地通过nginx配置反向代理的全过程记录

解压(双击nginx.exe,双击后一个黑色的弹窗一闪而过)

找到nginx解压目录下,鼠标右键,找到git bash打开,输入命令start ./nginx.exe回车即启动了nginx服务.

本地通过nginx配置反向代理的全过程记录

**检查是否启动成功:**直接在浏览器地址栏输入网址http://localhost,回车,出现以下页面说明启动成功

本地通过nginx配置反向代理的全过程记录

二、nginx配置

找到nginx下的conf/nginx.conf文件,设置代理相关信息,重点是server{}中的内容

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
 worker_connections 1024;
}


http {
 include mime.types;
 default_type application/octet-stream;

 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
 #   '$status $body_bytes_sent "$http_referer" '
 #   '"$http_user_agent" "$http_x_forwarded_for"';

 #access_log logs/access.log main;

 sendfile on;
 #tcp_nopush on;

 #keepalive_timeout 0;
 keepalive_timeout 65;

 #gzip on;
 server_names_hash_bucket_size 128;
 server {
 listen 80;
 server_name localhost;
 location / {
  root html;
  index index.html index.htm;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
  root html;
 }
 }

 server {
 listen 80;
 server_name test-local.juejin.com;
 # 这里是你要代理的测试环境域名加上-local
 # 比如你的项目测试环境为a.test.com,你本地此处可以设置为a-local.test.com,当然你可以随便设置

 location /{
  add_header 'Access-Control-Allow-Origin' '*';
  add_header 'Access-Control-Allow-Credentials' 'true';
  add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
  # 此处8091是我们本地运行项目的端口号,设置成跟你本地起的服务端口号一样就行
  proxy_pass http://127.0.0.1:8091/;
 }
 }
}

三、本机dns配置

**修改本地host文件配置,**找到目录C:\Windows\System32\drivers\etc,打开hosts文件,修改文件,加入127.0.0.1 a-local.test.com

本地通过nginx配置反向代理的全过程记录

四、运行

先输入./nginx.exe -t检查nginx配置是否正确,正确如下图:

本地通过nginx配置反向代理的全过程记录

继续输入nginx -s reload重启(nginx配置文件修改后都要重启nginx才会生效)

刷新dns: ipconfig /flushdns

本地通过nginx配置反向代理的全过程记录

在浏览器中输入http://a-local.test.com, 你将会看到你本地运行的代码界面

五、常用的nginx命令

  • 帮助命令:nginx -h
  • 启动Nginx服务器 :start nginx
  • 配置文件路径:/usr/local/nginx/conf/nginx.conf
  • 检查配置文件:nginx -t
  • 停止服务:nginx -s stop
  • 退出服务(处理完所有请求后再停止服务):nginx -s quit
  • 重新加载配置文件:nginx -s reload
  • 显示版本信息并退出  nginx -v 
  • 杀死所有nginx进程  killall nginx 

六、跨域请求

前后端分离的项目中由于前后端项目分别部署到不同的服务器上,我们首先遇到的问题就是跨域,在这个场景我们下nginx可以帮助我们很好地解决这个问题

#跨域请求server
server{
	listen 9000;
	server_name 127.0.0.1; # 或者设置为本机ip
	root /app/crossDomain/;
	index index.html;
	
	location /douban/ { #添加访问目录为/api的代理配置
		rewrite ^/api/(.*)$ /$1 break;
		proxy_pass http://a.test.com;
 }
}

总结

到此这篇关于本地通过nginx配置反向代理的文章就介绍到这了,更多相关本地通过nginx配置反向代理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
使用nginx动态转换图片大小生成缩略图
Mar 31 Servers
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
fastdfs+nginx集群搭建的实现
Mar 31 Servers
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
Feb 12 Servers
nginx负载功能+nfs服务器功能解析
Feb 28 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 Servers
GPU服务器的多用户配置方法
Jul 07 Servers
Nginx文件已经存在全局反向代理问题排查记录
Jul 15 Servers
nginx优化的六点方法
Mar 31 #Servers
Nginx优化服务之网页压缩的实现方法
Nginx 负载均衡是什么以及该如何配置
Mar 31 #Servers
Nginx快速入门教程
nginx如何将http访问的网站改成https访问
Mar 31 #Servers
Nginx+Tomcat实现负载均衡、动静分离的原理解析
使用nginx动态转换图片大小生成缩略图
Mar 31 #Servers
You might like
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中IP地址处理IPy模块的方法
2019/08/16 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
servlet面试题
2012/08/20 面试题
高级技校毕业生自荐信
2013/11/18 职场文书
金融专业求职信
2014/08/05 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python