问题

  阿里云上,Ubuntu服务器,本来部署的是tomcat,并且使用了https 协议。后来为了静态资源分离集成了 nginx,nginx代理跳转到 tomcat。刚开始直接访问http 网址发现,图片会经过nginx 的代码。但是访问https 网址发现,图片还是只走了apache 。

分析

  因为tomcat 配置了ssl证书,而非 nginx配置ssl。所以当浏览器访问域名的时候,域名解析的时候,直接跳转到https服务了,并没有经过nginx的代理。

  tomcat的端口是8080, nginx的端口是80,单单这一点似乎不影响通过域名访问,奇怪。看来如果域名解析使用了ssl证书,使用到证书的服务器即使端口号不是80,也能够直接通过地址访问,不要加端口号。

  下图是域名解析列表,第一条记录就是申请ssl证书时使用到的。

解决办法

1、删除tomcat上配置的ssl 证书,给nginx 添加ssl证书,重新安装部署

可以参看阿里云的文档:

SSL数字证书Tomcat配置部署指导
  https://help.aliyun.com/video_detail/54217.html

SSL数字证书Nginx配置部署指导
  nginx安装证书:https://help.aliyun.com/video_detail/54216.html

具体的操作是在控制台-安全(云盾)-CA证书服务中

2、此时直接使用http 访问会报“400 Bad Request”错

此时需要 nginx 将http请求转发到https请求

所以还需添加配置:

  #让http请求重定向到https请求
  error_page 497 https://$host$uri?$args;

原创文章,欢迎转载,转载请注明出处!

阿里云上,Ubuntu下配置Nginx,在tomcat中加了https协议就不可以了的更多相关文章

  1. python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试

    简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...

  2. 【新手向】阿里云上ubuntu+flask+gunicorn+nginx服务器部署(二)项目部署

    本项目实现的是类似于ins的图片分享网站.继续(一),当nginx的配置已修改好后,要在远程服务器上部署网站,只需要几个步骤: 1 前期准备 2 将运行网站的代码从github上下载过来 3 下载依赖 ...

  3. Ubuntu下配置Nginx HTTPS

    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...

  4. 阿里云ECS/Ubuntu下JDK、Tomcat、MySQL安装记录

    今天六一儿童节,然后... ... ... ... 然后就是父亲节呀孩子们!!! ———————————————————————割———————————————————————— 同事需要JDK.To ...

  5. 阿里云ECS/Ubuntu下***浅析

    公司项目中需要WebRTC作为即时通讯部分的核心技术,这部分的开发由我负责.实际上手前需要访问谷歌进行源码的下载以及编译,在这里记录下我各种折腾服务器***过程. 目前手上有两台阿里云ESC: 华南节 ...

  6. Centos6.8阿里云linux系统下配置LAMP运行环境-mysql5.6

    1.Apache #安装apache软件 yum -y install httpd #启动httpd服务 service httpd start #设置开机启动chkconfig --list htt ...

  7. Ubuntu下配置Nginx+PHP

    1.安装Nginxapt-get install nginx 2.启动Nginxservice nginx start 3.访问服务器IP 如果看到“Welcome to nginx!”说明安装好了. ...

  8. Ubuntu下基于Nginx实现Tomcat集群负载均衡

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   Nginx是一款HTTP和反向代理服务器,有关它的介绍可以到网上搜一下,很多很多,不再累述.这里,我们记录一下Nginx ...

  9. ubuntu下配置nginx+uwsgi+django

    服务器配置是Ubuntu14.04 64位OS ubuntu14.04默认是安装好了python2.7版本不用自己安装了. 先更新下源 sudo apt-get update 第一步先安装pip su ...

随机推荐

  1. Python学习第十篇——函数初步

    def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...

  2. 大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

    Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞.在敦促每位用户尽快升级系 ...

  3. mysql数据库和JDBC学习

    数据库概念: 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. ---------数据库服务器,mysql(管理) 数据库服务器---->N多库-- ...

  4. java web 常见异常及解决办法

    javax.servlet.ServletException: javax/servlet/jsp/SkipPageException 重启tomcat, javax.servlet.ServletE ...

  5. Java 集合的简单理解

    集合(容器) Java的集合类分别是Collection接口和Map接口派生而来. Collection接口 对于实现Collection接口的子类,都会实现Collection接口中抽象方法,所以他 ...

  6. php使用gd库输出中文内容的图片

    正如标题所说那样,本文只讨论输出内容全部为中文或者包含中文的情况.如果内容全是字母或者其他字符的话,可以参考这篇博客:生成验证码 问题 此处要注意,标题中为什么要区别windows和linux分别实现 ...

  7. Laravel认证模块开发

      菜鸟学Laravel(二) Laravel认证模块开发 laravel内部已经做好了一个简单的登录模块,我们可以用如下命令来生成: 1 php artisan make:auth 我们查看一下路由 ...

  8. java Date时间的各种转换方式和Mysql存时间类型字段的分析

    一:各种Date之间的转换方法 public class TimeTest { public static void main(String[] args) { Date date = new Dat ...

  9. [转帖]ipvsadm命令参考及其应用例子

    ipvsadm命令参考及其应用例子 https://blog.csdn.net/orichisonic/article/details/47375227 只是简单创建了 service和添加serve ...

  10. Day 4-11 re正则表达式

    正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是re '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' ...