需求
最近需要迁移Node线上服务,于是新申请了两台线上服务器;
部署服务器后,需要验证服务是否正常,办公环境与线上环境网络是隔离的,无法直接访问;但是,线上服务器可通过部署服务器访问,而办公网络是可以访问部署机的;
所以,可通过在部署机上配置代理的方式,办公环境请求部署机,然后把请求代理到线上服务的方式验证服务是否正常。
整个网络结构如下图所示:
Nginx安装
下载
下载页面: http://nginx.org/en/download.html 选择版本鼠标右键拷贝链接地址
1 | 下载 |
安装
1 | 1. 默认安装:root权限进入解压后的目录,执行如下命令安装 |
默认安装,非root权限会报如下错误
1 | mkdir: cannot create directory `/usr/local/nginx': Permission denied |
默认安装后,查看nginx的安装目录,可以看到安装在/usr/local/nginx
目录下
1 | [root@40-10-14 opt]# whereis nginx |
1.建议使用指定目录方式安装。如果切换为root权限去安装,后续修改config文件也需要root权限
2.或者root安装后,修改权限为普通用户可操作也行
添加软链
添加软链,使得nginx命令全局能访问,每次运行就不用切换到安装目录中了
1 | 添加软链 |
常用命令
- 启动:
nginx
- 停止:
nginx -s stop
- 重启:
nginx -s reload
- 帮助命令:
nginx -h
强制停止:
1 | 查看linux进程id |
配置代理
配置两台机器的请求转发,编辑nginx安装目录下的nginx/conf/nginx.conf
文件即可
1 | user nobody; |
注意:修改完nginx的配置文件后,需要运行
nginx -s reload
才能生效
验证
由于线上服务很多都是需要登录的,所以访问时需要使用域名访问,而不能使用IP访问,因为cookie都是跟域名绑定的
解决这个问题很简单,配置本机host即可
1 | IP为Nginx服务器IP |
通过上述配置,在本机浏览器上请求edu.daojia.com
即可间接通过部署机上的Nginx访问到线上服务,以此在内网测试服务是否正确;待服务无异常后,把线上流量切过来即可。