本地通过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配置https实现域名访问项目(图文教程)
Mar 31 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
Docker下安装Oracle19c
Apr 13 Servers
Docker 镜像介绍以及commit相关操作
Apr 13 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
在容器中使用nginx搭建上传下载服务器
May 11 Servers
zabbix配置nginx监控的实现
May 25 Servers
Linux服务器离线安装 nginx的详细步骤
Jun 16 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
搭建zabbix监控以及邮件报警的超级详细教学
Jul 15 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
Sep 23 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
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
如何基于Python创建目录文件夹
2019/12/31 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
英文商务邀请信
2014/01/22 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
天下第一关导游词
2015/02/06 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL
OpenCV实现普通阈值
2021/11/17 Java/Android