浏览器和服务器的关系

NGINX

nginx是什么

nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。
nginx不但是一个优秀的web服务软件,还可以作为反向代理,负载均衡,以及缓存服务使用。 面试技巧:
支持高并发,能支持几万并发连接
资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M
可以做http反向代理和负载均衡
支持异步网络i/o事件模型epoll

安装,启动nginx

0.解决依赖关系
    yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel            sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-        devel -y

1.下载源码包
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
2.解压缩源码
tar -zxvf nginx-1.12.0.tar.gz
3.配置,编译安装 开启nginx状态监测功能
./configure --prefix=/opt/nginx-12/ --with-http_ssl_module --with-http_stub_status_module
编译且安装
make && make install
4.启动nginx,进入sbin目录,找到nginx启动命令
cd sbin
./nginx # 启动
./nginx -s stop # 关闭
./nginx -s reload # 重新加载

安装完成后检测服务

netstat -tunlp |grep 80
../sbin/nginx -t 检测nginx.conf配置文件的语法正确性
curl -i 127.0.0.1
# 如果访问不了,检查selinux,iptables

部署一个web站点

nginx默认站点是Nginx目录下的html文件夹,这里可以从nginx.conf中查到
location / {
root html; # 这里是默认的站点html文件夹,也就是/opt/nginx1-12/html/文件夹下的内容
index index.html index.html; # 站点首页文件名是index.html  

Nginx的目录结构

  •   conf存放nginx所有配置文件的目录,主要nginx.conf

  •   html存放nginx默认站点的目录,如index.html、error.html等

  •   logs存放nginx默认日志的目录,如error.log、access.log

  •   sbin存放nginx主命令的目录,sbin/nginx

Nginx主配置文件解析

http内核模块

//公共的配置定义在http{}
http { //http层开始
...
//使用Server配置网站, 每个Server{}代表一个网站(简称虚拟主机)
'server' {
listen 80; //监听端口, 默认80
server_name localhost; //提供服务的域名或主机名
access_log host.access.log //访问日志
//控制网站访问路径
'location' / {
root /usr/share/nginx/html; //存放网站代码路径
index index.html index.htm; //服务器返回的默认页面文件
}
//指定错误代码, 统一定义错误页面, 错误代码重定向到新的Locaiton
error_page 500 502 503 504 /50x.html;
}
...
//第二个虚拟主机配置
'server' {
...
} include /etc/nginx/conf.d/*.conf; //包含/etc/nginx/conf.d/目录下所有以.conf结尾的文件 } //http层结束

Nginx状态信息配置 

启动status状态功能,修改配置文件

location /status {
# 开启nginx状态功能
      
stub_status on;
}
限制ip或ip段访问
禁止访问/av/底下的资源 location /av {
deny 122.71.240.254;
#alias /opt/nginx1-12/html/av;
allow 10.1.1.0/16;
}

平滑重启nginx

./sbin/nginx -s reload

访问status页面

http://192.168.119.10/status

通过ab压测命令检测

-n requests #执行的请求数,即一共发起多少请求。

-c concurrency #请求并发数。

-k #启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。

ab -kc 1000 -n 100000 http://192.168.119.10/

nginx访问日志功能:

1.在配置文件中,打开注释,../conf/nginx.conf 

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main;

对应参数解析

$remote_addr    记录客户端ip
$remote_user 远程用户,没有就是 “-”
$time_local    对应[14/Aug/2018:18:46:52 +0800]
$request     对应请求信息"GET /favicon.ico HTTP/1.1"
$status     状态码
$body_bytes_sent  571字节 请求体的大小
$http_referer  对应“-”  由于是直接输入浏览器就是 -
$http_user_agent  客户端身份信息
$http_x_forwarded_for  记录客户端的来源真实ip 97.64.34.118

配置多个域名的虚拟主机

修改nginx.conf文件

http {
include mime.types;
default_type application/octet-stream; '$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; server {
listen 80;
server_name www.wjsqsmy.com; #charset koi8-r; #access_log logs/host.access.log main; location /status{
root /data/qsmy; # 目录可以自己创建
index index.html index.htm;
stub_status on;
}
     # 可以优化错误信息页面
error_page 400 401 402 404 /40x.html; # 40x.html文件在qsmy文件夹下
   } server {
listen 80;
server_name www.wjshuoying.com; #charset koi8-r; #access_log logs/host.access.log main; location / {
root /data/huoying;
index index.html index.htm;
} error_page 400 401 402 404 /40x.html; error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}  

监控访问信息

tail -f /opt/nginx1-12/logs/access.log

Linux下安装和使用nginx的更多相关文章

  1. Linux下安装与配置Nginx

    一.准备 Nginx版本:nginx-1.7.7.tar.gz   请自行到官网下载对应的版本. 二.步骤 ♦在Linux新建一个queenLove用户 [root@localhost /]# use ...

  2. 【云服务器部署】---Linux下安装nginx

    [云服务器部署]---Linux下安装nginx 之前两篇,分别讲了:Linux下安装MySQL  和  springboot项目部署云服务器 nginx安装也是挺简单的.具体步骤如下: 第一步,下载 ...

  3. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  4. linux下安装nginx及初步认识

    linux下安装配置nginx nginx:是一个高性能的反向代理服务器正向代理代理的是客户端,反向代理代理的是服务端. 这里以nginx-1.12.2版本为例子 1.首先去官网下载nginx-1.1 ...

  5. Linux下安装php环境并且配置Nginx支持php-fpm模块[www]

    Linux下安装php环境并且配置Nginx支持php-fpm模块 http://www.cnblogs.com/freeweb/p/5425554.html 5分钟搭建 nginx +php --- ...

  6. Nginx 在 Linux 下安装与搭建集群

    搭建集群图例 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分: 环境说明 Linux 为 CentOS 7.2 发行版 + Java jdk 1.8 + ...

  7. linux 下安装redis以及php Redis扩展

    [php] view plaincopy在CODE上查看代码片派生到我的代码片 linux 下安装redis以及php Redis扩展 环境配置: centos6. nginx/ php/ mysql ...

  8. Linux下安装Nginx1.9.3-0303(本人亲手实践)

    Linux下安装Nginx1.9.3 Linux操作系统 Oel 5.8 64bit 最新版Nginx: 1.9.3 最近同事让我帮忙搞 ngix,两天时间 安装.配置搞定了.继续 Nginx 1.9 ...

  9. CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

    原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作 ...

随机推荐

  1. 分享给大家一个500G.Net ftp资料库

    把自己经常用到的一个ftp资料库分析给大家,大家可以到上面下载资料学习,资料比较齐全,另外还有部分工具, ftp的地址是:ftp://202.107.251.26

  2. linux-2.6.22.6 内核源代码包的文件目录介绍

    下载一个linux-2.6.22.6.tar并解压 再其解压的文件中加入下面的bat脚本 生成当前文件的目录树脚本如下: @rem 此BAT文件名一定不能是"tree.bat",否 ...

  3. centos7安装Lnmp(Linux+Nginx+MySql+Php+phpMyAdmin+Apache)

    centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache   Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器,Ng ...

  4. Lazarus 0.9.26——UTF8编码副作用

    Lazarus 0.9.26中,涉及范围最广的的改变就是所有的的String默认都采用UTF8编码,IDE终于有了完全的UTF8支持,以前在源码编辑器中“吃掉”半个汉字的情况不再出现.对于Linux下 ...

  5. replace()方法解析

    search(),match(),用于查找指定字符串返回首次出现的索引值与指定的字符串.这篇我们讲找到指定字符串之后将其替换掉.直接贴: var str="Visit Microsoft!& ...

  6. LISTVIEW显示JPEG缩略图

    http://www.ctsys.cn/files/SHOW_FILES.ASPX?ID=22 许多的JPEG图片浏览器(如由我设计的<JPEG浏览缩放器>),都可以将JPEG缩略图放置到 ...

  7. java.io.Closeable 接口

    package java.io; import java.io.IOException; /** * 关闭数据资源*/public interface Closeable extends AutoCl ...

  8. Android高级控件(下)

    Chronometer计时器 常用的方法 getBase() 基准时间 setFormat 设置显示格式 start() 开始计时 stop() 停止计时 setOnChronometerListen ...

  9. SqlServer 中 for xml path 相关

    表结构: typename varchar(50) typedesc varchar(50) 示例 SQL 语句: SELECT '{"'+TypeName, '":"' ...

  10. C# 中文判断

    原地址忘了,也是博客园的 /// <summary> /// 是否是 中文 /// </summary> /// <param name="CString&qu ...