龙空技术网

一台服务器80端口绑定多个域名

Snowld 372

前言:

如今兄弟们对“nginx转发80端口”可能比较重视,姐妹们都想要了解一些“nginx转发80端口”的相关资讯。那么小编也在网摘上收集了一些对于“nginx转发80端口””的相关内容,希望看官们能喜欢,咱们一起来学习一下吧!

如题, 很多个人开发者想拥有自己的服务器, 但是苦于预算有限, 还有一些人想开发一些小程序等等, 多少会写几个服务 特别是像微信小程序开发, 要求必须是https的域名才可以, 但是买多个服务器并不划算, 只买一台机器端口80只有一个, 所以又不想买机器又想发布多个服务, 只能通过其他办法来解决, 下面我就介绍一下如何用一台服务器解决这些问题

工具

服务器:

主流的有阿里云、腾讯云, 我建议阿里云, 腾讯我也用过但是经常会中毒, 配置根据个人喜好, 现在服务器基本都是centos了, 下面我也是以centos来介绍, 如果家里面是电信宽带的话好像也可以申请固定公网ip需要多收费, 这样就不必再买云服务器了

域名:

域名是有必要的, 如果你想有自己的网站发布在服务器上, 最好有一个域名, 没有的话直接用公网ip也可以, 但是微信小程序必须要有域名才行, 所以最好有一个自己的域名, 到阿里云上面买一个普通的很便宜, 做好后要先备案, 备案周期久的话要审核一个月, 看运气, 建议先备案

搭建服务器环境

有了服务器和域名, 就可以做很多事情了, 首先我们要解决开头提到的问题, 话不多说, 解决这个问题我推荐使用nginx, 像一些云上面的负载均衡, 就是使用的nginx, 只不过云上面做了优化, 那么先在服务器上面安装nginx(安装教程)

域名解析

前面购买的域名比如gogogo.com, 我们一般不会直接使用顶级域名, 而是使用解析后的二级域名, 以小程序开发为例, 首先小程序有接口服务, 我们先创建一个api.gogogo.com解析到我们服务器的公网ip地址, 再比如图片域名img.gogogo.com同样解析到我们服务器的公网ip地址, 如果有多个服务 就解析多个域名到我们服务器的公网ip, 每个二级域名代表一个服务, 可以发现这些二级域名指向的都是一台服务器的80端口, 后面介绍怎么解决

配置nginx

假设我们api服务发布在服务器的3000端口, 图片服务发布在服务器的3001端口

解决共用80端口问题需要对nginx配置即可, 找到nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

找到server模块

新增server

    #小程序api服务    server {        listen       80;        server_name  api.gogogo.com;  #根据域名拦截http服务              proxy_set_header X-Forwarded-Host $host;        proxy_set_header X-Forwarded-Server $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            location / {          # 监听80端口 转发到3000          proxy_pass ;    	    proxy_connect_timeout 600;    	    proxy_read_timeout 600;        }    }        #小程序图片服务    server {        listen       80;        server_name  img.gogogo.com;  #根据域名拦截http服务		    # 不设置此项可能会导致push大文件失败				client_max_body_size 100m;        proxy_set_header X-Forwarded-Host $host;        proxy_set_header X-Forwarded-Server $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            location / {          # 监听80端口 转发到3001          proxy_pass ;    	    proxy_connect_timeout 600;    	    proxy_read_timeout 600;        }    }

保存后nginx -s reload, 浏览器输入api.gogogo.com(自己域名和参数), 此时问题已经解决

不同域名只需要修改server_name后面的域名就可以了

标签: #nginx转发80端口