新服务器环境安装和项目部署流程

记录一下在服务器部署项目的过程,长期更新
涉及:Java、tomcat、nginx、mysql、ssl、域名、服务器
docker方式搭建服务器环境参考:使用docker快速搭建服务器环境

环境
  • 阿里云ECS服务器、阿里云购买的域名、阿里云购买的ssl
  • CentOS 6.9 64位
购买服务器
  • 配置安全组
    配置常用端口访问,比如22、8080、3306等

  • 购买域名

  1. 购买域名为 xxxxx.com
  2. 购买后,在阿里云里可以购买免费的ssl证书(百度有教)。
  3. 解析xxx.xxxxx.com到服务器ip
  4. 备案。国内服务器需要备案,否则无法通过域名访问到你的网站。你也可以选择使用https方式暂时免去备案
服务器环境配置
  • 远程登录服务器
    Windows下远程管理服务器软件:WinSCP
    Windows下SSH登录服务器软件:Xshell
    Mac下远程管理服务器软件:ForkLift
    Mac下SSH登录服务器软件:autossh工具

  • 下载Java
    安装包下载
    注意,需要手动下载,因为oracle下载Java的时候有个同意协议的操作,如果用命令行方式安装Java,会出问题。所以直接手动下载,然后上传到服务器内即可。我安装的是server-jre-8u181-linux-x64.tar.gz

  • 安装Java
    我的解压路径

/usr/java/

命令行操作

tar -zxvf jdk-8u161-linux-x64.tar.gz
vi /etc/profile 
source /etc/profile

vi编辑profile文件时,输入下面的文字(注意Java解压路径)

#set java environment 
JAVA_HOME=/usr/java/jdk1.8.0_161 
JRE_HOME=/usr/java/jdk1.8.0_161/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 
export JAVA_HOME JRE_HOME CLASS_PATH PATH
  • 下载Tomcat
    下载地址
    和Java一样,手动下载,然后上传到服务器

  • 安装Tomcat
    把下载下来的压缩包解压到目录,我的解压路径

/usr/tomcat/

命令行操作

tar zxvf apache-tomcat-9.0.6.tar.gz
  • 设置Tomcat Host Manager 网页访问(可选)
    进入 tomcat根目录/conf/tomcat-users.xml,进入以下代码添加用户
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin123" roles="admin-gui,manager-gui"/>

这样admin这个用户就可以用网页登录Host Manager、Server Status和Manager App。如果不做此操作,日后要发布应用必须使用命令行。

  • 设置tomcat开机自启动(推荐)
    进入 /etc/rc.d/rc.local 加入以下配置,注意路径
export JAVA_HOME=/usr/java/jdk1.8.0_161
/usr/tomcat/apache-tomcat-9.0.6/bin/startup.sh start

然后设置rc.local为可执行文件,并重启服务器

chmod +x /etc/rc.d/rc.local
shutdown -r now

重启完成后重新登录服务器,检查tomcat是否启动。如果什么都不返回,则tomcat服务未开启

lsof -i:8080

如果报错找不到命令,则yum方式安装

yum install lsof
使用Nginx

如果需要在服务器里多域名访问多个项目,如公司产品和公司官网。则可以使用nginx进行代理。注意前提是购买的域名已经解析到了服务器(将ip解析到xxx.xxxxx.com)

需要注意的是,安装pcre的时候,在解压了pcre包后,进行make等操作成功以后,要将pcre文件夹放/usr/src下,而后在编译nginx时,需要这样:
./configure --with-pcre=/usr/src/pcre目录
make
make install
否则可能会报错找不到pcre
  1. 如果你要所有项目都使用https,则需要将他们配置在443端口的ssl配置节点。
  2. nginx访问静态资源可能会报错Permission Denied,此时应该讲nginx用户改为root,如代码里第一行
  3. 关于域名ssl证书的设置,阿里云里有教
  4. 阿里云可以配置免费ssl,但是只能配置单域名ssl
  5. 购买的域名一般为 xxx.com ,如果你希望别人通过 top.xxx.com 来访问你的项目,则除了需要配置nginx转发以外,还需要去阿里云控制台,解析 top.xxx.com 这个域名到服务器ip。只配置nginx是不行的,这里经常忽视!

user  root; # 用户为root
worker_processes  1;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log ;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;


    # HTTPS server 证书

    server {
        listen 443;
        server_name xxx.xxxxx.com; # 阿里云里配置的域名,此域名已经申请了ssl证书

        ssl on;
        root html;
        index index.html index.htm;
        ssl_certificate   cert/212312312321367.pem; #阿里云里下载的证书文件
        ssl_certificate_key  cert/2149412231235300167.key;#阿里云里下载的证书文件
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        
    # 访问 https://xxx.xxxxx.com/tomcat 可直接访问tomcat管理页面
        location /tomcat {
            proxy_pass   http://127.0.0.1:8080/manager/html;
            proxy_redirect  off;
            proxy_set_header  X-Real-IP $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;       
    }
        # 配置tomcat管理页的静态资源,不配置的话,访问tomcat管理页时图片等资源无法加载
        # 这里我将webapp/ROOT下的管理页静态资源复制到了 /usr/local/nginx/html/下
    location ~* \.(gif|jpg|jpeg|css|js|png)$ {
        root /usr/local/nginx/html/;
    }

    }

}

此时访问 https://xxx.xxxxx.com/manager就可以访问Tomcat管理页

安装Mysql

  • 检查系统是否安装其他版本的MYSQL数据
yum list installed | grep mysql
yum -y remove mysql-libs.x86_64
  • 安装MYSQL数据库

更新:简便安装方法:centos6.9安装mysql

准备工作

wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
yum install mysql-community-server -y
  • 设置为开机启动
chkconfig --list | grep mysqld
chkconfig mysqld on
  • 设置密码
/usr/bin/mysqladmin -u root password 123456
  • 设置远程访问(可选)
    root登录数据库,输入
# 注意填写root的密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
# 重载授权表
FLUSH PRIVILEGES;

如果设置后依旧无法访问,则检查服务器是否开启3306端口,或检查/etc/my.cnf里是否有bind-address=127.0.0.1,有则注释掉

    原文作者:萌璐琉璃
    原文地址: https://www.jianshu.com/p/c8169d674106
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞