使用Nginx(OpenResty)转发域名到非80端口
Posted Trigl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Nginx(OpenResty)转发域名到非80端口相关的知识,希望对你有一定的参考价值。
今天我们来学习一个比较实际的技能,那就是如何通过域名访问你的Web项目呢?主要解决以下几个问题:
1、如何得到一个可用的域名
2、Web工程的端口一般是8080或8081等等的非80端口,如何访问域名的时候能转发到这些非80端口呢?
3、域名不可能只对应一个工程,这样太浪费了,如何将带不同后缀的域名指向不同的工程?例如:使www.example.com/work、www.example.com/study 指向不同的网站
对于第一个问题,有钱就可以解决,可以直接从阿里云买的域名;本节要解决的是后面的问题,假设我们现在已经有了域名:www.test.com,一个对应到该域名的服务器(192.168.111.111),一个部署在tomcat8080端口上的JavaWeb项目:MYWEB。一般我们是通过http://192.168.111.111:8080/MYWEB来访问网站,现在要实现的是通过http://www.test.com/MYWEB来访问,下面讲解具体步骤。
1 安装OpenResty
OpenResty ™ 是一个基于 nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
想要了解详细内容可以访问官网:http://openresty.org/cn/,这里我们只是用到了其中Nginx域名转发的功能,所以下载安装Nginx也可以。
到官网http://openresty.org/cn/download.html复制最新的下载地址https://openresty.org/download/openresty-1.11.2.1.tar.gz
使用wget命令下载:
wget https://openresty.org/download/openresty-1.11.2.1.tar.gz
解压:
tar -xvf openresty-1.11.2.1.tar.gz
安装依赖(ubuntu下用apt-get,centos用yum)
apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl
安装:
cd /data/install/openresty-1.11.2.1
./configure --prefix=/data/install/openresty-1.11.2.1
make
make install
注意这里的第一步如果报错一般是因为缺少依赖,添加依赖即可:
yum -y install pcre-devel openssl openssl-devel
启动命令:
/data/install/openresty-1.11.2.1/nginx/sbin/nginx
重新加载命令:
/data/install/openresty-1.11.2.1/nginx/sbin/nginx -s reload
2 修改Nginx配置文件实现域名转发
修改配置文件
vi /data/install/openresty-1.11.2.1/nginx/conf/nginx.conf
将以下内容添加到 http 节点下:
server
listen 80;
charset utf-8;
server_name www.test.com;
location /MYWEB
client_max_body_size 100m;
proxy_connect_timeout 1200;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
root /data/install/tomcat_myweb/webapps;
proxy_pass http://localhost:8080;
listen 80
表示要监听的是80端口
server_name www.test.com
是对应的域名
location /MYWEB
是域名后跟的子后缀,这里就是http://www.test.com/MYWEB
root /data/install/tomcat_myweb/webapps
是tomcat项目发布路径
proxy_pass http://localhost:8080
是要实际转发到的ip和端口
如果想要访问到其他子路径的项目,如http://www.test.com/OTHERWEB,只要在 http 添加一个 server 并修改对应的配置即可
3 更改tomcat配置文件
配置完上面的内容以后,你输入http://www.test.com/MYWEB会发现打开的并不是你的项目网站,而是tomcat的官网页面,这是因为你转发到的是http://localhost:8080,而要访问到你的项目网站还需要加上后缀http://localhost:8080/MYWEB,我们可以通过修改tomcat的配置文件实现重定向。
cd /data/install/tomcat_myweb/webapps/ROOT
删除ROOT下的所有文件,添加index.html文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0.1;url=/MYWEB">
</head>
<body>
</body>
</html>
此时你访问http://www.test.com就会自动重定向到http://www.test.com/MYWEB,域名转发成功。
Men were born to be suffering, the pain of struggle, or the pain of regret?
以上是关于使用Nginx(OpenResty)转发域名到非80端口的主要内容,如果未能解决你的问题,请参考以下文章