centos7+nginx反向代理tomcat+https://域名访问

目 标:实现“https://域名”访问tomcat主页
OS环境:centos7.4(腾讯云服务器)
软件准备(离线包):tomcat8 jdk1.8 nginx1.14 pcre(pcre2应该也行)
工具:filezilla(FTP工具) Scrt(SSH工具)
nginx下载http://nginx.org/en/download....
centos7+nginx反向代理tomcat+https://域名访问

整体步骤
一、实现域名访问:要申请一个域名,腾讯云申请个域名( 有1元的优惠活动)
二、实现https:要申请SSL证书,腾讯云申请个SSL证书(有免费的DV证书)
三、安装jdk+tomcat
四、实现nginx反向代理:安装并配置nginx

详细步骤
一、申请域名
1、购买域名
2、域名解析
3、备案(要是微信小程序则需要备案)
有固定IP的服务器可以选择www,没有的选择系统提供的TXT码
我都是腾讯申请的,假设域名为hello.club
centos7+nginx反向代理tomcat+https://域名访问
www解析之后就访问www.hello.club
二、申请SSL证书
购买域名时送SSL证书,如果没送,申请个免费证书
证书申请完后,下载证书并解压,本次我们用Nginx下的证书文件
centos7+nginx反向代理tomcat+https://域名访问
三、安装jdk+tomcat,下载离线包上传安装就行,记得修改下jdk的环境变量
四、实现nginx反向代理,安装nginx并配置
1、安装编译环境make zlib libtool g++ openssl

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2、安装pcre
1)把pcre的包放到/usr/src/下(也可以用wget直接下载)然后解压

[root@VM_0_11_centos src]# tar zxvf pcre-8.35.tar.gz

2)接着进入安装目录,编译安装

[root@VM_0_11_centos pcre-8.35]# ./configure
[root@VM_0_11_centos pcre-8.35]# make && make install

3)安装完成后查看版本

[root@VM_0_11_centos pcre-8.35]# pcre-config --version

3、安装nginx
1)把nginx包放到我/usr/scr/下(也可以用wget直接下载),然后解压

[root@VM_0_11_centos src]# tar nginx-1.14.0.tar.gz

2)解压后进入安装目录,编译安装,默认安装目录/usr/local/nginx

[root@VM_0_11_centos nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@VM_0_11_centos nginx-1.14.0]# make && make install

3)安装成功后查看版本

/usr/local/nginx/sbin/nginx -v

4)查看nginx是否启动

[root@VM_0_11_centos sbin]# ps -ef|grep nginx 
root     18290 18191  0 21:34 pts/5    00:00:00 grep --color=auto nginx

5)启动

[root@VM_0_11_centos sbin]# ./nginx

6)访问主页,默认80端口
centos7+nginx反向代理tomcat+https://域名访问
4、实现nginx配置https,并反向代理tomcat
1)把证书下的crt文件和key文件传到/usr/local/nginx/conf下,并修改配置文件nginx.conf,增加以下内容(放在server { listen 80...}之上就行)
www.hello.club 是我们之前申请的域名

upstream tomcat1 {
    server 127.0.0.1:8080 fail_timeout=0;
}
    server {
        listen 443;
        server_name www.hello.club;  #修改域名
        ssl on;
        ssl_certificate 1_hello.club_bundle.crt; #修改证书文件
        ssl_certificate_key 2_hello.club.key;  #修改证书文件
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Proto https;
                proxy_redirect off;
                proxy_connect_timeout      240;
                proxy_send_timeout         240;
                proxy_read_timeout         240;
                # note, there is not SSL here! plain HTTP is used
                proxy_pass http://tomcat1;  #修改配置,与上面tomcat1一致
        }
    }

2)修改tomcat配置文件
redirectPort改为443,并增加proxyPort="443"

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"
               proxyPort="443" />

redirectPort改为443

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

3)重启tomcat,重启nginx,访问域名,OK了。
centos7+nginx反向代理tomcat+https://域名访问
4)需要部署应用,放到tomcat下即可。

相关推荐