【服务器】Nginx 作为应用服务器映射服务

来源:互联网 发布:android 棋牌游戏源码 编辑:程序博客网 时间:2024/06/05 02:43

环境

系统: ubuntu 16.04 LTS
Nginx 版本 :nginx/1.10.3 (Ubuntu)

在我们的服务器上面有许许多多的 Server 可以对外服务,但是我们可能不想对外暴露服务器上开放的端口,这时可以利用 Nginx 作为我们的应用服务器,通过配置来映射 host 到我们的 Server 上,通俗点讲就是通过配置的形式使外部访问一个 host 的时候让 Nginx 做中间层来决定我们的服务器对外部提供什么样的服务。配置二级域名来访问不同的 web 服务就是使用这个原理。

开始

Nginx 在 Linux 上的配置文件在 etc/nginx 下,我这里是修改的 /sites-available 下的 default 文件

在文件末尾添加 Virtual Host

server {      listen       80;      server_name  qq.com;      location / {          proxy_pass http://localhost:8080/qq;          proxy_set_header   Host    $host;          proxy_set_header   X-Real-IP   $remote_addr;          proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;      }  } 

这里假设你拥有的域名是 qq.com 你希望外部访问 qq.com 的时候是去访问你本机的 tomcat 下的一个 qq 的 web 项目。

现在你需要在 qq.com 这个域名下给 RabbitMQ(默认端口15672) 的服务分配一个 mq.qq.com 的二级域名的话需要添加一个 server 在 Virtual Host 下,关于如何配置二级域名可以看一下我的另一篇文章 Nginx配置二级域名

server {      listen       80;      server_name  mq.qq.com;      location / {          proxy_pass http://localhost:15672;          proxy_set_header   Host    $host;          proxy_set_header   X-Real-IP   $remote_addr;          proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;      }  } 

最后需要重启一下 Nginx 的服务,修改配置后重新加载生效

nginx -s reload

这样来配置外部就可以通过访问 mq.qq.com 来访问我们内部的 RabbitMQ 的服务了。