Centos7 Nginx反向代理Tomcat
序
在服务器搭建的solo一直没有用Nginx,并且直接在Tomcat 把端口改成80,443,并且安装SSL证书。现因需添加其他服务,故启用Nginx,便于方便管理。
一、下载Nginx安装包
http://nginx.org/en/download.html,选择适合自己的Nginx版本,这里选的是最新版,下载后并上传到Centos服务器。
二、安装之前准备工作
执行下面的命令,安装nginx依赖库
1 yum install gcc-c++
2 yum install pcre
3 yum install pcre-devel
4 yum install zlib
5 yum install zlib-devel
6 yum install openssl
7 yum install openssl-devel
解压安装包
1 tar -zxvf nginx-1.15.12
切换到解压目录下,执行
1 ./configure
如果没错错误出现,说明当前可以安装Nginx,执行
1 make
2 make install
成功后,默认安装位置为/usr/local/nginx
三、设置开机自启动Nginx
执行以下命令写自启动命令
1 cd /lib/systemd/system/
2 vim nginx.service
文件内容如下
1 [Unit]
2 Description=nginx
3 After=network.target
4 [Service]
5 Type=forking
6 ExecStart=/usr/local/nginx/sbin/nginx
7 ExecReload=/usr/local/nginx/sbin/nginx reload
8 ExecStop=/usr/local/nginx/sbin/nginx quit
9 PrivateTmp=true
10 [Install]
11 WantedBy=multi-user.target
退出并保存文件,执行systemctl enable nginx.service
使nginx开机启动。
启动systemctl start nginx.service
终止systemctl stop nginx.service
重启systemctl restart nginx.service
四、验证是否成功
输入网址http://xxx.xxx.xxx.xxx
若出现欢迎界面,即安装成功。
五、反向代理Tomcat
在这之前tomcat已可以加端口正常访问,我的tomcat已经默认80 443端口,并添加SSL证书,把证书撤掉,端口改回默认8080 8443端口。
购买下载SSL证书,个人反正就是免费的,阿里申请一个。下载Nginx版本的SSL 放到 /usr/local/nginx/cert
中
在目录/usr/local/nginx/conf
下,并修改配置文件nginx.conf
注意在修改的时候 一定要备份! 真是血的教训!
在文件 http {}中进行配置,Nginx默认是监听80端口的,还有好多注释,不用管,删掉
1 upstream myblog{
2 server localhost:8080;
3 }
4 server {
5 listen 80;
6 server_name aeneag.xyz www.aeneag.xyz;
7 rewrite ^/(.*)$ https://aeneag.xyz/$1 permanent;
8 }
9 server {
10 listen 443 ssl;
11 server_name aeneag.xyz www.aeneag.xyz;
12 root html;
13 index index.html index.htm;
14 ssl_certificate ../cert/aeneag.xyz.pem;
15 ssl_certificate_key ../cert/aeneag.xyz.key;
16 ssl_session_timeout 5m;
17 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
18 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
19 ssl_prefer_server_ciphers on;
20 location / {
21 root html;
22 index index.html index.htm;
23 proxy_pass http://myblog$request_uri;
24 proxy_set_header Host $host:$server_port;
25 proxy_set_header X-Real-IP $remote_addr;
26 client_max_body_size 10m;
27 }
28 }
注意:新版的Nginx 没有 ssl on;
变成了 listen 443 ssl;
保存退出后,在/usr/local/nginx/sbin
目录下,执行./nginx -t
查看配置文件是否正确,如果正确重启Nginx服务systemctl restart nginx.service
Tomcat那边,需更改server.xml
配置文件中的host节点
六、问题解决
因之前linux服务器上只有tomcat一个服务,并没有用Nginx,现需在服务器上跑其他项目,故更改以便管理。