阿里云Centos7中nginx配置http转https并转发多tomcat
环境
系统:阿里云centos7
nginx版本:1.12.2
tomcat版本:8.5
jdk:8
准备
1.需要一个域名(可以用免费的或者买一个便宜点的)
2.系统及各种其他软件
不足之处望指出,有更好的处理方式也希望能学习交流,谢谢。
获取域名和免费的https证书
购买域名
- 进入阿里云选择域名的页面 https://wanwang.aliyun.com/domain/searchresult
- 搜索想要的域名进行购买(便宜点的5-7块一年,“.com”后缀的域名最贵)
- 购买完成后需要实名认证,按照步骤来即可。
- 完成实名认证后并且审核通过后,域名即可使用 。
购买https证书
-
进入购买阿里云https证书页面 https://common-buy.aliyun.com/?spm=5176.10695662.958455.3.7cb57d54QVg1BU&commodityCode=cas#/buy
-
按照下图选择https证书(有一个免费的https证书)
-
完成购买后进入证书管理页面,完善证书信息,如下图:
3.1 点击“补全” 完善https证书要绑定的域名。
3.2 提交审核,审核完成后即可使用,结果如下图:
http转https
下载https证书
-
点击我的证书页面的 下载 连接,如下图:
-
在下载证书页面选择安装https证书的服务器后点击下载,我这边用的nginx做https转发服务器,tomcat跑具体项目,因此选择的第一次,如下图:
-
下载证书后将其传送到阿里云centos7服务器的下载文件目录存放。
下载安装nginx
-
cd /software
切换到存放下载文件的目录 -
wget http://nginx.org/download/nginx-1.12.2.tar.gz
下载 -
tar -zxvf nginx-1.12.2.tar.gz
解压 -
yum install pcre-devel zlib-devel gcc gcc-c++ openssl-devel -y
安装nginx依赖库 -
./configure --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module
设置安装参数 -
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;
}
}
- http server下加如下配置,使http自动转https访问
#重定向到https
rewrite ^(.*)$ https://$host$1 permanent;
- 这里可以根据域名后面的名称跳转具体的项目或者服务器
多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
下载tomcattar -zxvf apache-tomcat-8.0.53.tar.gz
解压tomcatmv 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配置可能与自己配的不一致
至此核心步骤基本都记录了,有不当之处望指正。