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....
整体步骤:
一、实现域名访问:要申请一个域名,腾讯云申请个域名( 有1元的优惠活动)
二、实现https:要申请SSL证书,腾讯云申请个SSL证书(有免费的DV证书)
三、安装jdk+tomcat
四、实现nginx反向代理:安装并配置nginx
详细步骤
一、申请域名
1、购买域名
2、域名解析
3、备案(要是微信小程序则需要备案)
有固定IP的服务器可以选择www,没有的选择系统提供的TXT码
我都是腾讯申请的,假设域名为hello.club
www解析之后就访问www.hello.club
二、申请SSL证书
购买域名时送SSL证书,如果没送,申请个免费证书
证书申请完后,下载证书并解压,本次我们用Nginx下的证书文件
三、安装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端口
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了。
4)需要部署应用,放到tomcat下即可。
相关推荐
某些公司会墙特定网站,如果你有一个可访问的域名和服务器,就可以通过nginx反向代理来来解决这些问题。比如现在我们用mirror.example.com镜像www.baidu.com,以下是详细操作。