多个服务部署在同一个服务器,使用不同的端口。

一、思考过程

  1. 如果不想带上端口号,就只能访问 80 或 443 端口。
  2. 可以用过二级目录区分服务,通过反向代理转发到不同的 Server。
  3. 可以用过子域名区分服务,通过反向代理转发到不同的 Server。

二、方案评估

  1. 对于不带端口号访问,以我目前的经验来看,找不到其它更好的方法,只能使用 80 或 443 端口。
  2. 使用二级目录区分服务,可行性很大。
    • 能通过二级目录名,明确区分服务。
    • 可是和直接使用端口号差别不大,只是把辨别服务的方法,从端口号变成了二级目录名。
    • 可能导致 url 过长。
    • 还是没有什么美观性。
  3. 使用子域名区分服务,可行性与二级目录相差无几。
    • 能通过子域名,明确区分服务。
    • 具有一定的美观性。

三、实践操作

使用子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。

1、找到nginx的配置文件

  打开nginx的配置文件,打开  /安装路径/conf/nginx.conf,进行配置

2、修改配置

server {

        listen       80;

        server_name  *.abc.com;

        if ($http_host ~* "^(.*?)\.abc\.com$") {    #正则表达式

                set $domain $1;                     #设置变量
} location / { if ($domain ~* "shop") { proxy_pass http://abc.com:3001; #域名中有shop,转发到3001端口 } if ($domain ~* "mail") { proxy_pass http://abc.com:3002; #域名中有mail,转发到3002端口 } tcp_nodelay on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上 root html; index index.html index.htm; #默认情况 } }

  

个人博客 wordpress + docker 搭建

nginx实现反向代理 配置多域名以及多端口号的更多相关文章

  1. Nginx之反向代理配置(二)

    前文我们聊了Nginx的防盗链.反向代理以及开启nginx代理缓存,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12417130.html:今天我们继续说ng ...

  2. Nginx之反向代理配置(一)

    前文我们聊了下Nginx作为web服务器配置https.日志模块的常用配置.rewrite模块重写用户请求的url,回顾请参考https://www.cnblogs.com/qiuhom-1874/p ...

  3. linux 安装 nginx 及反向代理配置

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,以下为Linux centos平台下安装nginx并配置反向代理的过程(采用源码安装的方式) 一:安装 ...

  4. 002-nginx-在 nginx 反向代理中使用域名,配置动态域名解析

    一.概述 代理(proxy),即中间人,它代替客户端发送请求给服务器,收到响应后再转给客户端.通常意义上的代理是从用户的角度讲的,用户通过某个代理可以访问多个网站,这个代理是靠近用户的,比如某些公司可 ...

  5. nginx之旅(第三篇):代理、正向代理、反向代理、代理的原理、nginx反向代理场景、nginx反向代理配置、nginx反向代理语法

    一.代理服务与反向代理 什么是代理服务 代理-代理办理(代理理财.代理收货.代理购物等等). 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forw ...

  6. nginx 反向代理配置(二)

    上一篇文章主要是对 nginx 各个模块做了一个介绍,以及对什么是反向代理在文章开头做了一个简单介绍,这篇文章我们主要来看下如何进行 nginx 反向代理的配置 proxy 模块      nginx ...

  7. nginx的反向代理和配置

    最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡.所以搜罗了一些关于反向代理服务器的内容,整理综合. 一  概述 反向代理(Reverse Proxy)方式 ...

  8. nginx反向代理配置及常见指令

    nginx配置文件: /usr/local/nginx1.16.1/conf/nginx.conf nginx.conf默认的server配置: server{ listen 80; server_n ...

  9. 配置tomcat、nginx实现反向代理(需操作)

    配置tomcat.nginx实现反向代理现在我想通过nginx访问tomcat 这就要我们去修改nginx的核心配置文件,在其目录下的conf文件夹下的nginx.conf文件,那么首先我们就要了解该 ...

随机推荐

  1. LG5357 「模板」AC自动机(二次加强版) AC自动机+fail树

    问题描述 LG5357 题解 不是fail树的AC自动机复杂度是假的. 把AC自动机搞出来,建立Trie树,树上爆搜一遍就好了. \(\mathrm{Code}\) #include<bits/ ...

  2. [LeetCode] 663. Equal Tree Partition 划分等价树

    Given a binary tree with n nodes, your task is to check if it's possible to partition the tree to tw ...

  3. java中super()和this()、super和this的区别

    1.super()和this()区别: super():调用父类无形参的构造方法: super(形参):调用父类中某个带形参的构造方法: this(形参):调用本类中另一种形式的构造方法: 注意:放在 ...

  4. Spring IOC 常用的注解

    一.@Bean 1.配置类 @Configuration public class MainConfig { @Bean public Person person(){ return new Pers ...

  5. Qt 操作SQLite数据库

    项目中通常需要采用各种数据库(如 Qracle.SQL Server.MySQL等)来实现对数据的存储.查询等功能.下面讲解如何在 Qt 中操作 SQlite 数据库. 一.SQLite 介绍 Sql ...

  6. python接口自动化1-http协议简介

    前言 知道接口测试的小伙伴都应清楚http协议了,如果你还不清楚,那么接口测试做不好,自动化接口就更做不好了.那么做接口测试前先了解下http: HTTP协议(HyperText Transfer P ...

  7. IOS手机 html5页面 数字变成蓝色链接的原因

    IOS手机 html5页面 数字变成蓝色链接的原因 这个是ios手机自动识别 写如下代码 即可<pre> <meta name="format-detection" ...

  8. laravel框架中Job和事件event的解析

    本篇文章给大家带来的内容是关于laravel框架中Job和事件event的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做项目的时候,一直对Job和Event有个疑惑.感觉两 ...

  9. 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快

    1. 介绍 本文对TinyPinyin.Pinyin4j与JPinyin三个汉字转拼音库的用法.测试代码及转换的结果做一个简单的总结. TinyPinyin 适用于Java和Android的快速.低内 ...

  10. 使用jedis操作redis常用方法

    在redis入门及在商城案例中的使用中简单介绍了下使用jedis如何操作redis,但是其实方法是跟redis的操作大部分是相对应的.我这里做下记录 1.String类型操作 public class ...