文章链接: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或者有更好的建议,欢迎批评指正,不吝感激

扫描关注

 
 

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

  1. nginx二级域名配置

    CentOs下nginx二级域名配置 域名配置文件 命名规则:XXX.域名信息.conf 配置文件路径:etc/nginx/conf.d/xxxx.conf 配置文件内容:server { liste ...

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

    nginx二级域名配置自动跳转到一级域名 rewrite配置内容: if ($http_host !~ "^www.aaa.com$") { rewrite ^(.*) http: ...

  3. Linux\Nginx 虚拟域名配置及测试验证

    使用 Nginx 虚拟域名配置,可以不用去购买域名,就可以通过特定的域名访问本地服务器.减少发布前不必要的开支. 配置步骤 1. 编辑 nginx.conf 配置文件 sudo vim /usr/lo ...

  4. nginx 多域名配置,采用多配置文件的方式

    nginx 中多域名配置,目前采用多配置文件的方式. 配置过程比较简单. 首先在 nginx 目录下创建子目录 vhosts . 在 vhosts 目录中创建对应域名的配置文件.如有域名 898hi. ...

  5. nginx二级域名配置[CentOS]

    目录 背景 域名配置 服务器配置 Nginx配置 页面访问生效 背景 只有一台云服务器,部署了自己写的后端管理系统,又需要部署下自己的个人博客平台,但是只有一个域名,想要合理的利用下二级域名. 域名配 ...

  6. nginx 多域名配置 (nginx如何绑定多个域名)

         nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里. 一.每个域名一个 ...

  7. Nginx 多域名配置

    nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里.一.每个域名一个文件的写法  ...

  8. Nginx中文域名配置

    Nginx虚拟主机上绑定一个带中文域名,比如linuxeye.中国,浏览器不能跳转. why? 因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中 ...

  9. nginx多域名配置

    方法一:多个.conf方法(优点是灵活,缺点就是站点比较多配置起来麻烦) 这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设: IP地址: 192.168.1.100域名1 exam ...

  10. centos 安装php-fpm , nginx二级域名配置 ,但为什么必须要 域名提供商 哪里解析新的二级域名一下 才能用呢?

    yum -y install php-fpm php-mysql(当然还有其它扩展) /etc/init.d/php-fpm restart (重启php-fpm) /etc/php.ini (php ...

随机推荐

  1. [LCOI2018][WX] Tirpitz

    \([LCOI2018][WX11.1]~Tirpitz​\) 时限:1s 内存限制:131072KB 输入文件: T.in 输出文件: T.out 题目背景 王九日很颓废,这也就是他为什么这么弱的原 ...

  2. HDU 2082 找单词 (普通型 数量有限 母函数)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2082 找单词 Time Limit: 1000/1000 MS (Java/Others)    Me ...

  3. ICT测试点是干什么的, 怎么设置!

    简单理解:ICT类似如万用表,只是把表笔换成了测试针.那么问题就简单了,一颗普通的RLC元件,都必须有两个测试点才能够测试,当然同一个网络共用的节点用一个测试点就可以了. 详细描述: PCB设计时要看 ...

  4. Oracle 备份恢复实例

    Oracle 备份恢复实例:三思笔记 1 shutdown abort 系统归档模式,有备份 create table xx as select * from emp; update xx set e ...

  5. oracle静默安装

    RHEL6+oracle11.2 无界面化命令安装如下: 1.所需安装软件包检查: yum install binutils-2.* compat-libcap1* compat-libstdc++- ...

  6. 学习笔记 - 2sat

    学习笔记 - 2sat 决定重新启用Markdown--只是因为它支持MathJax数学公式 noip考完,既轻松又无奈,回来慢慢填坑 这篇博客也是拖了好久,通过kuangbin的博客才弄懂2-sat ...

  7. jQuery动态绑定事件(左右移动)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. JS原生评分组件

    JS原生评分组件 <html> <head> <meta http-equiv="Content-Type" content="text/h ...

  9. 【Storm一】Storm安装部署

    storm安装部署 解压storm安装包 $ tar -zxvf apache-storm-1.1.0.tar.gz -C /usr/local/src 修改解压后的apache-storm-1.1. ...

  10. python函数的四种参数传递方式

    python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...