180602-nginx多域名配置

文章链接:https://liuyueyi.github.io/hexblog/2018/06/02/180602-nginx多域名配置/

nginx多域名配置

原来的域名过期了,重新买了一个hhui.top,正好重新的配置一下,针对之前写过的几个不同的东西,通过不同的子域名来进行区分,因此简单记录一下nginx的多域名配置

I. 域名配置

1. 背景

因为资金有限,只有一台服务器,但是这个服务器上干的事情却不止一件,当前的状况是有下面几个

  • zweb : 一个多媒体工具网站,前端ReactJS写的,独立打包;后端为java部署在Tomcat中的应用media
  • mweb : 古诗词wap网,每天推荐12首经典古诗词;前端ReactJS编写,独立打包;后端Java部署在Tomcat中的应用Story
  • media:多媒体处理应用,Git开源,实现图片编辑, 二维码, markdown,svg渲染,html渲染,音频编辑等功能
  • Story: 古诗词的后端,提供古诗词查询,检索推荐和订阅等基本功能,未开源
  • 一灰灰Blog 基于Hexblog搭建的个人博客

所以这台服务器上,从应用角度出发,有五个不同的功能的服务,主要区分为两类:

  1. 静态的html前端页面
  2. 部署在Tomcat上的Java应用

2. 域名配置

五个服务,会配置五个不同的子域名:

  • 将前端静态页面,在服务器上放在不同的目录下,不通的域名,映射到不同的目录
  • Tomcat暴露8080端口,不同的应用放在webapps下不同的目录

a. 域名与文件映射

拿简单的 zweb 和 mweb 来设置,直接映射即可

server {
    listen       443 ssl;
    server_name  zweb.hhui.top;

    # https 证书配置
    ssl_certificate      zwebcert/1529370953598.pem;
    ssl_certificate_key  zwebcert/1529370953598.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   # ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    root /tmp/html/zweb;
}

server {
    listen       443 ssl;
    server_name  mweb.hhui.top;

    # https 证书配置
    ssl_certificate      zwebcert/1529370953598.pem;
    ssl_certificate_key  zwebcert/1529370953598.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   # ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    root /tmp/html/mweb;
}

简单来讲,一个子域名对应一个配置项,设置其中的server_name为目标域名

然后就是设置root,映射到不同的前端地址即可

b. 博客配置映射

个人博客虽然也是静态页面,但是不太一样的是博客的源码托管在git上,并借助了github的page服务,因此实际访问的域名会多一个后缀,如

https://liuyueyi.github.io/hexblog/

所以如果直接用上面的方法,会导致js和css文件404,主要是因为借助hexo搭建博客时,指定了path路径,所以要做一个简单的域名匹配

server {
    listen       443 ssl;
    server_name  blog.hhui.top;

    ssl_certificate      blogcert/1529816324478.pem;
    ssl_certificate_key  blogcert/1529816324478.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   # ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    root /tmp/html/blog;

    location = / {
       index index.html;
       rewrite ^(.*)$ /hexblog/ break;
    }
    location / {
       root /tmp/html/blog;
    }
}

上面的配置,相比较前面的,主要就是拦截了下默认的首页,强制跳转到指定的目录下

c. Tomcat代理

server {
    listen       443 ssl;
    server_name  media.hhui.top;

    ssl_certificate      mediacert/1528000080078.pem;
    ssl_certificate_key  mediacert/1528000080078.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   # ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    root /tmp/html/media/;
    location / {
        proxy_pass http://media.hhui.top:8080/media/;
        proxy_redirect default;
    }
}

常见的代理转发配置了,nginx作为代理,将请求转发到Tomcat,也就那么一个简单的配置,主要利用的是 proxy_redirect

II. 小结

主要记录一个简单的配置,关于nginx详细的配置相关,之前写过一个博文,加上友情链接

上面配置体验:

III. 其他

一灰灰Blog: https://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

扫描关注

原文地址:https://www.cnblogs.com/yihuihui/p/9127397.html

时间: 2024-10-29 04:03:02

180602-nginx多域名配置的相关文章

Nginx二级域名配置

Nginx二级域名配置模板 域名一:www.hellosr.com 域名二:daxin.hellosr.com 通过upstream进行负载均衡,通过access_log的配置规范化请求日志输出 配置如下: #运行用户 #user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 2; #全局错误日志及PID文件 #error_log /home/nginx/logs/error.log; #pid /home/nginx/logs/nginx.pi

nginx二级域名配置自动跳转到一级域名

nginx二级域名配置自动跳转到一级域名 rewrite配置内容: if ($http_host !~ "^www.aaa.com$") { rewrite ^(.*) http://www.aaa.com$1 permanent; } 下方,nginx代理访问项目proxy_pass,及rewrite参考 server { listen 80; server_name www.aaa.com 100.100.100.100; location / { if ($http_host !

Nginx 多域名配置

nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里.一.每个域名一个文件的写法       首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.itblood.com 则在此目录建一个文件:www.itblood.com.conf然后在此文件中写规则,如: 1 2 3 4 5 6 7 server{     

Nginx中文域名配置

中文域名变为Punycode编码即可,在线转码地址:http://tools.jb51.net/punycode/, Punycode? Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码. "中文域名"后缀不被标准的解析服务器支持,需转化为punycode码进行解析. 修改Nginx配置 server { listen 80; server_name blog.linuxeye.com ;.

Nginx多域名配置

我们都知道如果在域名管理的控制面板设置域名对应ip只能设置到ip,不能详细设置到端口.如果一台服务器部署了多个web应用,使用的不同端口启动的,那么就可以Nginx做映射. 比如我有一个域名 www.525.life:域名还可以分出2级域名: admin.525.life.我在域名控制面板把这两个域名都指向我的服务器公网ip:123.123.123.123.这时候发现www.525.life和admin.525.life域名访问都只是对应到了使用端口80的Web程序(默认的).如果我们要访问81

一台nginx服务器多域名配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧: server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: server { listen 80; server_name ssdr.info www.s

服务器的多域名配置

1. 常用的WEB服务器有Apache和nginx,小编偏向使用nginx.日常开发机器使用的是windows,本地测试安装的wamp,会用的Apache:生成环境是使用linux,一键安装lnmp,所以使用了nginx. 2. Nginx是一个高性能.轻量级的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Apache是一款老牌的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. 3. 首先要

利用nginx泛域名解析配置二级域名和多域名

利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径 www为主页程序源代码路径 把相应程序放入上面的路径通过 http://www.youdomain.com 访问的就是主页 http://bbs.yourdomain.com 访问的就是论坛 其它二级域名类推. server { listen 80; server_name ~^(?<subdomain>

LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)

一.nginx的配置( nginx.conf) 1.nginx的主配置文件位置: /usr/local/nginx/conf/nginx.con 2.清空  /usr/local/nginx/conf/nginx.con默认的配置文件内容 [[email protected] ~]# > /usr/local/nginx/conf/nginx.conf >:重定向的意思,单独使用,可以把一个文本文档快速清空 3.拷贝一下代码到/usr/local/nginx/conf/nginx.conf文件