本地通过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服务器添加Systemd自定义服务过程解析
Mar 31 Servers
nginx对http请求处理的各个阶段详析
Mar 31 Servers
nginx负载功能+nfs服务器功能解析
Feb 28 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
Nginx安装配置详解
Jun 25 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
kubernetes集群搭建Zabbix监控平台的详细过程
Jul 07 Servers
Windows server 2003卸载和安装IIS的图文教程
Jul 15 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
Docker容器harbor私有仓库部署和管理
Aug 05 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 Servers
Shell中的单中括号和双中括号的用法详解
Dec 24 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
jQuery extend()详解及简单实例
2017/05/06 jQuery
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vuex与组件联合使用的方法
2018/05/10 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
详解Python发送email的三种方式
2018/10/18 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
大学生军训广播稿
2014/01/24 职场文书
美术指导求职信
2014/03/17 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
2014年教研组工作总结
2014/11/26 职场文书
文明单位创建材料
2014/12/24 职场文书
高中政治教学反思
2016/02/23 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书