背景
最近遇到一个问题:有一个发邮件的需求,可以调用公司提供的邮件服务来做,本来挺好。
但上线之后发现,我们线上服务部署在外网 AWS 服务器上,但公司这个邮件服务只支持从内网调用。之前测试环境都是在内网,居然一直没有发现这个问题。一下子大家都傻眼了。
这就是 Nginx 派上用场的时候了。
只需要在我们某个部署在内网、但公网可访问的服务上,用 Nginx 做个代理就好了。我们项目正好还有这么一个服务,我就打算配置一下。
其实是个很简单的需求,不过在上线之前,我打算还是在本地调试一下。于是就有了在本地 Windows 环境装 Nginx 的需要。
下载
一开始我甚至都不知道 Nginx 有没有 Windows 的版本,搜了一下发现,还真有。在下面这个链接,选择 Mainline version 里 Windows 版本即可
官网下载链接:
nginx: download
下载下来之后发现是个压缩包,解压到合适位置即可,不需要安装。
使用
启动 Nginx
进入刚解压出来的文件夹,双击
nginx.exe
文件就可以启动了:
但请注意,启动之后不会有任何界面或提示,可以感觉到屏幕闪了一下,但仅此而已。
(第一次使用时,我还以为没打开,又点了很多次
nginx.exe
,结果后来发现后台已经运行了很多个 Nginx 示例了。。)
那么如何判断 Nginx 已经正常启动了呢?
可以按
CTRL + ALT + DEL
进入任务管理器,在后台进程中找到 Nginx 进程,会有两个,一个是 master 进程一个是 worker 进程:
访问 Nginx 默认主页
还是在刚才解压出来的文件夹中,访问
conf
目录下的
nginx.conf
文件,即 Nginx 的默认配置,可以看到:
# 以上略
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#以下略
可见,Nginx 默认就已经在
80
端口监听了。浏览器中打开
localhost
可以看到熟悉的 Nginx 默认页面:
如何停止/重启 Nginx?
官方文档
中给出了停止和重启的相应方法:
nginx -s quit graceful shutdown
nginx -s reload changing configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes
cmd 中
cd
到
nginx.exe
所在路径,然后使用
nginx -s quit
和
nginx -s reload
就可以实现停止 / 重启了。
小结
接下来就可以在本地调试 Nginx 的各种配置了,还是挺方便的。