前言: 以前我以为解析域名他可以绑定到服务器的某个端口,其实并不是如此,在域名解 析的时候我发现他只能解析到服务器的ip地址,不能具体指定到某一个端口,但是我们 可以通过其他的技术来实现此次功能,我们本次使用的是nginx的反向代理。
条件: 一台云服务器、域名,nginx这里域名需要备案才能将域名解析到服务器。
目标效果 :www.xxx.xx(域名) 替代 xxx.xxx.xxx.xxx:port(公网ip+端口)or www.xxx.xxx:port(域名+端口)
我们不做方向代理的情况下是这样的:
当我们使用nginx做反向代理的情况如下
解释:当你直接输入你的公网ip或者解析完后的域名它走的是http协议默认端口是80,你想要实现域名/公网IP直接访问某个端口是行不通的,除非在域名/公网IP+端口,这很显然不是我们要的效果。这个有点类似于早期的电话你不能直接打给某人只能打到一个站点,你想要联系某个人必须叫接线员帮你转接给某人,而nginx可以充当那个接线员。你可以通过nginx的反向代理去你想要去的地方。
安装nginx:
我这里准备的是一台阿里云的服务器(centos7.x),nginx版本是:
1,在他所在的文件夹下解压nginx的压缩包(command):tar -zxvf nginx-1.9.6.tar.gz
2,进入解压后的nginx文件,里面有个绿色的configure可执行文件。
3,执行这个绿色的 可执行文件(command):./configure
执行加载后我这里报了这个错,不慌我们只需要安装一个依赖即可(command):
yum -y install openssl openssl-devel
下载完后我们再执行一下(command):./configure
到了最后没有报刚刚那个错误。
我们紧接着再执行一下(command):make install
make完后不报错就安装成功了。
我们执行命令查看nginx 安装的位置(command): whereis nginx
图上显示是usr/local/目录下
4,我们进入安装好的nginx里面有一个sbin文件,执行这个sbin里面那个绿色的可执行文件nginx
它就是启动nginx的可执行文件。
我们将它执行一下(command): ./ nginx ,如果没有报错就是成功(再linux不报错就代表成功!),执行成功后我们可以验证一下,直接访问你解析后的域名,或者公网IP,就会显示一个nginx的欢迎页面。
这里要特别注意一下,安全组和防火墙一定要开发80端口,不让的话会被拦截。
让nginx进行方向代理
我们找到nginx的配置文件,它的位置再我们安装好的nginx中conf目录下,其中nginx.conf就是 nginx的配置文件。
让我们打开它是,找到如下位置。
我们编辑这个配置文件在这里设置反向代理,在该位置添加(proxy_pass http://www.baidu.com;),用百度来测试。
我们还要重新启动一下nginx,我们来到启动nginx的目录下(/usr/local/nginx/sbin 目录下),
重新启动的命令是(如上图command)./nginx -s reload
没有报错就代表成功了,这个时候我们访问一下解析后的域名或者是自己的公网IP,就可以直接跳转到百度的首页了。如果是想跳转到自己的某个端口的换就把百度换成自己的就行了,
1:把www.baidu.com 改成自己的域名加端口
proxy_pass http://www.xxx.xxx:8080;
2:把www.baidu.com 改成自己的域名加端口
proxy_pass http://xxx.xxx.xxx.xxx:8080;
以上二者都可以达到通过自己的域名或者公网IP 直接访问自己的端口了。
注意:想要访问哪个端口一定在防火墙和安全组开发该端口哟!