发表于: 2018-01-19 16:07:14
2 691
昨天完成了服务器linux下面的maven 数据库<mysql> tomcat resin jetty服务器的安装和配置,还有怎么部署web项目
今天开始完成安装和配置Nginx服务器在linux环境下
配置Nginx,使用子域访问
相关参考资料(https://www.cnblogs.com/piscesLoveCc/p/5794926.html)
开始安装Nginx的环境依赖(ubantu)
安装gcc g++的依赖库
apt-get install build-essential
apt-get install libtool
安装 pcre依赖库(http://www.pcre.org/)
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
安装 zlib依赖库(http://www.zlib.net)
apt-get install zlib1g-dev
安装 ssl依赖库
apt-get install openssl
安装Nginx(http://nginx.org)
(严格按照下面的安装和配置的步骤--->不然会出错)
#下载最新版本:
wget http://nginx.org/download/nginx-1.11.3.tar.gz
#解压:
tar -zxvf nginx-1.11.3.tar.gz
#进入解压目录:
cd nginx-1.11.3
#配置:
./configure --prefix=/usr/local/nginx
#编辑nginx:
make
注意:这里可能会报错,提示“pcre.h No such file or directory”,具体详见:http://stackoverflow.com/questions/22555561/error-building-fatal-error-pcre-h-no-such-file-or-directory
需要安装 libpcre3-dev,命令为:sudo apt-get install libpcre3-dev
#安装nginx:
sudo make install
#启动nginx:(在nginx-1.11.3目录下面)
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。
#查看nginx进程:
ps -ef|grep nginx
最后在浏览器里面访问47.94.14.145
Nginx常用命令
参考文档(https://www.cnblogs.com/piscesLoveCc/p/5794926.html)
启动 Nginx(在/usr/local/nginx下面)
/usr/local/nginx/sbin/nginx
./sbin/nginx
停止 Nginx(在/usr/local/nginx下面)
./sbin/nginx -s stop
./sbin/nginx -s quit
-s都是采用向 Nginx 发送信号的方式。
Nginx重新加载配置
./sbin/nginx -s reload
指定配置文件
./sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-c表示configuration,指定配置文件
https://www.cnblogs.com/chengmo/archive/2010/06/28/1766876.html
接下来准备配置子域名
首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers
启动tomcat
然后再root@fuwei:/usr/local/nginx/conf# 目录下
打开Nginx.conf vi nginx.conf
保存退出---->./sbin/nginx -s reload(重载Nginx)
接下来访问网页http://47.94.14.145/ssm/
在Nginx里面配置tomcat的项目
查看Nginx日志,编写脚本统计访问次数,统计响应延时。
参考文档(https://www.cnblogs.com/chengmo/archive/2010/06/28/1766876.html)
1、log_format 格式
log_format name( 格式名字) 格式样式(即想要得到什么样的日志内容)
默认的示例:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_s ent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
注释:
$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
$remote_user :用来记录客户端用户名称;
$time_local : 用来记录访问时间与时区;
$request : 用来记录请求的url与http协议;
$status : 用来记录请求状态;成功是200,
$body_bytes_s ent :记录发送给客户端文件主体内容大小;
$http_referer :用来记录从那个页面链接访问过来的;
$http_user_agent :记录客户毒啊浏览器的相关信息;
创建一个slow.sh
http://blog.csdn.net/qq_34341290/article/details/53349867
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin;
export.GB2312;
function usage()
{
echo "$0 filelog options";
exit 1;
}
function slowlog()
{
#set -x;
field=$2;
files=$1;
end=2;
msg="";
[[ $2 == '1' ]] && field=1&&end=2&&msg="总访问次数统计";
[[ $2 == '2' ]] && field=3&&end=4&&msg="平均访问时间统计";
echo -e "\r\n\r\n";
echo -n "$msg";
seq -s '#' 30 | sed -e 's/[0-9]*//g';
awk '{split($7,bbb,"?");arr[bbb[1]]=arr[bbb[1]]+$NF; arr2[bbb[1]]=arr2[bbb[1]]+1; } END{for ( i in arr ) { print i":"arr2[i]":"arr[i]":"arr[i]/arr2[i]}}' $1 | sort -t: +$field -$end -rn |grep "pages" |head -30 | sed 's/:/\t/g'
}
[[ $# < 2 ]] && usage;
slowlog $1 $2;
退出保存
运行
chmod +x ./slow.sh
chmod +x slow.sh
./slow.sh /var/log/nginx/
./slow.sh /var/log/nginx/access.log 2
http://blog.csdn.net/u014470581/article/details/51493150(参考资料)
代码对于标准bash而言没有错,因为Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼,解决方法就是取消dash。
运行 sudo dpkg-reconfigure dash
在选择项中选 No ,搞定了!
平均访问时间统计#############################
awk: cannot open /var/log/nginx/access.log (No such file or directory)
没有这个文件
主要是在/var/log/nginx/access.log没有这个文件
先创建这个目录文件
运行成功了,不过看不见时间
脚本的先放一放---->后面来解决(一般的步骤都是这个样子)
nginx反向代理服务器的工作原理
参考文章(http://blog.csdn.net/ywl570717586/article/details/51556912)
一 概述
反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。
二 反向代理服务器的工作原理
反向代理服务器通常有两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器。
1,作内容服务器的替身
如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。
当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器(参见图 2)。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何 URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向 URL(URL重定向,是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网站网址,转成较短的网址。因为当要传播某网站的网址时,常常因为网址太长,不好记忆;又有可能因为换了网路的免费网页空间,网址又必须要变更,不知情的使用者还以为网站关闭了。这时就可以用网路上的转址服务了。这个技术使一个网页是可借由不同的统一资源定位符连结)。
这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。
可以配置防火墙路由器,使其只允许特定端口上的特定服务器(在本例中为其所分配端口上的代理服务器)有权通过防火墙进行访问,而不允许其他任何机器进出。
2,作为内容服务器的负载均衡器
可以在一个组织内使用多个代理服务器来平衡各 Web 服务器间的网络负载。在此模型中,可以利用代理服务器的高速缓存特性,创建一个用于负载平衡的服务器池。此时,代理服务器可以位于防火墙的任意一侧。如果 Web 服务器每天都会接收大量的请求,则可以使用代理服务器分担 Web 服务器的负载并提高网络访问效率。
对于客户机发往真正服务器的请求,代理服务器起着中间调停者的作用。代理服务器会将所请求的文档存入高速缓存。如果有不止一个代理服务器,DNS 可以采用“循环复用法”选择其 IP 地址,随机地为请求选择路由。客户机每次都使用同一个 URL,但请求所采取的路由每次都可能经过不同的代理服务器。
可以使用多个代理服务器来处理对一个高用量内容服务器的请求,这样做的好处是内容服务器可以处理更高的负载,并且比其独自工作时更有效率。在初始启动期间,代理服务器首次从内容服务器检索文档,此后,对内容服务器的请求数会大大下降。
今天完成的事情:完成了Nginx的安装配置和子域的配置和访问,在加载tomcat里面的项目文件,还有配置Nginx的日志文件,怎么查看access.log的文件.
明天的计划:查看Resin日志,统计访问DB时间,Controller处理时间。---->处理resin的日志的怎么查看
今天遇到的困难:
1.就是在安装和配置Nginx的子域的项目,最开始没有启动tomcat,一直访问不到tomcat里面的项目文件,还有代理的服务器(这个还不是很了解)
2.就是在Nginx的日志文件的配置,还在日志的打印访问的时候,access.log里面没有内容,最开始的编译的问题解决啦,主要是ubantu的bash出问题啦,就执行代码sudo dpkg-reconfigure dash----->选择NO就可以
今天的收获:Nginx的安装配置和子域的配置和访问,在加载tomcat里面的项目文件,还有配置Nginx的日志文件,怎么查看access.log的文件.
评论