本文主要讲诉了如何搭建服务器环境及相关配置。html
阅读本文大约须要 6 分钟。node
如今的Java项目大多不仅仅采用一个应用服务器(如:Tomcat、Apatch等) 来部署,可能有不少项目须要部署可是80端口只有一个,也有可能有项目是单个应用服务器没法承载的,须要用到负载均衡的等等状况,这里咱们可使用 Nginx 反向代理服务器来完成,所须要的环境为:Nginx、Mysql、JDK等。mysql
Nginx 在维基百科和百度百科中的定义为:异步框架的网页服务器,也能够用做反向代理、负载平衡器和HTTP缓存。他的优势有不少,什么高并发,模块化,性能好等等这里就很少介绍了。nginx
安装 Nginx 主要有两种方式,一种是经过 yum 源直接安装,另外一种是经过编译安装。c++
1、yum 源安装的优势:正则表达式
service
来启动或中止;缺点:redis
2、编译安装的优势:算法
缺点:sql
这里咱们将采用编译安装的方式进行安装。shell
检查并安装 Nginx 所需的依赖软件
gcc:nginx编译依赖gcc环境
安装命令:yum install gcc-c++
pcre:(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用 pcre来解析正则表达式.
安装命令:yum install -y pcre pcre-devel
zlib:该库提供了不少种压缩和解压缩的方式,nginx使用zlib对 http包的内容进行gzip。
安装命令:yum install -y zlib zlib-devel
openssl:一个强大的安全套接字层密码库,囊括主要的密码算法、经常使用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不只支持http 协议,还支持https
安装命令:yum install -y openssl openssl-devel
点击进入 nginx 官网 里面有最新的主线版本、稳定版和历史版本,这里咱们选择最新的主线版本--1.17.6,即:
download
目录来存放下载下来的文件,而后进入该目录:mkdir download
cd download
复制代码
wget https://nginx.org/download/nginx-1.17.6.tar.gz
复制代码
tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6
复制代码
./configure \
--prefix=/mnt/sdc/server/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-pcre=../pcre-8.43
--with-http_ssl_module --with-http_v2_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-stream \
--with-stream_ssl_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_addition_module \
--with-http_realip_module \
--with-http_mp4_module \
--with-ld-opt=-Wl,-E \
--with-cc-opt=-Wno-error \
--with-pcre-jit \
--with-http_stub_status_module
复制代码
注:
执行以前咱们须要下载并解压 pcre ,这里咱们使用 pcre 源码编译的方式让 Nginx 支持 pcre 模块,这里选择的版本是--8.43,下载命令:
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
复制代码
安装以前须要手动建立上面指定的nginx文件夹,分别是 --prefix 指定的目录、 /var/run/nginx、/var/temp 和 /var/temp/nginx
mkdir /var/run/nginx
mkdir /var/temp
mkdir /var/temp/nginx
复制代码
make && make install
复制代码
等待安装完成,验证是否安装成功,能够进入 --prefix 指定的目录查看是否存在conf、sbin、html文件夹,若存在则安装成功。
cd /mnt/sdc/server/nginx/sbin
复制代码
./nginx
复制代码
打开浏览器,输入你服务器的IP地址,看是否出现以下界面,没有出现能够检测一下服务器的安全组或防火墙,看看80和443的端口是否开启,开启便可。
./nginx -s stop
复制代码
./nginx -s quit
复制代码
./nginx -t # 测试配置文件是否有问题,出现test is successful 表明配置文件没有问题
./nginx -s reload # 从新加载配置
复制代码
执行./nginx启动nginx,这里可使用-c指定加载的nginx配置文件,若是不指定,nginx在启动时默认加载conf/nginx.conf 文件。
咱们打开 nginx.conf
vi conf/nginx.conf
复制代码
修改成:
worker_processes 2; # 能够根据服务器的核数来填写
events {
worker_connections 4096; # 能够根据服务器的核数来填写
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on,若是用来进行下载等应用或磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,下降系统的负载。注意:若是图片显示不正常 把这个改为off。
autoindex on; #开启目录列表访问,适合下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
tcp_nodelay on; #防止网络阻塞
keepalive_timeout 120; #长链接超时时间,单位是秒
gzip on; #开启gzip压缩输出
server {
listen 80;
server_name localhost;
}
include /mnt/sdc/server/nginx/project/*.conf; # 加载其余配置,能够分项目建立,xxx.conf.
}
复制代码
使用wget 直接下载:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
复制代码
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
复制代码
yum install -y mysql-community-server
复制代码
这里的安装须要等待一会
service mysqld start # 启动mysql
service mysqld status # 检查mysql的运行状态
service mysqld stop # 中止mysql
service mysqld restart # 重启mysql
复制代码
为了增强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,若是安装的是RPM包,则默认是/var/log/mysqld.log。 只有启动过一次mysql才能够查看临时密码
能够经过命令来查看临时密码:
grep 'temporary password' /var/log/mysqld.log
复制代码
mysql -h127.0.0.1 -uroot -p # 登陆
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx'; # 修改密码为xxxx
复制代码
这里的密码设置须要复杂一点,若是密码设置的太过于简单,会发生以下的提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决方案:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
复制代码
在你想要的地方建立data目录,如在 /mnt/sdc/mysql/data
mkdir -p /mnt/sdc/mysql/data & cd /mnt/sdc/mysql/data
复制代码
停掉mysql服务
mysqladmin -u root -p shutdown
Enter password:
复制代码
把 /var/lib/mysql
的目录迁移到 /mnt/sdc/mysql/data
mv /var/lib/mysql /mnt/sdc/mysql/data/
复制代码
设置 /mnt/sdc/mysql/data/
下 mysql
文件夹的所属和权限
chown -R mysql:mysql /mnt/sdc/mysql/data/mysql
复制代码
修改 socket
为:/mnt/sdc/mysql/data/mysql/mysql.sock
修改 datadir
为:/mnt/sdc/mysql/data/mysql
设置一个SELinux
setenforce 0
复制代码
service mysqld start
复制代码
到 redis 官网下载最新稳定版的 redis,下载地址:redis.io/download,当前最新版为:5.0.7
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
复制代码
下载完成后,解压 redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
复制代码
进入解压的目录
cd redis-5.0.7
复制代码
使用 PREFIX
能够把 redis
安装到指定目录: 这里安装的目录是 /mnt/sdc/server/redis
make PREFIX=/mnt/sdc/server/redis install
复制代码
在解压的 redis
目录下的 utils
里面找到 redis_init_script
,将其拷贝到 /etc/init.d
目录下,重命名为redis
,进入到 /etc/init.d/
目录:
cd utils/
cp redis_init_script /etc/init.d/redis
cd /etc/init.d/
复制代码
使用 vi 编辑 redis
#chkconfig: 2345 80 90
复制代码
REDISPORT=6379 #端口
EXEC=/mnt/sdc/server/redis/bin/redis-server #启动服务的命令路径
CLIEXEC=/mnt/sdc/server/redis/bin/redis-cli #客户端路径
PIDFILE=/var/run/redis_${REDISPORT}.pid #记录pid(进程id)文件路径
CONF="/mnt/sdc/server/redis/${REDISPORT}.conf" #配置文件路径
复制代码
$EXEC $CONF &
复制代码
chkconfig --add redis # 注册成为服务
chkconfig --list redis # 查看开机自启的服务中是否已经有咱们的redis
复制代码
下面表明已加入开机自启的服务
进入redis
目录复制 redis.conf
文件到 /mnt/sdc/server/redis/
文件下,修改起文件为:端口号.conf
。
打开 端口号.conf
:
修改 daemonize no
为 `daemonize yes。
service redis start
service redis stop
复制代码
到此,本文就结束了,若有不当之处敬请指正,一块儿学习探讨,谢谢🙏。