前言:    以前我以为解析域名他可以绑定到服务器的某个端口,其实并不是如此,在域名解                         析的时候我发现他只能解析到服务器的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版本是:

百度网盘自提 ,提取码:【8888】https://pan.baidu.com/s/1PHv19913esupYYhm32gCnw https://pan.baidu.com/s/1PHv19913esupYYhm32gCnw

 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 直接访问自己的端口了。

注意:想要访问哪个端口一定在防火墙和安全组开发该端口哟!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐