博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下使用nginx调试简介
阅读量:6612 次
发布时间:2019-06-24

本文共 1774 字,大约阅读时间需要 5 分钟。

安装使用

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时,运行的正是我们的实际项目

整个过程至此结束


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

你可能感兴趣的文章
敏友的【敏捷个人】有感(11): 敏捷个人线下活动有感
查看>>
刺激用户危机意识,实现快速盈利的营销思维
查看>>
英特尔嵌入式突围
查看>>
WIN FORM 多线程更新UI(界面控件)
查看>>
【常见问题】系列01:双击文件夹打开新窗口
查看>>
access 2007创建表关系
查看>>
JDBC公共动作类
查看>>
JUnit单元测试
查看>>
[logstash-input-file]插件使用详解
查看>>
HDU 3103 Shoring Up the Levees(计算几何 搜寻区域)
查看>>
spring mvc模拟用户增删改查以及登录和上传文件的相关流程
查看>>
11.并发包阻塞队列之LinkedBlockingQueue
查看>>
植物大战僵尸
查看>>
Inner Functions - What Are They Good For?
查看>>
原创文章
查看>>
python之文件操作-复制、剪切、删除等
查看>>
LAMP环境搭建
查看>>
css3实现可以计算的自适应布局——calc()
查看>>
理解JavaScript私有作用域
查看>>
Codeforces 626F Group Projects(滚动数组+差分dp)
查看>>