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 禁止非法url访问

Linux操作笔记 2016/06/29 Nginx

$request_uri 这个变量等于包含一些客户端请求参数的原始URI,我们可以通过if判断,限制非授权用户使用关键字访问我们的页面

 

  if  ($request_uri  ~* "/abc.html\?test") {

            return 403   "I've recorded your ip Wait to check the water meter";

}

如果正常访问abc.html 是正常的,如果添加了?test  这个参数,可能是要非法访问,就会提示  "I've recorded your ip Wait to check the water meter"

 

添加参数测试

 

参考文档

http://blog.chinaunix.net/uid-26719405-id-4777586.html


搭建nginx反向代理用做内网域名转发

Linux操作笔记 2016/04/24 Nginx

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



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 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