阿里云Centos7中nginx配置http转https并转发多tomcat

时间:2024-04-09 13:58:46

环境

系统:阿里云centos7
nginx版本:1.12.2
tomcat版本:8.5
jdk:8

准备

1.需要一个域名(可以用免费的或者买一个便宜点的)
2.系统及各种其他软件


不足之处望指出,有更好的处理方式也希望能学习交流,谢谢。

获取域名和免费的https证书

购买域名

  1. 进入阿里云选择域名的页面 https://wanwang.aliyun.com/domain/searchresult
  2. 搜索想要的域名进行购买(便宜点的5-7块一年,“.com”后缀的域名最贵)
  3. 购买完成后需要实名认证,按照步骤来即可。
  4. 完成实名认证后并且审核通过后,域名即可使用 。

购买https证书

  1. 进入购买阿里云https证书页面 https://common-buy.aliyun.com/?spm=5176.10695662.958455.3.7cb57d54QVg1BU&commodityCode=cas#/buy

  2. 按照下图选择https证书(有一个免费的https证书)
    阿里云Centos7中nginx配置http转https并转发多tomcat

  3. 完成购买后进入证书管理页面,完善证书信息,如下图:
    阿里云Centos7中nginx配置http转https并转发多tomcat
    3.1 点击“补全” 完善https证书要绑定的域名。
    3.2 提交审核,审核完成后即可使用,结果如下图:
    阿里云Centos7中nginx配置http转https并转发多tomcat

http转https

下载https证书

  1. 点击我的证书页面的 下载 连接,如下图:
    阿里云Centos7中nginx配置http转https并转发多tomcat

  2. 在下载证书页面选择安装https证书的服务器后点击下载,我这边用的nginx做https转发服务器,tomcat跑具体项目,因此选择的第一次,如下图:
    阿里云Centos7中nginx配置http转https并转发多tomcat

  3. 下载证书后将其传送到阿里云centos7服务器的下载文件目录存放。

下载安装nginx

  1. cd /software 切换到存放下载文件的目录
  2. wget http://nginx.org/download/nginx-1.12.2.tar.gz 下载
  3. tar -zxvf nginx-1.12.2.tar.gz 解压
  4. yum install pcre-devel zlib-devel gcc gcc-c++ openssl-devel -y 安装nginx依赖库
  5. ./configure --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module 设置安装参数
  6. make && make install 编译安装

nginx安装配置https证书

安装完成后,编辑nginx中的conf下的nginx.conf文件

#在nginx的https server位置加如下配置

 #设置websocket代理服务器
 upstream websocket {
        server localhost:8080;
  }

server {
    listen 443; #监听的端口
    server_name localhost; 
    #开启ssl验证
    ssl on; 
    root html;
    index index.html index.htm;
    #证书位置
    ssl_certificate   cert/214944315780656.pem;
    #证书秘钥位置
    ssl_certificate_key  cert/214944315780656.key;
    #ssl会话超时时间
    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_prefer_server_ciphers on;

	#根据项目名称代理跳转具体的项目
    location /eosp {
    	#代理跳转地址
        proxy_pass http://websocket/eosp;
        #设置代理的host信息(websocket时因为后面少加了端口,导致wss一直连不上,花了很长时间)
        proxy_set_header Host $host:$server_port;
        proxy_http_version 1.1;
        #设置可以代理websocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    location / {
        root html;
        index index.html;
    }
}

  1. http server下加如下配置,使http自动转https访问
		#重定向到https
        rewrite ^(.*)$  https://$host$1 permanent;
  1. 这里可以根据域名后面的名称跳转具体的项目或者服务器

多Tomcat配置

此处参考博客地址:https://blog.csdn.net/name_chc/article/details/73332272

cd /software 切换到下载文件存放目录
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz 下载tomcat
tar -zxvf apache-tomcat-8.0.53.tar.gz 解压tomcat
mv apache-tomcat-8.0.53 tomcat8.5 修改解压后的tomcat文件夹名称
mv -r tomcat8.5 /usr/local/tomcat 移动tomcat文件夹到/usr/local/tomcat目录下,没有tomcat目录 mkdir /usr/local/tomcat 新建后再移动
cd /usr/local/tomcat 切到tomcat目录
在tomcat目录拷贝三个tomcat8.5并更名分别为tomcat-8080、tomcat-9000、tomcat-8090

vim /etc/profile 编辑配置文件
增加如下配置(建议增加在末尾处)

#tomcat1配置
TOMCAT_HOME_8090=/usr/tomcat/tomcat-8090
CATALINA_HOME_8090=/usr/tomcat/tomcat-8090
CATALINA_BASE_8090=/usr/tomcat/tomcat-8090
export  TOMCAT_HOME_8090  CATALINA_HOME_8090 CATALINA_BASE_8090

#tomcat2配置
TOMCAT_HOME=/usr/tomcat/tomcat-8080
CATALINA_HOME=/usr/tomcat/tomcat-8080
CATALINA_BASE=/usr/tomcat/tomcat-8080
export  TOMCAT_HOME  CATALINA_HOME CATALINA_BASE

#tomcat3配置
TOMCAT_HOME_9000=/usr/tomcat/tomcat-9000
CATALINA_HOME_9000=/usr/tomcat/tomcat-9000
CATALINA_BASE_9000=/usr/tomcat/tomcat-9000
export  TOMCAT_HOME_9000  CATALINA_HOME_9000 CATALINA_BASE_9000

source /etc/profile 让配置文件立即生效
修改tomcat的关闭启动文件
作用:tomcat的关闭文件没修改的时候会将所有的tomcat关闭,为关闭指定tomcat不影响其他的tomcat,因此需要增加一些参数
startup.sh修改如下

需要在exec "$PRGDIR"/"$EXECUTABLE" start "[email protected]"前增加如下配置

export JAVA_HOME=/usr/jdk/jdk1.7.0_80  #jdk的目录
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$CATALINA_HOME_9000  

#注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)
export CATALINA_BASE=$CATALINA_BASE_9000 #注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)
shutdown.sh修改如下

需要在exec "$PRGDIR"/"$EXECUTABLE" start "[email protected]"前增加如下配置

export JAVA_HOME=/usr/jdk/jdk1.7.0_80  #jdk的目录
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$CATALINA_HOME_9000 

#注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)
export CATALINA_BASE=$CATALINA_BASE_9000#注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)

注意端口号需要在tomcat下面的conf文件夹中修改server.xml

修改端口号的地方为以前是8080现在被改成了9000

    <Connector port="9000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

光修改端口号可不行还需要修改的配置如下

这里原始的是8005被修改成了8007(因为这里存在3个tomcat所以现在被修改成了8007)

<Server port="8007" shutdown="SHUTDOWN">

这里原始的是8009被修改成了8011(因为这里存在3个tomcat所以现在被修改成了8011)

<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

以上条件满足的是不同的tomcat都需要修改以上配置且不能相同,如果tomcat启动不报错就算完成了

注意:改配置文件的user配置可能与自己配的不一致


至此核心步骤基本都记录了,有不当之处望指正。