前言:
以前我以为解析域名他可以绑定到服务器的某个端口,其实并不是如此,在域名解析的时候我发现他只能解析到服务器的ip地址,不能具体指定到某一个端口,但是我们可以通过其他的技术来实现此次功能,我们本次使用的是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
这里要特别注意一下,安全组和防火墙一定要开发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 直接访问自己的端口了。
注意:想要访问哪个端口一定在防火墙和安全组开发该端口哟!