Linux部署tomcat服务器流程(Redhat+OpenJDK11+Nginx)

最近项目有需要,记录一下流程和遇到的坑。

需要一台Linux server,我这里使用的是redhat9。

1.安装openjdk,这里根据Redhat官网来就好

sudo yum install java-11-openjdk

如果你是deb类系统,那就把yum换成apt,suse类的自行查询,不赘述

2.安装nginx,也是根据Redhat官网来装,注意开放80/443端口

# install
sudo yum install nginx

# allow port
sudo firewall-cmd --permanent --add-port={80/tcp,443/tcp}
sudo firewall-cmd --reload

// start nginx
sudo systemctl enable nginx

nginx的相关命令也可以参考这篇blog,用得多的一条命令,重启nginx服务:

systemctl reload nginx.service

3.如果有域名的话,可以用浏览器访问这个域名,不出意外的话,页面会显示nginx错误页面,而且是http不安全方式的,这个时候就需要这样一条命令:

#将httpd_can_network_connectSELinux 布尔值参数设置为1,以便将 SELinux 设置为允许 NGINX 转发流量
sudo setsebool -P httpd_can_network_connect 1

也是参考的官网

运行成功后就可以正常访问,看到的就是nginx的welcome页面

4.配置nginx, nginx的配置文件默认在/etc/nginx/nginx.conf,使用sudo vim编辑之。

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        return 301 https://$host$request_uri;
    }

  server {
       # listen       80;
       # listen       [::]:80;
       listen 443 ssl;

    ssl_certificate #your pem file location;
    ssl_certificate_key #your key file location;
 
 location / {
        #       proxy_pass http://localhost:8080;

        }

 location /app1 {
               proxy_pass http://localhost:8080/app1;

        }

 location /app2 {
               proxy_pass http://localhost:8081/app2;

        }
}


简而言之,第一个server配的就是本来80端口,现在进行301重定向,为的是将域名强制设成https访问。第二个server里就注释掉了80端口,启用了443 ssl,这个就是https的端口了,第一个server的连接就会重定向到这里;紧接着两个ssl证书项目,一个私钥,一个公钥,也就是https证书项,配置它们的路径,这个网上相关的教程很多也不赘述;下面的location就是设置路由了,/app1和/app2设置了不同的端口,因为要配置多台tomcat server,自然端口不能冲突。

设置好后保存退出,使用sudo systemctl reload nginx.service重启nginx,如果失败且查看问题遇到“BIO_new_file() failed (SSL: error:8000000D:system library::Permission den>”这样的错误,说明linux安全做了限制,参考stackoverflow试一下这条命令:

sudo setenforce 0

然后再reload一下就好了。

5.解压你的tomcat安装包,启动停止就跑bin里的脚本,如果想部署多台,可以参考这篇blog,注意你配置的app端口+路由和你nginx.conf文件里location保持一致!

end...

你可能感兴趣的:(JavaWeb,java,linux,服务器,nginx)