Loading...
My Blog 我的工作和学习笔记

Centos修改root密码

Linux操作笔记 2016/07/13 Linux

[root@localhost ~]# passwd

Changing password for user root.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.


nginx反向代理tomcat应用加载不了js问题处理

Linux操作笔记 2016/03/15 Linux , Nginx

问题描述

在Linux上安装nginx进行反向代理至后端的Tomcat WEB应用,出现加载不了js问题,直接访问相关js也发现内容确实只加载了一半,强制刷新无用,依然只有一半。但是直接访问tomcat的80或者8080端口发现是没有问题的。


问题原因

Nginx代理之后会有相应的代理缓存区,缓存区默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理是会出现加载不全的现象,其实不仅仅是JS文件。只是因为框架的JS文件略大,所以经常出现类似问题。


问题解决

在Nginx.conf中添加     proxy_buffer_size 128k;
              proxy_buffers   32 128k;
                proxy_busy_buffers_size 128k;

然后重启nginx,即可。Nginx在代理了相应服务后或根据我们配置的UpStream和location来获取相应的文件,首先文件会被解析到nginx的内存或者临时文件目录中,然后由nginx再来响应。那么当proxy_buffers和proxy_buffer_size以及proxy_busy_buffers_size 都太小时,会将内容根据nginx的配置生成到临时文件中,但是临时文件的大小也有默认值。所以当这四个值都过小时就会导致部分文件只加载一部分。所以要根据我们的服务器情况适当的调整proxy_buffers和proxy_buffer_size以及proxy_busy_buffers_size、proxy_temp_file_write_size。具体几个参数的详细如下

proxy_buffers   32 128k;  设置了32个缓存区,每个的大小是128k

proxy_buffer_size 128k; 每个缓存区的大小是128k,当两个值不一致时没有找到具体哪个有效,建议和上面的设置一致。

proxy_busy_buffers_size 128k;设置使用中的缓存区的大小,控制传输至客户端的缓存的最大

proxy_temp_file_write_size 缓存文件的大小


参考文档

http://www.zving.com/dev/server/257610.shtml



org.quartz.SchedulerException: Couldn't get host name! [See nested exception: java.net.UnknownHostException:

程序员笔记 2016/01/12 Quartz , Linux , Nginx

hostname没有指向IP地址,编辑/etc/hosts,将hostname指向127.0.0.1即可

vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   ticket.centerB


nginx反向代理转发端口问题

Linux操作笔记 2016/01/12 Linux , Nginx

在使用nginx进行反向代理,转发指定的请求的时候没有配置端口转发,导致在程序里面获取不到端口

没有端口转发的配置:

upstream server {
    ip_hash;
    server 192.168.1.100:8080;
}

server {
    listen       8080;
    server_name  server ;

    charset utf-8;

    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass    http://server ;
        proxy_redirect    off;
        proxy_set_header   Host             $host; 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
        proxy_connect_timeout 1000;

       # proxy_read_timeout 1000;
       # proxy_send_timeout 1000;
       # proxy_buffer_size 16k;
       # proxy_buffers 4 32k;
       # proxy_busy_buffers_size 64k;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/nginx/html;
    }

}

使用该配置,在服务端通过JAVA代码“String uri = request.getRequestURL().toString();”获取URL地址如下,没有端口

http://192.168.20.2/console/security_check


需要将配置

proxy_set_header   Host             $host;

改为

proxy_set_header   Host             $host:$server_port;;


重新在服务端通过JAVA代码“String uri = request.getRequestURL().toString();”获取URL地址如下,有端口

http://192.168.20.2:8080/console/security_check


Linux tar命令使用说明

Linux操作笔记 2016/01/05 Linux

linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。

1.命令格式:

tar[必要参数][选择参数][文件] 


2.命令功能:

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的 


3.命令参数

必要参数有如下:

-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件

-t 显示压缩文件的内容

-z 支持gzip解压文件

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性


可选参数如下:

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件

--help 显示帮助信息

--version 显示版本信息


4.常见解压/压缩命令

tar 

解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)


.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName


.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName


.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知


.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知

.Z
解压:uncompress FileName.Z
压缩:compress FileName


.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName


.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName

.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName 


参考文档

http://www.cnblogs.com/peida/archive/2012/11/30/2795656.html

http://blog.csdn.net/imyang2007/article/details/7634470


Linux安装配置Tomcat

Linux操作笔记 2016/01/05 Tomcat , Linux

一、安装JAVA运行时环境jre

到oracle官网下载“jre-7u79-linux-x64.rpm”,并且安装(使用root账号登录安装)

rpm -ivh jre-7u79-linux-x64.rpm


查看默认安装目录 

find / -name java

/usr/java/jre1.7.0_79


环境变量配置

vi /etc/profile

在profile文件末尾加入: 
export JAVA_HOME=/usr/java/jre1.7.0_79 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 


二、安装配置Tomcat

1、到tomcat官网下载“apache-tomcat-7.0.67-windows-x64.zip”,将安装zip文件上传至/data并且解压

cd /

mkdir data

cd /data

unzip apache-tomcat-7.0.67-windows-x64.zip  (如果没有unzip命令则安装:yum install unzip)


2、解压完成后,为脚本文件授权

cd /data/apache-tomcat-7.0.67/bin

chmod +x startup.sh

chmod +x catalina.sh

chmod +x shutdown.sh


3、配置server.xml中的URIEncoding编码为:URIEncoding="utf-8",

vi /data/apache-tomcat-7.0.67/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8" />

这里同时可以修改默认端口8080为其他未被占用的端口


4、为tomcat加大内存配置:编辑catalina.sh添加内存配置,这里最大内存配置为2G

vi /data/apache-tomcat-7.0.67/bin/catalina.sh

JAVA_OPTS="-server -Xms1600m -Xmx1600m -Xmn533m -XX:PermSize=128m -XX:MaxPermSize=320m
-XX:NewSize=320m -XX:MaxNewSize=512m -Dfile.encoding=utf-8"

至此,tomcat可以开始启动运行工作

./startup.sh

Using CATALINA_BASE:   /data/apache-tomcat-7.0.67

Using CATALINA_HOME:   /data/apache-tomcat-7.0.67

Using CATALINA_TMPDIR: /data/apache-tomcat-7.0.67/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /data/apache-tomcat-7.0.67/bin/bootstrap.jar:/data/apache-tomcat-7.0.67/bin/tomcat-juli.jar

Tomcat started.


三、其他更多配置

1、将tomcat配置为服务启动

vi /etc/init.d/tomcat

#!/bin/bash
#set startup script for the Tomcat server
#
# chkconfig: 345 80 20
# description: start the tomcat deamon
#
# Source function library
. /etc/rc.d/init.d/functions
 
prog=tomcat
JAVA_HOME=/usr/java/jre1.7.0_79
 export JAVA_HOME
CATALANA_HOME=/data/apache-tomcat-7.0.67
 export CATALINA_HOME
 
case "$1" in start)
    echo "Starting Tomcat..."
    $CATALANA_HOME/bin/startup.sh
    ;;
 
stop)     echo "Stopping Tomcat..."
    $CATALANA_HOME/bin/shutdown.sh
    ;;
 
restart)     echo "Stopping Tomcat..."
    $CATALANA_HOME/bin/shutdown.sh     sleep 2     echo     echo "Starting Tomcat..."
    $CATALANA_HOME/bin/startup.sh
    ;;
 *)
    echo "Usage: $prog {start|stop|restart}"
    ;; esac
exit 0


为服务启动脚本执行授权

chmod +x /etc/init.d/tomcat


检查是否配置成功

service tomcat start | stop | restart


2、配置为开启自动启

chkconfig --add tomcat


3、将tomcat目录和服务执行脚本的拥有者分配给非root用户

创建用户组tomcat:groupadd tomcat

添加用户并加入组:useradd tomcat -g tomcat

修改tomcat用户密码:passwd tomcat


给tomcat组用户tomcat分配

chown -R tomcat:tomcat /data/apache-tomcat-7.0.67

chown  tomcat:tomcat /etc/init.d/tomcat

chmod a+x /etc/init.d/tomcat


Linux chown命令使用说明

Linux操作笔记 2015/12/31 CentOS , Linux

chown命令

1、命令格式:

chown [选项]... [所有者][:[组]] 文件...


2、命令功能:

    chown命令可以将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件以空格分开要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。


3、命令参数:

  必要参数:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号链接

    -R 处理指定目录以及其子目录下的所有文件

    -v 显示详细的处理信息

    -deference 作用于符号链接的指向,而不是链接文件本身

  选择参数:

    --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组

    --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变

    --help 显示帮助信息

    --version 显示版本信息


4.使用实例:

  实例1:改变拥有者和群组

  命令:

    chown tomcat:tomcat /date/apache-tomcat-7.0.64-8180


实例2:改变文件拥有者

  命令:

    chown tomcat: log2015.log


实例3:改变文件群组

  命令:

    chown :tomcat log2015.log


实例4:改变指定目录以及其子目录下的所有文件的拥有者和群组 

  命令:

    chown -R -v tomcat:tomcat /date/apache-tomcat-7.0.64-8180


参考文档

http://www.cnblogs.com/peida/archive/2012/12/04/2800684.html


CentOS 6.7上安装Redis 3.0.5

数据存储篇 2015/12/18 CentOS , Linux , Redis

在CentOS 6.7上安装Redis 3.0.5

#Redis是什么?

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。


#wget获取安装包并且安装

[root@centos1 data] wget http://download.redis.io/releases/redis-3.0.5.tar.gz

[root@centos1 data] tar xzf redis-3.0.5.tar.gz

[root@centos1 data] cd redis-3.0.5

[root@centos1 date] make


#安装过程中遇到的问题

1、提示没有“CC”编译器,于是安装“GCC”编译器

[root@centos1 date] yum install gcc

[root@centos1 date] make


2、提示“File `Makefile' has modification time 1.8e+06 s in the future”,将系统时间改为当前时间即可

[root@centos1 date] date -s "2015-11-08 15:15:00"

[root@centos1 date] make


3、提示“Newer version of jemalloc required”,“Leaving directory `/data/redis-3.0.5/src'”

[root@centos1 date] cd src

[root@centos1 src]  make MALLOC=libc


#启动服务并且使用内置客户端测试

[root@centos1 date] src/redis-server

......

359:M 08 Nov 15:28:30.429 * The server is now ready to accept connections on port 6379

说明启动成功,默认端口是:6379


[root@centos1 date] src/redis-cli

redis> set foo bar

OK

redis> get foo

"bar"


#结语

Redis的默认安装比较简单,默认安装启动没有在后台运行;指定配置文件启动可以配置为后台运行,IP、端口、主从配置、安全配置等等


#指定配置文件启动

redis-3.0.5根目录有一个配置文件example,将后台运行打开

[root@centos1 date] vi /data/redis-3.0.5/redis.conf


# By default Redis does not run as a daemon. Use 'yes' if you need it.

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize yes


指定配置文件开启服务

[root@centos1 date] src/redis-server /data/redis-3.0.5/redis.conf




参考文档

http://redis.io/

https://github.com/cinience/RedisStudio/releases

http://www.cnblogs.com/shanyou/archive/2012/01/28/2330451.html




CentOS 6.7安装RabbitMQ消息中间件

RabbitMQ笔记 2015/12/18 RabbitMQ , CentOS , Linux

#RabbitMQ是基于Erlang开发的,所以首先安装Erlang环境

下载:erlang-17.4-1.el6.x86_64.rpm 下载地址:http://www.rabbitmq.com/releases/erlang/


#rpm安装erlang

rpm -ivh erlang-17.4-1.el6.x86_64.rpm


#安装RabbitMQ Server

下载:rabbitmq-server-3.5.6-1.noarch.rpm 下载地址:http://www.rabbitmq.com/install-rpm.html


#rpm安装rabbitmq-server

rpm -ivh rabbitmq-server-3.5.6-1.noarch.rpm


#启动rabbitmq-server

/sbin/service rabbitmq-server start


#设置开机启动

chkconfig rabbitmq-server on


#开放防火墙端口

SELinux and similar mechanisms may prevent RabbitMQ from binding to a port. When that happens, RabbitMQ will fail to start. Make sure the following ports can be opened:

  • 4369 (epmd), 25672 (Erlang distribution)
  • 5672, 5671 (AMQP 0-9-1 without and with TLS)
  • 15672 (if management plugin is enabled)
  • 61613, 61614 (if STOMP is enabled)
  • 1883, 8883 (if MQTT is enabled)


#默认安装说明

默认安装日志路径:/var/log/rabbitmq

默认安装路径:/usr/lib/rabbitmq

默认安装配置文件存放路径:/etc/rabbitmq


#默认访问用户和虚拟主机

默认安装的rabbitmq服务,默认拥有一个账号和密码都是“guest”的用户,并且绑定到虚拟主机“/”,只能在本机(localhost)访问rabbitmq,正式发布时,建议删除“guest”账号和虚拟主机“/


#管理RabbitMQ节点

进入到bin目录:cd /usr/lib/rabbitmq/bin

停止服务:./rabbitmqctl stop

查看状态: ./rabbitmqctl status

更多rabbitmqctl命令:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html


#查看日志

进入到日志目录:cd /var/log/rabbitmq

浏览日志文件:ls

rabbit@centos1.log  rabbit@centos1-sasl.log  startup_err  startup_log

查看日志文件:cat rabbit@centos1.log


#开启UI管理界面插件“Management Plugin

cd /usr/lib/rabbitmq/bin

rabbitmq-plugins enable rabbitmq_management


URL访问地址:http://server-name:15672


#创建管理员用户,负责整个MQ的运维

rabbitmqctl add_user  admin admin  

rabbitmqctl set_user_tags admin administrator  

更多用户管理命令:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html


创建好后,便可以用账号为admin,密码为admin登录http://server-name:15672 进行MQ的维护



#参考文档

http://www.rabbitmq.com/



CentOS 6 Linux 常用配置

Linux操作笔记 2015/12/18 CentOS , Linux

关闭防火墙

service iptables stop

限制防火墙开机启动

chkconfig iptables off

防火墙添加端口规则

修改/etc/sysconfig/iptables 文件,添加以下内容:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


修改主机名称,重启也生效

uname -a 查看hostname

hostname centos1.imethan.cn 修改让hostname立刻生效

vi /etc/hosts 修改原hostname为 centos1.imethan.cn

vi  /etc/sysconfig/network 修改原hostname为 centos1.imethan.cn,这样可以让reboot重启后也生效

reboot重启,uname -a 重新检查


添加DNS域名转发

vi /etc/hosts

添加转发域名记录,例如

192.168.42.131 www.imethan.cn  blog

#IP地址             #转发目标域名       #别名

#hosts文件格式是一行一条记录,分别是IP地址 hostname aliases,三者用空白字符分隔,aliases可选



修改系统时间

date -s "2015-11-08 15:15:00"


JDK环境变量配置

#vi /etc/profile

在最后面加入

#set java environment

JAVA_HOME=/usr/java/jdk1.7.0_79

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

保存退出,是配置马上生效

source /etc/profile


配置SSH免用户名和密码登录

ssh-keygen -t rsa -P ''

scp /home/tungsten/.ssh/id_rsa.pub tungsten@centos1:/home/tungsten/.ssh/authorized_keys

service sshd restart