windows下使用nginx调试简介

安装使用

nginx是一个反向代理服务器,在web开发调试中经常用到,写一个简单的使用说明和总结。

1. 下载

点击官网下载地址 下载对应版本的nginx并解压

2. 配置

在解压的目录下找到conf/nginx.conf文件
添加所需监听和代理的server

# 项目名称server {listen       80;server_name  example.com;//监听的host#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_set_header host $host;proxy_pass   http://127.0.0.1:8092; // 要代理的地址}}

3. 常用命令

  1. start nginx // 启动nginx
  2. nginx -s stop // 快速停止nginx,可能并不保存相关信息
  3. nginx -s quit // 有序的停止nginx,并保存相关信息
  4. nginx -s reload // 重新载入配置,修改完配置文件后使用此命令重启

原理简析

在说明使用nginx的优点之前,先说说另一种常用的调试方案:修改hosts文件。
修改host的原理是:对主机添加特定dns解析规则,将指定域名解析至某个特定ip。例如:

在hosts文件里写了这么一行:127.0.0.1 example.com,接下来在浏览器输入www.example.com后:

  1. 主机检测hosts文件发现有对应规则(如果没有对应规则就走正常dns解析服务),于是向IP127.0.0.1:80(默认端口)发送http请求,请求报文上GET / HTTP/1.1,host:example.com
  2. 如果此时本地80端口确实启动了某个服务,则处理该对应的请求。

如果我们正好是在本地的80端口运行这个要调试项目,那自然没有问题。但是可能有意外情况:

  1. 本地项目不跑在80端口
  2. 要监听的host项目不在80端口,例如一般线上正式环境的项目使用的是https协议,请求默认端口就是443,

此时就需要nginx来解决问题,nginx的作用用一句话描述:将发送至特定host的请求转发到指定的代理地址上
举一个实际的例子,首先在hosts添加一行127.0.0.1 construct-courses.pre1.web.nd后,可以在浏览器看到这样的请求:
图片描述
首先看图上Grnrral部分的remote address字段,即前文的第一步骤完成,本地的80端口接收到一个http请求,host为construct-courses.pre1.web.nd
接着在nginx的配置文件中增加:

server {listen       80;server_name  construct-courses.pre1.web.nd;location / {proxy_set_header host $host;proxy_pass   http://127.0.0.1:8092;}}

在conf中配置如上图代码并启动nginx后,nginx检查到server_name construct-courses.pre1.web.nd接收到了请求,根据匹配规则,将请求转发到指定的 proxy_pass 即 http://127.0.0.1:8092上。至此,请求example.com实际变成了请求http://127.0.0.1:8092

在本地8092端口启动实际项目,就可以发现在浏览器访问construct-courses.pre1.web.nd时,运行的正是我们的实际项目

整个过程至此结束


惯例:如果内容有错误的地方欢迎指出(觉得看着不理解不舒服想吐槽也完全没问题);如果有帮助,欢迎点赞和收藏,转载请征得同意后著明出处,如果有问题也欢迎私信交流,主页有邮箱地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MASA Framework 命令查询职责分离

概念CQRS (https://learn.microsoft.com/zh-cn/azure/architecture/patterns/cqrs)是一种与领域驱动设计和事件溯源相关的架构模式, 它的全称是Command Query Responsibility Segregation, 又叫命令查询职责分离, Greg Young在2010年创造了这个术语, 它是基于Bertrand Meyer 的…

Google的Project Stream准备在Chrome中播放AAA控制台游戏

Streaming full 3D games over a high-speed web connection is a fast growing trend. And with ridiculous amounts of infrastructure and remote computing power, Google is well equipped to join it. 通过高速网络连接流式传输完整的3D游戏是一种快速增长的趋势。 凭借可…

私有云之迷思:未来是什么?

本文讲的是私有云之迷思:未来是什么?,【编者的话】非常好的一篇文章,作者从OpenStack目前的困境讲起,聊到了私有云的产生背景,进而介绍了云计算的发展史。从云计算诞生的初衷以及现在流行的分布式应用又延伸…

maven项目的目录结构

1、maven项目采用“约定优于配置”的原则: src/main/java:约定用于存放源代码,src/test/java:用于存放单元测试代码,(测试代码的包应该和被测试代码包结构保持一致,方便测试查找)src…

AWS大力支持.NET 开源项目,和Azure抢.NET 客户

出品 | OSC开源社区(ID:oschina2013)在 2022 re:Invent 会议上, AWS 软件开发经理 Saikat Banerjee 锐评道:” 我们发现 .NET 开源项目资金严重不足,仍可称之为第三方开源”。随即表示 AWS 过去非常重视 .net 生态&…

攻防 logmein_如何使用LogMeIn Hamachi在任何地方访问文件

攻防 logmeinWhether you’re at work and forgot some file on your home computer, want to play some music on a train, or just want to move some files between your computers, accessing your files from anywhere is a life saver. 无论您是在工作时忘记了家用计算机…

在FC中如何获取fcdot文件

在FlexiCapture中一些客户在问如何获取.fcdot文件(在测试序列号下或者没有测试模板的情况下) 第一步: 1、查看License Manager查看是否找到序列号 首先我们在开始菜单里面打开ABByyFlexiCapTure11——》选择"工具"下的License Manager 第二步 1、选择管理…

Blazor学习之旅 (9) 用MudBlazor重构Todo

【Blazor】| 总结/Edison Zhou大家好,我是Edison。在之前的学习之旅(3)开发一个Todo应用中,我们开发了一个简单版的Todo,这次我们基于MudBlazor来重构这个Todo应用。Todo V1回顾在Blazor入门学习(3&#xf…

50多种在Photoshop中删除图像背景的工具和技术,第3页

We’re completing the 50 Tools and Techniques today with this final installment. Read about advanced selection and masking tools, as well as some stupid graphics geek tricks, and ways to fake removing a background in seconds. 我们今天最后一部分将完成50多种…

开源的 .NET 数据库迁移框架

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!简介FluentMigrator 是一个开源的数据库迁移框架,可以帮助用户在开发过程中保持数据库的一致性。它提供了一个简洁的 Flue…

2015年IT领域里Docker和其它颠覆性的趋势

本文讲的是2015年IT领域里Docker和其它颠覆性的趋势,【编者的话】文中作者介绍了2015年IT领域的一些颠覆性的趋势,比如Docker将如何革新PaaS、IaaS等,Docker将如何颠覆虚拟化、私有云、配置管理。 2014年真是令人兴奋的一年,这一年…

进化:从孤胆极客到高效团队_极客狂:为什么这么多的网站无法使用打印样式表?...

进化:从孤胆极客到高效团队It never ceases to amaze me that people have to look for a link or a button that says “Print” on a web page, especially considering there’s a miracle technology that makes that step unnecessary. Sadly almost nobody uses it, even…

apple tv 开发_如何跨多台Apple TV同步Apple TV的主屏幕

apple tv 开发If you have more than one Apple TV in your household, you probably know how annoying it is when you have to install Apple TV apps multiple times on each device. However, with the release of tvOS 11, that’s no longer the case. 如果您的家庭中有…

这些故事说的都是你——译者带你读《硅谷革命》

作者 | 薛命灯 作为《硅谷革命》的译者之一,同时也是一个拥有十余年软件开发和架构经验的工程师,当时我在决定是否接受重译这本书的时候,几乎是不假思索地答应了郭蕾(本书重启版发起人之一)的提议,只因他的…

runc容器逃逸漏洞最强后续:应对之策汇总与热点疑问解答

美国时间2019年2月11日晚,runc通过oss-security邮件列表披露了runc容器逃逸漏洞CVE-2019-5736的详情。runc是Docker、CRI-O、Containerd、Kubernetes等底层的容器运行时,此次安全漏洞无可避免地会影响大多数Docker与Kubernetes用户,也因此为整…

com surrogate_什么是“ COM Surrogate”(dllhost.exe),为什么它在我的PC上运行?

com surrogateIf you poke around in your Task Manager, there’s a good chance you’ll see one or more “COM Surrogate” processes running on a Windows PC. These processes have the file name “dllhost.exe”, and are part of the Windows operating system. You’…

facebook 邀请好友_如何查看紧急情况下您的Facebook朋友是否安全

facebook 邀请好友Facebook’s Safety Check feature lets you check in during an emergency to confirm you’re safe. If you have friends or family in an area that you haven’t heard from, though, you may want to ask them directly. Here’s how to ask someone to…

【您有一封来自阿里云的邀请函】阿里云成都客户服务中心20+职位虚席以待,来吧,成就最好的自己!...

如果你不想辜负这个科技的时代,相信它会因你而不同。如果你不想仅做年度大戏的观众,相信自己会成为主角。如果你不想淹没在枯燥与苟且中,相信工作有诗和远方。那么,不要犹豫,加入我们!在这,你已…

.NET 代码优化 聊聊逻辑圈复杂度

本文属于 dotnet 代码优化系列博客。相信大家都对圈复杂度这个概念很是熟悉,本文来和大家聊聊逻辑的圈复杂度。代码优化里面,一个关注的重点在于代码的逻辑复杂度。一段代码的逻辑复杂度越高,那么维护起来的难度也就越大。衡量代码的逻辑复杂…

GO语言基础条件、跳转、Array和Slice

1. 判断语句if 1. 条件表达式没有括号(这点其他语言转过来的需要注意) 2. 支持一个初始化表达式(可以是并行方式,即:a, b, c : 1, 2, 3) 3. 左大括号必须和条件语句或 else 在同一行 4. 支持单行模式 5. 初始化语句中的…