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,现需在服务器上跑其他项目,故更改以便管理。

今天你努力了吗
    评论
    0 评论
avatar

取消