本地通过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域名转发https访问的实现
Mar 31 Servers
nginx限制并发连接请求数的方法
Apr 01 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 Servers
nginx的zabbix 5.0安装部署的方法步骤
Jul 16 Servers
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 Servers
nginx共享内存的机制详解
Mar 21 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
django项目、vue项目部署云服务器的详细过程
Jul 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
PHP 替换模板变量实现步骤
2009/08/24 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
jquery text()要注意啦
2009/10/30 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
老生常谈python之鸭子类和多态
2017/06/13 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
mysql有关权限的表都有哪几个
2015/04/22 面试题
如何安装ruby on rails
2014/02/09 面试题
预备党员思想汇报
2014/01/08 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
家长通知书教师评语
2014/04/17 职场文书
企业承诺书格式
2014/05/21 职场文书
会员活动策划方案
2014/08/19 职场文书