linux下nginx部署配置多站点

摘要:
  有时候你想在一台服务器上为不同的域名运行不同的站点。
  比如www.siteA.com作为博客,www.siteB.com作为论坛。你可以把两个域名的IP都解析到你的服务器上,
  但是没法在Nginx的根目录里同时运行两个不同的网站.
  这时可以在nginx上面配置部署多个站点(使用nginx虚拟目录),为你节省服务器费用.
  假设你把博客放在”/home/user/www/blog”下,论坛放在”/home/user/www/forum”下。下面我们就开始进行配置:

1.在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx”

sudo mkdir /etc/nginx/vhost #创建保存站点配置文件的目录

2.创建siteA的配置文件

‘sudo vim /etc/nginx/vhost/siteA.conf #打开该文件(没有的话保存后会自动新建)’

在文件里面输入以下配置内容(具体的相关目录及location内容根据自己实际情况修改,下面只是nginx配置文件的基本结构,其实可以拷贝nginx自带的配置文件到vhost目录下,然后对文件内容进行修改):

server {
  listen 80; # 监听端口
  server_name www.siteA.com siteA.com; # 站点域名
  root /home/user/www/blog; # 站点根目录
  index index.html index.htm index.php; # 默认导航页
  location / {
    # WordPress固定链接URL重写
    if (!-e $request_filename) {
      rewrite (.*) /index.php;
    }
  }

3.跟第二步一样,创建siteB的配置文件.(“server_name”和”root”目录的内容和siteA不同)

‘sudo vim /etc/nginx/vhost/siteB.conf #打开该文件(没有的话保存后会自动新建)’

在文件里面输入以下配置内容(具体的相关目录及location内容根据自己实际情况修改,下面只是nginx配置文件的基本结构,其实可以拷贝nginx自带的配置文件到vhost目录下,然后对文件内容进行修改):

server {
  listen 80; # 监听端口
  server_name www.siteB.com siteB.com; # 站点域名
  root /home/user/www/blog; # 站点根目录
  index index.html index.htm index.php; # 默认导航页
  location / {
    # WordPress固定链接URL重写
    if (!-e $request_filename) {
      rewrite (.*) /index.php;
    }
  }

4.打开编辑nginx的配置文件

sudo vim /etc/nginx/nginx.conf

将我们第一步创建的虚拟目录的路径增加到nginx.conf文件中去,将下面的内容加入到”http {}”部分的末尾

http {
  ...
  include /etc/nginx/vhost/*.conf;
}

5.重启nginx服务(注意:所有的配置文件修改保存后,先不急重新加载配置,先使用nginx -t测试下文件内容是否有错在进行重新加载配置操作)

sudo service nginx restart

6.访问www.siteA.com和www.siteB.com,你将发现浏览器会打开不同的站点

nginx禁止ip访问的小技巧:

假如你的Nginx根目录设在”/home/user/www”,你想阻止别人通过”http://IP地址/blog”或”http://IP地址/forum”来访问你的站点,最简单的方法就是禁止IP地址访问。方法如下:

打开Nginx网站默认配置文件,记得先备份

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak #备份原来的默认文件

sudo vim /etc/nginx/sites-available/default #编辑文件

将其所有内容删除,只留以下配置

server {
  listen 80 default_server;
  server_name _;
  return 404;
}

然后重启nginx或者nginx -s reload使配置文件生效,别人将无法通过IP地址访问网站了

如果你不想禁止IP地址访问整个目录,只是要防止别人通过IP访问你的博客和论坛。那就需要禁止”/blog”和”/forum”的目录访问

打开Nginx网站默认配置文件,同上面一样,记得先备份一下

在”server { }”节点的部分加上以下配置,然后重启nginx或者reload nginx配置即可.

location ^~ /blog/ {
  deny all;
}
location ^~ /forum/ {
  deny all;
}

Linux下安装maven

摘要:
  Linux系统下离线安装maven

1.在Apache官方网站下载对应系统的maven包然后解压maven

2.配置环境变量.(配置到当前用户的环境变量上)

sudo vim ~/.bashrc #用vim打开当前用户的环境变量配置文件

在.bashrc文件底部加入以下内容,然后保存退出.(M2_HOME代表解压后的maven目录)

export M2_HOME=/home/user/apache-maven-3.3.9

export PATH=${M2_HOME}/bin:$PATH

3.执行以下命令使刚刚的配置生效

`source ~/.bashrc`

4.验证安装结果,执行下列命令,如果一切无误,会正常出现对应的maven版本信息

`mvn -v`

linux离线安装oracle JDK

摘要:
  本文是在deepin linux(基于debian发行版)系统环境下,debian,ubuntu以及其他debian衍生版同理适用

如果电脑处于联网状态,那么可以使用apt包管理器在线安装,可使用以下命令在线安装:

sudo apt update #更新

sudo apt install oracle-java8 #安装

下面重点介绍离线安装官网下载安装包的方式:

1.oracle官网下载Linux对应的tar.gz安装包

2.进入到存放安装包的目录下,执行以下命令将安装包的内容解压到在指定目录(/usr/local/java/文件夹自己事先建好)

sudo tar zxvf ./xxxx.tar.gz -C /usr/local/java

3.查看第二步是否成功,如果有/usr/local/java/下有jdk对应的目录结构,则表示成功

ls -anl /usr/local/java/

4.配置环境变量(此处配置到当前用户的环境变量上)

sudo vim ~/.bashrc #用vim打开当前用户的环境变量配置文件

在.bashrc文件底部加入以下内容,然后保存退出

export JAVA_HOME=/usr/local/java/java-8u5_xxx

export JRE_HOME=${JAVA_HOME}/jre   

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   

export PATH=${JAVA_HOME}/bin:$PATH

unset _JAVA_OPTIONS

5.执行以下命令使刚刚的配置生效

source ~/.bashrc

6.验证安装结果,执行下列命令,如果一切无误,会正常出现对应的java版本信息

java -version

Linux增加使用文件代替swap分区分方法

摘要:
  在安装Linux系统的时候未对系统进行swap(交换分区),后续进入系统
  可以采用新建文件的方式来代替swap分区.
  以下所执行的系统环境是:deepin linux(基于debian发行版),
  按理在Ubuntu,debian上也是可以的.

注意:执行以下命令时,全部采用root账户的权限

1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)

sudo dd if=/dev/zero of=/root/swapfile bs=1M count=1024

2.格式化为交换分区文件,建立swap的文件系统

sudo mkswap /root/swapfile

3.启用交换分区文件

sudo swapon /root/swapfile

4.使系统开机时自启用,在文件/etc/fstab中添加一行(可使用vim打开文件进行编辑):

/root/swapfile swap swap defaults 0 0

5.验证结果,执行free 命令查看是否有交换分区

free -m

注:如果想移除swap分区文件,执行以下命令:

sudo swapoff /swapfile && sudo rm /swapfile

MySQL字段值默认不区分大小写问题

摘要:
  mysql的字段值是默认不区分大小写的,但是用户在登录账户的时候严格区分大小写的,所以解决如下:

1 .在不改变表任何结构的情况下,可以直接在查询条件后面的字段名或者字段值作为binary()函数的参数即可,如下:

select * from table_name t where binary(t.field) = 'Abc';

2 .在建表的时候在字段后面加上binary,或者用alter语句来改变字段类型,只需要加上binary

`mysql> create table t_user(

-> username varchar(20) binary

-> );`

对已有的表进行alert

alter table table_name modify field varchar(20) binary

注:table_name换成具体对应的表名称.field换成具体对应的表的字段

Linux下离线安装nodejs

Linux下离线安装nodejs步骤:

1.在官网下载Linux版本的nodejs安装包,然后解压并且移动到/usr/local/目录,具体目录可随意指定

sudo tar -xvJf ./node-v8.9.3-linux-x64.tar.xz -C /usr/local/

2.配置环境变量,编辑~/.bashrc文件(当前用户的环境变量配置)

export NODE_HOME=/opt/node

export PATH=$PATH:$NODE_HOME/bin

export NODE_PATH=$NODE_HOME/lib/node_modules

3.使配置生效,执行source命令

source ~/.bashrc

4.执行如下命令校验配置是否生效

node -v

npm -v