一个ip, 两个域名, 两个ssl, 访问多个不同的项目
在前面一篇中说过, 入了好几个坑. 后来使用了nginx+tomcat配置的方式. 终于成功了. 因为头一次使用nginx, 不知道具体怎么操作, 于是我在操作的时候, 按照以下几个步骤执行的:
导航
第一步. tomcat启动, 可以访问tomcat启动页. 通过ip地址+端口号在浏览器访问, 看是否能够访问到启动页.
第二步: 在nginx.conf配置第一个域名, 比如说是www.aaa.com, 让域名映射到tomcat端口里, 然后在浏览器访问这个域名, 看是否能够看到tomcat启动页.
第三步: 在nginx.conf中配置第二个域名, 比如说www.bbb.com, 因为第一个域名成功访问了, 第二个域名就很简单了, copy patse就可以了.
第四步: 结果是两个域名都能跳转到tomcat启动页, 使用ip地址+端口号访问也可以跳转到启动页.
这之前tomcat没有做任何的修改, 就是原tomcat包, 解压, 启动.
第五步: 配置每个域名对应一个tomcat项目. 配置的时候也是一个一个配置, 保证一个成功了, 再配另一个.
----------------------------------------------------------
详细步骤:
第一步: 解压tomcat, 修改配置文件server.xml, 将8080端口改为默认端口80. 这样通过域名访问的时候不用输入端口号. 改完直接启动.
修改server.xml端口
通过ip访问, 能够进入到tomcat启动页
第二步: 配置nginx. 这里有包含好几步, 如下:
参考文章: https://www.cnblogs.com/beyang/p/7718463.html
1. 首先购买https,获取到CA证书,两个域名就得到两套证书
2. 现在就是Nginx和OpenSSL的安装与配置(这里注意,一般情况下一个IP只支持一个SSL证书,那么我们现在要在一个IP上实现多个SSL证书,就必须让Nginx支持TLS SNI,由于默认的OpenSSL是没有打开TLS SNI的)
1)Nginx支持多域名SSL证书是需要OpenSSL库支持的,CentOS5.X的OpenSSL库本身不支持这种特性,需要重新下载编译,步骤如下:
wget https://www.openssl.org/source/old/0.9.x/openssl-0.9.8zh.tar.gz tar zxvf ./openssl-0.9.8zh.tar.gz
2)下载Nginx,进行配置
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx1.8.0 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=../openssl-0.9.8zh
(此处会报错:出现pcre库没找到或zlib没找到,
在CentOS下可以使用 yum -y install pcre-devel zlib-devel 进行安装缺失的组件)
make && make install
3)检查Nginx状态
/usr/local/nginx1.8.0/sbin/nginx -V
得到如下结果就说明配置好了:
nginx version: nginx/1.8.0 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55) built with OpenSSL 0.9.8zh 3 Dec 2015 TLS SNI support enabled #可以看到TLS SNI support打开了 configure arguments: --prefix=/usr/local/nginx1.8.0 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=../openssl-0.9.8zh
4. 配置Nginx 应用服务器(这一步和参考文章不完全一样)
安装nginx以后, nginx会安装在/usr/local/nginx-1.8.0下.
证书放置到 Nginx/conf/cert 目录下
(这里有一个坑: 西部数据上说, 配置nginx的时候要复制crt的全部内容,放在cer头部, 但是我这样做了, 确提示说密码错误. 直接将cer放作为秘钥文件, 不报错)
nginx.conf文件如下
启动Nginx:报错-
nginx: [emerg] getpwnam(“www”) failed错误
错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令:
#/usr/sbin/groupadd -f www
#/usr/sbin/useradd -g www www
然后通过域名访问, 看是否能跳转到localhost:80里去. OK, 在配置下一个域名.
第三步: 配置第二个域名, 配置方法和前一个一模一样, 在nginx.xml中复制一份server,修改对应的域名即可. 然后访问域名, 看是否能够跳转到localhost:80里去.
到目前为止, 可以通过ip地址, 两个域名访问到tomcat了. 也就是, 可以2个域名都可以访问到项目了.
第四步: 配置tomcat中的host. 我这里还没有配置. 后续补充
其他配置默认就可以.
- python django 学习(一)数据库 目的根据已有BBS建立新的网站步骤
- SpringMVC中@RequestMapping的基本用法
- Java面试系列13
- 【Go 语言 时间相关操作 demo】
- redis AOF保存机制
- 用 TensorFlow 让你的机器人唱首原创给你听
- 不用synchronized块的话如何实现一个原子的i++?
- Oracle升级中的参数补充(r9笔记第2天)
- 【Go 语言,服务器模块】日志系统源码
- wait方法和sleep方法的区别
- Java面试系列10
- python django整理(三)页面基础(仿BBS)
- 高并发场景下的httpClient优化使用
- socket.io 相关:Example: A simple chat server(官方 实例)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 神经网络架构搜索——可微分搜索(PC-DARTS)
- 反编译小程序记录
- 使用Selenium WebDriver,Python和Chrome编写您的第一个Web测试
- 神经网络架构搜索——可微分搜索(SGAS)
- 神经网络架构搜索——可微分搜索(Fair-DARTS)
- 一帧图像的Android之旅 :应用的首个绘制请求
- Mac免密码登录linux服务器
- 目标检测算法YOLO-V2详解
- 神经网络架构搜索——可微分搜索(Noisy DARTS)
- 教你使用 Jacoco 统计服务端代码覆盖率
- 如何在树莓派4B上设置EMQX开机自启动
- 如何使用 Ktor 快速开发 Web 项目
- 神经网络架构搜索——二值可微分搜索(BATS)
- UEFI 原理与编程 1 - UEFI开发环境EDK2搭建
- 【Unity】瞎做个宝石迷阵吧!(1)——构建场景