shuaihhx的小屋

一个小博客....

服务器配置整理

shuaihhx shuaihhx
2018-12-27 11:14
16
0

服务器搞了好几天了,做了一些配置/设置,简单做个记录。

申请/购买

恰逢折扣,从腾讯云上买的服务器,顺便买了个域名。购买需要实名,域名要使用需要备案。按照指导进行操作即可。昨天去拍了备案的照片,备案完成可能还需要一段时间。

整体设置

服务器默认没有安全策略,首先在腾讯云控制台安全组里新建安全组,这里我使用了一个推荐的“放通22,80,443,3389端口和ICMP协议-2”,然后根据需要加入了3306(mysql)。8080在测试tomcat时也开放了,后来使用Apache2做了映射就不用了。 服务器分配的用户为ubuntu,具有root权限。

配置

服务器分配的用户为ubuntu,具有root权限。以下皆在ubuntu用户下进行。

mysql

  • 安装: sudo apt-get install mysql-server
  • 之后:mysql -u root -p 输入密码即可登陆mysql
  • 设置开机启动: chkconfig mysqld on (未验证)

mysql配置(有需求时使用)

默认的mysql配置完成后,本地访问(如使用navigate访问),会提示拒绝。此时,需改变user权限:

  • mysql-> use mysql; update user set host = '%' where user = 'root'; (此为改表法,还有授权法,即grant命令)

下面配置mysql主从同步,即将服务器数据实时同步到本地:

(1)主数据库master
  • 在etc/mysql/mysql.conf.d/mysqld.cnf 加入如下配置:
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
#log_bin = /home/ubuntu/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size   = 100M
binlog_do_db            = jpress
#binlog_ignore_db       = include_database_name

log-slave-updates
binlog_format="MIXED"
sync_binlog=1
innodb_flush_log_at_trx_commit=1
  • 重启:service mysql restart
  • mysql 配置
#创建slave帐号slave,密码yourpassword
mysql>grant replication slave on *.* to 'slave'@'%' identified by 'yourpassword'; 
#更新数据库权限 
mysql>flush privileges;
#查询master状态
mysql> show master status; 

我这里查询到的信息为 mysql-bin.000009 536

(2)从数据库 slave

(这里使用本地,为windows10系统)

  • 在 C:\ProgramData\MySQL\MySQL Server 5.7 下修改my.ini
#从数据库端ID号 
server-id =2
  • 执行命令 #执行同步命令,设置主数据库ip,同步帐号密码,同步位置
mysql>change master to master_host='132.232.86.190',master_user='slave',master_password='yourpassword',master_log_file='mysql-bin.000002',master_log_pos=196;   
mysql> show slave status\G;  
*************************** 1. row ***************************  
               Slave_IO_State: Waiting for master to send event  
                  Master_Host: 132.232.86.190  
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 582
               Relay_Log_File: zhanglsh0100-relay-bin.000004
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:  

两个Yes即成功

  • 错误时查看错误日志可以解决很多问题
  • 同步要注意数据状态,比如我在同步时两个数据库的article表里都有了一条数据会有问题(如按行delete时),最好是先清空slave,然后将master数据导入,然后再开始同步,这样之后在master上的改变都会在slave上同步。
#开启同步功能 
mysql>start slave;
  • 跳过一条错误:
mysql>stop slave;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;        #跳过一个事务
mysql>start slave;

java

java有一些版本,如openjdk,Oracle jdk等。一般使用的应该都是oracle jdk。 安装过程:

  • 添加PPA源:sudo add-apt-repository ppa:webupd8team/java
  • 源更新:sudo apt-get update
  • 安装:sudo apt-get install oracle-java8-installer 安装完成后 java -version 可以检查。

tomcat

官网下载安装包,放在 /home/ubuntu 下

  • 解压:tar zxvf apache-tomcat-8.5.37.tar.gz
  • 启动:./start.sh

Apache2

  • 安装:sudo apt-get install apache2
  • 重启:service apache2 restart 正常情况,本地访问服务器ip会显示apache默认主页,在 /var/www/html 下。

下面配置Apache2映射tomcat:

  • 修改 /etc/apache2/apache2.conf,添加:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse /  ajp://127.0.0.1:8009/
  • 重启服务即可
  • 在此处遇到一些问题,网上介绍比较乱。此配置未考虑静态、动态分离,以实验学习为主。
  • 如需配置多个tomcat,需要加类似配置(未试验):
NameVirtualHost *:80
<VirtualHost *:80>
ProxyPreserveHost On
ServerName localhost
ProxyPass / ajp://localhost:8009/
ProxyPassReverse /  ajp://localhost:8009/
</VirtualHost>

进一步配置

如上配合完成后,访问ip显示为tomcat默认主页,修改 tomcat/webapps/ROOT 下index.jsp为自己主页即可。 然后可以再自己加的主页上加上跳转链接,如http://132.232.86.190 链接至 http://132.232.86.190/jpress

定时任务

  • crontab -e 编辑, 例如:
00 00  * * 5   /home/ubuntu/bin/tomcat.sh > /home/ubuntu/bin/tomcat.logs

依次为:{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} >{full path of log}
这里我设置了每周五零点重启tomcat,执行脚本的写法网上有很多这里就不做记录了。

  • crontab -l 显示定时任务

相关文章