阿里云ECS(CentOS 7.3)的搭建过程

一、安装JDK和配置环境变量

1. 创建jdk安装目录(创建过则跳转即可)
mkdir -p usr/local/src
2. 使用wget命令下载jdk包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
3. 解压(如下操作是已经跳到指定存放jdk的目录位置)
tar -zxvf jdk-8u131-linux-x64.tar.gz
4. 重命名
mv jdk1.8.0_131 jdk1.8
5. 配置环境变量
(1)进入系统文件命令如下:vi /etc/profile
(2)按“shift+g”快捷键移动到文本末尾,再按“i”按键进行编辑,输入以下文本(写完后,按ESC键退出编辑模式并输入“:x”以保存并退出):

export JAVA_HOME=/usr/local/src/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6. 让配置文件生效:source /etc/profile
7. 检查jdk是否配置成功: java -version

二、Tomcat的安装及配置(暂未需要)

1. 创建tomcat安装目录(创建过则跳转即可)

2. 使用wget下载tomcat

3. 解压

4. 启动tomcat

5. 修改tomcat端口

6. 测试访问

三、Mysql的安装及配置

注意:除了在系统中让防火墙开放3306端口外,还需要在阿里云服务器控制台中对当前的ecs实例创建一个3306端口可对外监听的安全组规则,这是阿里云提供的另一层虚拟防火墙(安全策略)

1. 进入安装目录(这里不做详说);

2. 下载mysql并启动服务
(1)使用wget下载mysql源包并用yum安装:
下载: wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装: yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
(3)在线安装Mysql:yum -y install mysql-community-server
(4)启动服务:systemctl start mysqld
(5)设置开机启动:
systemctl enable mysqld
systemctl deaemon-reload

3. 修改本地登录密码
(1) 通过vi /var/log/mysqld.log进入该文件中找到标黄这段,而红色圈便是默认登陆密码:
在这里插入图片描述
(2)通过以上得到的密码登录命令mysql -u root -p ,即可进入mysql中。下面则是修改密码:
mysql> alter user 'root'@'localhost' identified by 'Qq88888.';

4. 设置允许远程登录(默认不允许远程登录),开启远程登录前提要保证开启防火墙,开放3306端口监听:
(1)允许该账号能够被远程登录: mysql> grant all privileges on *.* to 'root'@'%' identified by 'Qq88888.' with grant option;
(2)查看防火墙是否开启: firewall-cmd --state
(3)开启防火墙: systemctl start firewalld.service
- 关闭防火墙: systemctl stop firewalld.service
- 禁用防火墙: systemctl disable firewalld.service
- 查看防火墙监听的端口: firewall-cmd --list-port
(4)开放3306端口监听:firewall-cmd --zone=public --add-port=3306/tcp --permanent
(5)刷新防火墙设置:firewall-cmd --reload

5. 配置my.cnf
进入vi /etc/my.cnf文件添加如下本文进行编码设置:

character_set_server=utf8
init_connect='SET NAMES utf8'

6. 重启动mysql
systemctl restart mysqld

四、Reids的安装及配置

注意:同上在系统中让防火墙开放6379端口外,还需要在阿里云服务器控制台中对当前的ecs实例创建一个6379端口可对外监听的安全组规则,这是阿里云提供的另一层虚拟防火墙(安全策略)

1. 进入安装目录(这里不做详说);

2. 使用wget命令下载redis:wget http://download.redis.io/releases/redis-4.0.8.tar.gz

3. 解压、编译和安装:
(1) 解压:tar -zxvf redis-4.0.8.tar.gz
(2) 完成后进入解压的redis-4.0.8目录中,使用make命令进行编译:make
(3) 安装:make install

4. 设置开机自启动
(1) 创建新目录:mkdir -p /usr/local/redis
(2) 将/usr/local/src/redis-4.0.8/src目录下的redis-server、redis-cli和/usr/local/src/redis-4.0.8目录下的redis.conf文件拷贝到创建的目录中:
cp redis-server /usr/local/redis
cp redis-cli /usr/local/redis
cp ../redis.conf /usr/local/redis
(3)开启后台运行,修改拷贝的redis.conf配置文件:vi /usr/local/redis/redis.conf

  • 将萤光字上的“no”该为“yes”:在这里插入图片描述

(4) 创建服务文件redis.service:vi /usr/lib/systemd/system/redis.service
在该文件中添加以下内容(内容中的路径以实际各异):

	[Unit]
	Description=The redis-server Process Manager
	After=syslog.target network.target
	
	[Service]
	Type=simple
	PIDFile=/var/run/redis_6379.pid
	ExecStart=/usr/local/redis/redis-server /usr/local/redis/redis.conf         
	ExecReload=/bin/kill -USR2 $MAINPID
	ExecStop=/bin/kill -SIGINT $MAINPID
	
	[Install]
	WantedBy=multi-user.target

5. 开启redis远程访问(可忽略根据实际需要):
(1) 修改redis.conf配置文件,进行如下操作:

  • 设置可访问的ip:修改萤光字的文本中画圈的ip地址让其他可以访问
    在这里插入图片描述
  • 关闭保护模式:将萤光字文本的“yes”修改为“no”
    在这里插入图片描述
  • 设置密码:添加萤光字的文本所示
    在这里插入图片描述

(2) 修改完后应在redis目录下,使用命令redis-server redis.conf来检查加载配置文件,这样亦可检查是否出现修改错误,避免后续不必要的问题

(3) 因为开了防火墙,所以势必要让防火墙开放6379端口的监听:
- 开放3306端口监听:firewall-cmd --zone=public --add-port=6379/tcp --permanent
- 刷新防火墙设置:firewall-cmd --reload
- 查看防火墙开放的端口:firewall-cmd --zone=public --list-ports

6. 开启服务和开机自启动:
(1) 刷新服务配置:systemctl daemon-reload
(2) 开启redis: systemctl start redis
(3) 加入开机启动:systemctl enable redis

五、Nginx的安装及配置

1. 安装gcc(gcc用于编译接下来下载的nginx源码)
使用gcc -v检查是否安装该命令,如未安装则执行yum install gcc-c++

2. 安装pcre和pcre-devel依赖(nginx 的 http 模块使用 pcre 来解析正则表达式,pcre-devel 是使用 pcre 开发的一个二次开发库。)
yum install -y pcre pcre-devel

3. 安装zlib zlib-devel依赖(zlib提供了很多压缩和解方式,nginx需要zlib对http进行gzip)
yum install -y zlib zlib-devel

4. 安装openssl openssl-devel(openssl是一个安全套接字层密码库,nginx要支持https就需要它)
yum install -y openssl openssl-devel

5. 下载nginx并解压
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -zxvf nginx-1.9.9

6. 使用默认配置,追加安装ssl模块
./configure --with-http_ssl_module

7. 使用make编译和安装
make && make install

注意:如果安装后出现一个Make[1]: Leaving directory `/usr/local/nginx-1.9.9`
并且在nginx-1.9.9的同级目录下已安装了一个名为nginx的文件夹即可忽略该错误~

8. 查看nginx是否安装成功
(1). 进入nginx文件下的sbin目录输入./nginx -v查看版本号
(2).使用netstat -ntpl | grep nginx查看当前nginx占用的端口号
(3). 使用wget 127.0.0.1测试返回表示是否正常
(4). 使用curl 127.0.0.1测试返回页面的值是否正常

9. 配置nginx开机自启动
(1). 进入目录cd /usr/lib/systemd/system
(2). 创建nginx.service服务文件vi nginx.service
(3). 添加如下内容:

[Unit]
Description=nginx 
After=network.target 
   
[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target

(4). 开机自启动:systemctl enable nginx.service
(5). nginx服务的启动、关闭和重启:
启动:systemctl start nginx.service
关闭:systemctl stop nginx.service
重启:systemctl restart nginx.service

10. 防火墙开启http、https服务以及端口监听
开启http服务:firewall-cmd --zone=public --add-service=http --permanent
开启80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
开启https服务:firewall-cmd --zone=public --add-service=https --permanent
开启443端口:firewall-cmd --zone=public --add-port=443/tcp --permanent
刷新防火墙设置:firewall-cmd --reload

11. nginx + 一级域名 + https支持的配置:
(1). 修改安装后nginx文件的conf目录下的nginx.conf配置文件: vi nginx.conf
(2). 找到带有# HTTPS Server 的字样,将其下文本按照以下文本根据实际情况进行修改:

    # HTTPS Server
    #
    server {
        listen       443 ssl;   #ssl协议访问的端口号443
        server_name  localhost;   #将localhost修改为ssl证书所绑定的域名

        ssl_certificate      cert/www/cert.pem;	#域名的绑定的ssl证书pem
        ssl_certificate_key  cert/www/cert.key;	#域名的绑定的ssl证书key
        ssl   on;

        ssl_session_cache    shared:SSL:1m;
        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;

        location / {
            proxy_pass   http://127.0.0.1:8080; #这里填写项目的访问地址以及端口
            proxy_set_header Host                               $http_addr;
            proxy_set_header X-Real-IP                        $remote_addr;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
            root   html;
            index  index.html index.htm;
        }
		 
		# 配置另一个项目使用443端口
		# location /test {
        #    proxy_pass   http://127.0.0.1:9090/test; #这里填写项目的访问地址以及端口
        #    proxy_set_header Host                               $http_addr;
        #    proxy_set_header X-Real-IP                        $remote_addr;
        #    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        #    root   html;
        #    index  index.html index.htm;
		# } 
    }

(3). 将http请求重定向为https请求,在原nginx.conf配置文件中修改为如下配置即可:

	server {
        listen       80;
        server_name  www.shnice.club; #填写访问的域名
        rewrite ^(.*) https://$server_name$1 permanent; #将http访问重定向为https
		.....

(4). 修改完之后,可以在进入nginx的sbin目录下使用./nginx -t测试配置文件是否修改正确
(5). 测试成功后,在当前目录下使用./nginx -s reload加载配置

12、nginx + 二级域名 + https支持的配置:
(1). 在nginx文件夹下下创建vhosts目录,接着创建一个*.conf的配置文件,添加内容如下:

# HTTP Server
#
server {
        listen 80;
        server_name localhost; #填写你访问的域名
        rewrite ^(.*) https://$server_name$1 permanent; #将http访问重定向为https

        location / {
            index index.html index.htm;
        }
}

# HTTPS Server
#
server {
        listen       443 ssl;   #ssl协议访问的端口号443
        server_name  localhost;   #将localhost修改为ssl证书所绑定的域名

        ssl_certificate      cert/abc/cert.pem;	#域名的绑定的ssl证书pem
        ssl_certificate_key  cert/abc/cert.key;	#域名的绑定的ssl证书key
        ssl   on;

        ssl_session_cache    shared:SSL:1m;
        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;

        location /abc {
            proxy_pass   http://127.0.0.1:8080/abc; #这里填写项目的访问地址以及端口
            proxy_set_header Host                               $http_addr;
            proxy_set_header X-Real-IP                        $remote_addr;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
            root   html;
            index  index.html index.htm;
        }
}

(2). 导入二级域名所在的配置文件到nginx.conf中:
进入conf目录下,在nginx.conf文件中的http{}包裹中处添加以下内容:

	include /usr/local/nginx/vhosts/*;

(3). 修改完之后,可以在进入nginx的sbin目录下使用./nginx -t测试配置文件是否修改正确
(4). 测试成功后,在当前目录下使用./nginx -s reload加载配置


版权声明:本文为weixin_43260238原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。