nginx java mysql_CentOS 7 搭建Java Web服务(Nginx+Tomcat+MySql)

对于一个扎根Java编程的程序员来说,搭建Java Web服务是一个必备能力,所以在这里总结下,写了个安装教程。

教程环境为:

CentOS 7.5 mini + Nginx 1.15.8 + JDK1.8.0_201 + Tomcat 9.0.14 + MySql 5.7.22

1.安装Nginx

安装Nginx是采用编译再安装的形式,所以要先安装编译库。

安装编译依赖库

yum install -y gcc gcc-c++ make kernel-headers glibc-headers zlib-devel openssl openssl-devel pcre-devel

下载安装Nginx

wget -O nginx.tar.gz http://nginx.org/download/nginx-1.15.8.tar.gz

tar -zxvf nginx.tar.gz

#进入目录

cd nginx-*

添加 header协议头增强库

wget https://codeload.github.com/openresty/headers-more-nginx-module/zip/master -O headers-more-nginx-module-master.zip

unzip headers-more-nginx-module-master.zip

编译配置

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --add-module=headers-more-nginx-module-master

编译并安装

make && make install

查看版本

sbin/nginx -v

#修改配置

vi /usr/local/nginx/conf/nginx.conf

配置内容参考如下:

#---------请自行参考注释修改----------

server {

#============监听的Nginx端口========

listen 80;

server_name localhost;

charset utf-8; #默认编码

#access_log logs/host.access.log combined;

root /usr/local/apache-tomcat/webapps/ROOT;

#配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。

location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$

{

expires 7d;

}

location ~ .*\.(js|css)$

{

expires 1h;

}

#============对 java后台(jsp、servlet) 请求的处理=============

location ~ .*\.^(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|js|css)$

{

index index.jsp;

#==========Nginx提供的代理============

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#=== 如果遇到 非静态 的请求就进入该服务器(tomcat)===

proxy_pass http://127.0.0.1:8080;

}

}

#---------END----------

启动

/usr/local/nginx/sbin/nginx

如果要设置https协议,可参考如下:

server {

listen 80;

server_name www.kioye.cn;

跳转到https协议

rewrite ^(.*)$ https://$server_name$1 permanent;

}

server {

listen 443 ssl;

server_name www.kioye.cn;

#root html;

charset utf-8;#默认编码

index index.html index.htm;

# HTTPS server

ssl_certificate /data/release/www.kioye.cn/Nginx/1_www.kioye.cn_bundle.crt; #

ssl_certificate_key /data/release/www.kioye.cn/Nginx/2_www.kioye.cn.key; #server {

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # server_name localhost;

ssl_ciphers

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;

ssl_session_cache shared:SSL:50m; # ssl_certificate cert.pem;

ssl_prefer_server_ciphers on; # ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;

location / {

root /usr/local/apache-tomcat/webapps/ROOT;

index index.jsp index.do; # ssl_prefer_server_ciphers on;

#==========Nginx提供的代理============

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8080;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection 'upgrade';

proxy_set_header Host $host;

proxy_cache_bypass $http_upgrade;

}

}

提示:访问出现403,则需要设置文件chown -R centos:centos html

以及chmod -R 755 html

其他命令:

/usr/local/nginx/sbin/nginx -s stop #停止

/usr/local/nginx/sbin/nginx -s reload #重新载入配置文件

/usr/local/nginx/sbin/nginx -s reopen #重启

2.安装JDK

因为CentOS中下载大的安装包容易失败,故所有需要的安装包都是提前下载好再烤到CentOS系统内的。

JDK网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

这里选择下载的是:jdk-8u201-linux-x64.rpm

查看是否存在其它版本的Java环境(如果有请先卸载!)

rpm -qa|grep java

rpm -e --nodeps

下载安装包

安装

sudo rpm -ivh jdk-8u201-linux-x64.rpm

查看当前环境

java -version

显示如下为安装成功

java version "1.8.0_201"

Java(TM) SE Runtime Environment (build 1.8.0_201-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

3.安装Tomcat

Tomcat网址:https://tomcat.apache.org/download-90.cgi

这里选择下载的是:9.0.14.tar.gz

wget -O apache-tomcat.tar.gz http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz

解压下载好的压缩包

tar zxvf apache-tomcat.tar.gz

mv apache-tomcat-* /usr/local/apache-tomcat

cd /usr/local/apache-tomcat

配置tomcat服务

vim conf/server.xml

#----建议配置内容(可选)------

#将protocol="HTTP/1.1"协议中 添加 URIEncoding 为 UTF-8 编码。端口也在下面的参数,可以自行修改。

附加内容:

给tomcat设置管理用户和密码

打开配置,在tomcat目录下操作

vim conf/tomcat-users.xml

添加如下内容:(访问tomcat管理页面的密码)

附录:请求限制设置参考(可选)

#1.只允许127.0.0.1访问:

#2.根据主机名进行限制:

重启服务/usr/local/apache-tomcat/bin/startup.sh

现在就可以打开网页访问了:http://127.0.0.1:8080/

4.安装MySql

先添加mysql的rpm源,再用yum安装mysql

// 查看是否安装MariaDB(如果安装了,请先卸载)

rpm -qa | grep mariadb

rpm -e --nodeps mariadb-libs

进入相应目录

cd /usr/local/src

下载mysql的rpm安装源

安装rpm源

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

直接安装mysql-server(默认最新版)

yum -y install mysql-server

安装完成了,配置部分请参考下面的 rpm安装mysql

配置Mysql

// ----下面是一些初始化配置-----

// 关闭启动的表授权(取消验证root密码)

vim /etc/my.cnf

添加一条语句:

skip-grant-tables

// 启动服务

systemctl start mysqld.service

// 进入mysql管理

mysql -u root

------以下为mysql命令界面------

选择表

use mysql;

修改密码

update mysql.user set authentication_string=password('0000') where user='root';

更新权限

flush privileges;

退出

exit;

// 开启表授权验证

vim /etc/my.cnf

删除刚刚添加的语句

skip-grant-tables

// (接上)配置默认编码为utf8

在[mysqld]下添加编码配置,如下内容

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

// 重启服务

systemctl restart mysqld.service

// 进入mysql管理

mysql -u root -p

------以下为mysql命令界面------

设置关闭密码策略

set global validate_password_policy=0;

设置关闭有效密码最短长度

set global validate_password_length=3;

设置密码

set PASSWORD = PASSWORD('0000');

设置用户永不过期

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

生效

flush privileges;

查看 MySQL 的字符集:

show variables like '%character%';

为root开启远程登录

use mysql;

update user set host='%' where user='root' and host='localhost';

(可选)新建一个开启远程登录用户(用户remote密码0000)

GRANT ALL PRIVILEGES ON . TO 'remote'@'%' IDENTIFIED BY '0000' WITH GRANT OPTION;

生效

flush privileges;

quit;

好了现在mysql已经可以正常工作了。

添加自启操作是:systemctl enable mysqld.service

5.防火墙设置

对于非本地访问则需要配置一下防火墙,下面是一些开启访问权限的操作。

// 临时关闭SELINUX

setenforce 0

// 永久关闭SELINUX

vim /etc/selinux/config

// 修改如下:(重启机器后生效)

SELINUX=enforcing -> SELINUX=disabled

// 开放端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

6.设置自启

由于有些服务是第三方编译安装的,并不会加入系统管理中,故需要自行编写控制脚本,在添加到自启动列表中。

6.1) nginx自启配置

// 编写nginx控制脚本

vim /etc/init.d/nginx

#! /bin/sh

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: starts the nginx web server

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DESC="nginx daemon"

NAME=nginx

DAEMON=/usr/local/nginx/sbin/$NAME

CONFIGFILE=/usr/local/nginx/$NAME.conf

PIDFILE=/usr/local/nginx/logs/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

set -e

[ -x "$DAEMON" ] || exit 0

do_start() {

$DAEMON -c $CONFIGFILE || echo -n "nginx already running"

}

do_stop() {

kill -INT cat $PIDFILE || echo -n "nginx not running"

}

do_reload() {

kill -HUP cat $PIDFILE || echo -n "nginx can't reload"

}

case "$1" in

start)

echo -n "Starting $DESC: $NAME"

do_start

echo "."

;;

stop)

echo -n "Stopping $DESC: $NAME"

do_stop

echo "."

;;

reload|graceful)

echo -n "Reloading $DESC configuration..."

do_reload

echo "."

;;

restart)

echo -n "Restarting $DESC: $NAME"

do_stop

do_start

echo "."

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2

exit 3

;;

esac

exit 0

// 给文件添加执行权限

chmod +x /etc/init.d/nginx

// 添加到自启列表

chkconfig --add ningx

chkconfig --level nginx 2345 on

6.2) Tomcat自启配置

7.// 编写tomcatd控制脚本

vim /etc/init.d/tomcatd

#!/bin/bash

#

/etc/rc.d/init.d/tomcat

init script for tomcat precesses

#

processname: tomcat

description: tomcat is a j2se server

chkconfig: 2345 86 16

description: Start up the Tomcat servlet engine.

if [ -f /etc/init.d/functions ]; then

. /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ]; then

. /etc/rc.d/init.d/functions

else

echo -e "\atomcat: unable to locate functions lib. Cannot continue."

exit -1

fi

RETVAL=$?

CATALINA_HOME="/usr/local/apache-tomcat-9.0.1" #tomcat安装目录

case "$1" in

start)

if [ -f $CATALINA_HOME/bin/startup.sh ];

then

echo $"Starting Tomcat"

$CATALINA_HOME/bin/startup.sh

fi

;;

stop)

if [ -f $CATALINA_HOME/bin/shutdown.sh ];

then

echo $"Stopping Tomcat"

$CATALINA_HOME/bin/shutdown.sh

fi

;;

*)

echo $"Usage: $0 {start|stop}"

exit 1

;;

esac

exit $RETVAL

// 给文件添加执行权限

chmod +x /etc/init.d/tomcatd

// 添加到自启列表

chkconfig --add tomcatd

chkconfig --level 2345 tomcatd on

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值