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...

### 构建Linux服务器环境 #### 安装操作系统并更新软件包库 为了构建一个稳定的Linux服务器环境,首先要选择合适的Linux发行版。常见的选择有Ubuntu Server、CentOS等。安装完成后立即执行系统更新以确保所有组件处于最新状态。 对于基于Debian的系统如Ubuntu, 使用如下命令来同步最新的软件列表并升级已安装的应用程序版本[^1]: ```bash sudo apt update && sudo apt upgrade -y ``` 而对于Red Hat系的操作系统比如CentOS,则应运行: ```bash sudo yum update -y ``` #### 配置防火墙和服务管理工具 安全起见,在初步设置阶段应当开启防火墙保护,并允许必要的网络流量通过。例如HTTP(S)请求用于Web访问,默认情况下这些端口会被阻止除非特别指定开放它们。 在Ubuntu上可以利用`ufw`(Uncomplicated Firewall),先激活它再设定规则让特定服务可被外界接触: ```bash sudo ufw enable sudo ufw allow ssh/tcp # 允许SSH连接 sudo ufw allow www # 同意HTTP/HTTPS通信 ``` 至于CentOS平台,推荐采用firewalld作为防护手段之一;同样地调整策略使外部能够触及内部提供的资源。 ```bash sudo systemctl start firewalld.service sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload ``` #### 安装与配置Web服务器(Apache/Nginx) ##### Apache Web Server 按照不同类型的Linux分发板,可以通过下面给出的方法获取Apache HTTP Server: 针对Ubuntu/Debian系列发布版而言, ```bash sudo apt-get install apache2 ``` 而在RPM家族成员里(像CentOS),则需借助yum仓库完成相同操作, ```bash sudo yum install httpd ``` 一旦成功安裝後續步驟便是啟動並設為開機自動加載此服務[^2], ```bash sudo systemctl start apache2 # 对于Debian衍生产品 sudo systemctl enable apache2 # 或者如果是RedHat兼容版本的话则是 sudo systemctl start httpd sudo systemctl enable httpd ``` ##### Nginx Web Server 另一种流行的web server解决方案就是Nginx了。其高效能处理静态文件传输以及反向代理功能深受开发者喜爱。以下是快速入门指南: 首先添加官方源至本地机器以便下载稳定版二进制文件; 接着依照各自系统的特性选取恰当的方式实施部署过程——无论是APT还是YUM都适用; 最后别忘了检验新立的服务能否正常运作哦! 对于Ubuntu用户来说这将是整个流程的一部分: ```bash sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx ``` 而面向CentOS用户的指令集会稍显差异一些: ```bash sudo rpm -Uvh https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm sudo yum install nginx ``` 无论哪种情况都要记得启动该守护进程并且将其加入开机自启项清单内: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` #### 数据库管理系统(MySQL/MariaDB) 数据库是许多应用程序不可或缺的部分。这里介绍两种广泛使用的开源关系型数据库:MySQL 和 MariaDB (MySQL的一个分支). 要在一个典型的Ubuntu环境中建立MariaDB实例,请遵循这一套简单的指导方针: ```bash sudo apt install mariadb-server sudo mysql_secure_installation # 运行脚本加强安全性 ``` 同样的道理适用于其他类Unix OSes上的MySQL部署工作. ```bash sudo yum install mysql-server # 在CentOS环境下 sudo service mysqld start # 开始提供服务 mysqladmin -u root password 'new-password' # 设置root账户密码 ``` #### Java开发环境(JDK & Tomcat Application Server) 当涉及到Java应用时,准备JDK和Tomcat是非常重要的环节。前者提供了编译器和其他必需品用来创建java程序;后者作为一个Servlet容器支持动态网页内容呈现. 安装OpenJDK最简便的办法莫过于依赖默认存储库里的预编译好的二进制包: ```bash sudo apt install default-jdk # Debian风格 sudo yum install java-1.8.0-openjdk-devel # Redhat风格 ``` 紧接着把JAVA_HOME路径写入全局环境变量中去方便后续调用: 编辑/etc/profile 文件追加一行 export JAVA_HOME=/usr/lib/jvm/java-<version>-openjdk-amd64 并使之生效 source /etc/profile . 关于Tomcat方面的工作主要包括解压tarball到合适位置、修改conf/server.xml中的监听地址以及其他个性化定制选项等等... 可以从官方网站下载适合当前体系结构的最佳匹配版本压缩包之后按部就班地展开剩余步骤即可.[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值