本地通过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 proxy_cache 缓存配置详解
Mar 31 Servers
nginx限制并发连接请求数的方法
Apr 01 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
Nginx虚拟主机的配置步骤过程全解
Mar 31 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
nginx.conf配置文件结构小结
Apr 08 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
KVM基础命令详解
Apr 30 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
windows server2008 开启端口的实现方法
Jun 25 Servers
CentOS7 minimal 最小化安装网络设置过程
Dec 24 Servers
CentOS7设置ssh服务以及端口修改方式
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
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
JS常见算法详解
2017/02/28 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
分析python切片原理和方法
2017/12/19 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
烈士陵园观后感
2015/06/08 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python