内容简介:nginx是一个反向代理服务器,在web开发调试中经常用到,写一个简单的使用说明和总结。点击在解压的目录下找到
安装使用
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. 常用命令
- start nginx // 启动nginx
- nginx -s stop // 快速停止nginx,可能并不保存相关信息
- nginx -s quit // 有序的停止nginx,并保存相关信息
- nginx -s reload // 重新载入配置,修改完配置文件后使用此命令重启
原理简析
在说明使用nginx的优点之前,先说说另一种常用的调试方案:修改 hosts
文件。
修改host的原理是:对主机添加特定dns解析规则,将指定域名解析至某个特定ip。例如:
在hosts文件里写了这么一行: 127.0.0.1 example.com
,接下来在浏览器输入 www.example.com
后:
- 主机检测hosts文件发现有对应规则(如果没有对应规则就走正常dns解析服务),于是向IP
127.0.0.1:80(默认端口)
发送http请求,请求报文上GET / HTTP/1.1
,host:example.com
。 - 如果此时本地80端口确实启动了某个服务,则处理该对应的请求。
如果我们正好是在本地的80端口运行这个要调试项目,那自然没有问题。但是可能有意外情况:
- 本地项目不跑在80端口
- 要监听的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时,运行的正是我们的实际项目
整个过程至此结束
惯例:如果内容有错误的地方欢迎指出(觉得看着不理解不舒服想吐槽也完全没问题);如果有帮助,欢迎点赞和收藏,转载请征得同意后著明出处,如果有问题也欢迎私信交流,主页有邮箱地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- iOS常用调试方法:断点调试
- 断点调试和日志调试之间的平衡点:函数计算调试之 Python 篇
- .NET高级调试系列-Windbg调试入门篇
- VisualStudio 通过外部调试方法快速调试库代码
- GDB 调试 Mysql 实战(二)GDB 调试打印
- 使用gdb调试工具上手调试php和swoole源码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。