内容原创, 如需转载, 请注明地址: http://www.cnblogs.com/j-star/p/8785334.html
Nginx 是一款轻量级 https://baike.baidu.com/item/轻量级/10002835 的 https://baike.baidu.com/item/web/150564 服务器 / 反向代理 https://baike.baidu.com/item/反向代理 服务器及电子邮件 https://baike.baidu.com/item/电子邮件 (IMAP/POP3) 代理服务器, 并在一个 BSD-like 协议下发行. 其特点是占有内存少, 并发 https://baike.baidu.com/item/并发 能力强.
下面就详细的说一说如何用 Nginx 实现反向代理.
首先: 来做点准备工作, 最少两个 tomcat, 另外设置两个域名并解析到本地 ip(因为 nginx 是直接配置域名)
(1) 准备两个 tomcat
分别设置两个 tomcat 的 / conf/server.xml 中的端口号, 如下
tomcat1 端口号分别设置为: 8205 8280 8209
tomcat2 端口号分别设置为: 8215 8281 8219
(2) 添加测试内容
分别删除目录 webapps 下所有文件, 新建一个文件夹 ROOT, 并在该目录下新建 index.html
内容可以设置为: 这里是 8280 端口.(另一个: 这里是 8281 端口.)
(3) 启动两个 tomcat
(4) 分别访问两个 tomcat 下的项目
访问下面两个网址:
- 127.0.0.1/8280
- 127.0.0.1/8281
如果能够访问到对应的 index.html 文件就说明 tomcat 配置且启动成功.
(5) 设置两个域名并做解析
修改 hosts 文件, 目的是为了设置 2 个域名, tomcat1.com 和 tomcat2.com 并且解析到本地 ip:127.0.0.1
路径: C:\Windows\System32\drivers\etc
打开 hosts 文件, 加上 (如果修改后无法保存, 可以把 hosts 文件复制到桌面, 修改完成后再替换原有 hosts 文件)
添加内容如下:
- 127.0.0.1 tomcat1.com
- 127.0.0.1 tomcat2.com
(6) 测试域名是否解析成功
127.0.0.1/8280;127.0.0.1/8281 分别修改为
tomcat1.com:8280;tomcat2.com:8281
如果显示结果如上图所示, 说明域名设置并解析成功.
下面开始正式配置 Nginx 服务器的方向代理.
1. 下载, 安装 Nginx 服务器
输入网址: http://nginx.org/en/download.html , 选个合适的版本, 下载后解压到合适的路径.
解压后, 如图所示: nginx.exe 可以直接运行, 但是不建议.
2. 配置反向代理
打开 / conf/nainx.conf 文件, 删除 server{ ...... }, 或者注销掉
重新添加 server{ }
listen: 监听的端口号
server_name: 访问域名
location : 这里配置为 / 直接匹配端口下的默认 ROOT 下的项目, location 内容很广泛,
参见: https://segmentfault.com/a/1190000009651161
proxy_pass : 为项目的实际访问地址
- server {
- listen 80;
- server_name tomcat1.com;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- proxy_pass http://127.0.0.1:8280;
- index index.html index.htm;
- }
- }
- server {
- listen 80;
- server_name tomcat2.com;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- proxy_pass http://127.0.0.1:8281;
- index index.html index.htm;
- }
- }
3. 启动, 关闭, 重启 Nginx 服务器
打开 cmd.exe 运行命令.
注意: 一定要在 nginx.exe 文件所在的文件夹下操作.
(1) 启动:
H:\nginx-1.12.2>start nginx
或 H:\nginx-1.12.2>nginx.exe
注: 建议使用第一种, 第二种会使你的 cmd 窗口一直处于执行中, 不能进行其他命令操作.
(2) 停止:
H:\nginx-1.12.2>nginx.exe -s stop
或 H:\nginx-1.12.2>nginx.exe -s quit
注: stop 是快速停止 nginx, 可能并不保存相关信息; quit 是完整有序的停止 nginx, 并保存相关信息.
(3) 重新载入 Nginx:
H:\nginx-1.12.2>nginx.exe -s reload
当配置信息修改, 需要重新载入这些配置时使用此命令.
(4) 重新打开日志文件:
H:\nginx-1.12.2>nginx.exe -s reopen
4. 测试是否配置成功
输入域名: tomcat1.com 和 tomcat2.com
如果输入域名后显示如上图, 即为成功配置.
5. 可能会遇到的问题 (进程关闭失败)
在使用的过程中, 你可能会遇到一个很奇葩的问题, 就是当关闭命令执行了无数遍, 页面却还是可以直接用域名访问.
这个时候就说明你的进程并没有真正关闭, 我们可以用命令来查询一下:
cmd 中输入: netstat -an|find "0:80"
如果有, 说明真的没有关闭这个进程. 没有, 那就看看是不是浏览器缓存的问题.
针对进程不能正常关闭, 可以用如下命令来关闭: taskkill /F /IM nginx.exe> nul
以上就是用 nginx 服务器做反向代理服务器的全部内容, 如果对你有帮助, 还请动动小手推荐一下.
内容原创, 如需转载, 请注明地址: http://www.cnblogs.com/j-star/p/8785334.html
来源: https://www.cnblogs.com/j-star/p/8785334.html