就业冲刺

输出重定向

标准输出: Java 中的 System.out 标准输出流, 默认输出到操作系统控制台, 向标准输出写的信息将出现在操作系统控制台上.

输出重定向: 将标准输出的方向从控制台转移定向到其他输出目标, 常见的输出目标是文件.

操作系统提供了一个符号 > 实现输出重定向

ls /   标准输出到控制台
ls / > list.txt   将ls命令的输出重新定向到list.txt文件

输出重定向的用途

  1. 实现命令执行的日志信息记录
  2. 简便创建文本文件

与echo命令配合可以实现简便创建文本文件

echo abc>demo.txt
echo def>>demo.txt

一个案例: 利用一个脚本自动化实现创建Java文件并且编译执行Java程序

利用vim创建 demo.sh文件:

echo "public class HelloWorld{">HelloWorld.java
echo "  public static void main(String[] args){">>HelloWorld.java
echo '    System.out.println("Hello World!");'>>HelloWorld.java
echo "  }">>HelloWorld.java
echo "}">>HelloWorld.java
cat HelloWorld.java
javac HelloWorld.java
java HelloWorld

执行:

chmod +x demo.sh
./demo.sh

Nginx

Nginx 是一款高性能的Web服务器软件.

Nginx 反向代理集群可以解决网站的高并发问题!

常见Web Server

开源软件:

商业软件

Java EE WEB 服务器也称为 Java WEB 容器.

使用Nginx

yum 安装

安装

yum -y install nginx

启动

systemctl start nginx.service

关闭

systemctl stop nginx.service

重新启动

systemctl restart nginx.service

设置开机启动

systemctl enable nginx.service

检查

ps -A|grep nginx

测试:

http://ip地址

源码编译安装

参考文档: http://nginx.org/en/docs/configure.html

安装步骤:

  1. 下载源代码

    wget http://nginx.org/download/nginx-1.12.2.tar.gz

  2. 创建nginx用户

    useradd nginx

  3. 创建 nginx 的安装目标目录

    mkdir /usr/local/nginx

  4. 安装编译时候需要的依赖包(可选)

    yum -y install pcre-devel openssl openssl-devel

  5. 释放并且编译

    tar -zxf nginx-1.12.2.tar.gz cd nginx-1.12.2 ./configure --prefix=/usr/local/nginx --user=nginx
    --with-httpsslmodule make make install

具体实验步骤:

cd  
cp -r /usr/local/nginx/nginx-1.12.0 .
useradd nginx
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx --user=ngin --with-http_ssl_module
make
make install

运行Nginx

nginx -c /usr/local/nginx/conf/nginx.conf

检查进程

ps -A|grep nginx

开启防火墙的80端口(可选操作)

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

测试, 用浏览器访问

http:/192.168.17.70 

Nginx 的配置文件结构

Nginx的功能是通过配置文件实现的, 使用Nginx就是会使用Nginx的配置文件.

nginx配置文件位置:

  1. 编译安装版本
  2. yum安装版本

Nginx配置文件结构

通用(全局)配置参数

http{
    http 协议通用参数

    server{
        虚拟机配置参数
    }

    server{
        虚拟机配置参数
    }

}

全局通用参数

  1. worker_processes

    建议按照处理器数量进行设置, 4处理器设置为4

    worker_processes  1;
    
  2. 每个进程的线程数量, 就是进程中线程池的大小.

    events {
        worker_connections  1024;
    }
    
  3. pid 文件用于存储 Nginx 主进程号

  4. 日志文件, 如果打开可以记录日志,但同时服务器的性能也会下降

http通用参数

  1. ContentType 类型映射, 也就是多媒体文件类型映射.

    include       mime.types;
    default_type  application/octet-stream;
    

    使用include指令简化主配置文件.

  2. keepalive 指定HTTP/1.1 协议时候的服务器端的长连接等待超时时间

    keepalive_timeout  65;
    
  3. 对服务器的响应进行gzip压缩传输, 可以节省网络流量. 但是问题有两个, 一个是老旧浏览器(IE6)不支持, 第二个会占用服务器的处理器.

    gzip  on;
    

更新 Nginx配置文件实验

cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.2018.5.3
vim nginx.conf   //开放 http 访问日志, 开放gzip压缩
//测试配置文件
nginx -t -c /usr/local/nginx/conf/nginx.conf
//热加载配置文件: 不停止nginx服务的情况下加载配置文件
nginx -s reload

用浏览器进行测试 查看 nginx/logs/access.log 日志文件

虚拟主机

在一个Web服务器上通过服务器软件模拟多台Web 服务器, 其中每个虚拟的Web服务器称为一个虚拟主机. 虚拟主机的好处是可以充分复用同一个web服务器. 对于用户来说, 用户感觉是多个网站.

Nginx 配置文件中 每个 server{} 块对应一个虚拟主机

虚拟主机有3种:

  1. 基于域名的虚拟主机(最常用的虚拟主机)
  2. 基于IP虚拟主机
  3. 基于端口的虚拟主机

基于域名的虚拟主机工作原理

本地解析域名实验

cd /etc
cp hosts hosts.2018.5.3
ping t1.canglaoshi.org  //不通
vim hosts    添加  10.7.11.19  t1.canglaoshi.org
             添加  10.7.11.19  t2.canglaoshi.org
ping t1.canglaoshi.org  //通了 结束命令 Ctrl + C
ping t2.canglaoshi.org  //通了

windows 实验

用记事本编辑: C:\Windows\System32\drivers\etc\hosts
notepad hosts
添加  10.7.11.19  t1.canglaoshi.org
添加  10.7.11.19  t2.canglaoshi.org
ping t1.canglaoshi.org 通了 
ping t2.canglaoshi.org 通了 

搭建Nginx基于域名的虚拟主机

编辑Nginx配置文件 nginx.conf

# 请求 t1.canglaoshi.org 访问 t1文件夹 index.html文件
server{
    listen  80;
    server_name  t1.canglaoshi.org;
    location / {
        root  t1;
        index index.html;
    }
}
# 请求 t2.canglaoshi.org 访问 t2文件夹 index.html文件
server{
    listen  80;
    server_name  t2.canglaoshi.org;
    location / {
        root t2;
        index index.html;
    }
}

在Nginx文件夹/usr/local/nginx中添加新文件夹t1,t2和文件index.html

<html>
    <body>  
        <h1>Hello t1.canglaosho.org</h1>
    </body>
</html> 

测试:

http://t1.canglaoshi.org
http://t2.canglaoshi.org