linux运维、架构之路-Nginx服务

一、Nginx服务

1、介绍

        Nginx软件常见的使用方式或架构为:LNMP(linux nginx mysql php),Nginx三大主要功能,web网站服务,反向代理负载均衡(nginx lvs haproxy),nginx缓存服务

2、特点

①支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
②资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB
③可以做HTTP反向代理及加速缓存、即负载均衡功能,
内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能。
④具备Squid等专业缓存软件等的缓存功能。
⑤支持异步网络I/O事件模型epoll(Linux 2.6+)(绘图说明同步和异步)

总结:高并发-->资源消耗少-->功能多样(web服务/负载均衡/支持缓存)-->通讯模型先进(epoll)

3、企业功能应用

①作为web服务软件
②反向代理或负载均衡服务
③前端业务数据缓存服务

4、常见提供动态服务软件

①PHP(FastCGI):大中小型网站都会使用,动态网页语言PHP程序的解析容器,可以配合Apache解析动态程序,不过,这里的PHP不是FastCGI守护进程模式,而是mod_php5.so模块形式,也可以配合Nginx解析动态程序,此时的PHP常用FastCGI守护进程模式提供服务。
②Tomcat:中小企业动态Web服务主流,互联网JAVA容器主流(如JSP、do)
③Resin:大型动态Web主流,互联网JAVA容器主流(如JSP、do)
④IIS,微软windows下的Web服务软件(如asp、aspx)

二、Nginx编译安装

1、安装Nginx依赖包

yum install -y pcre-devel openssl-devel

2、编译安装

mkdir -p /server/tools/
cd /server/tools/
wget -q http://nginx.org/download/nginx-1.10.3.tar.gz
useradd www -s /sbin/nologin -M
tar xf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/application/nginx-1.10.3 --user=www --group=www --with-http_stub_status_module  --with-http_ssl_module
make && make install
ln -s /application/nginx-1.10.3/ /application/nginx
/application/nginx/sbin/nginx
lsof -i:80

3、 Nginx重要目录结构

conf

nginx服务配置文件信息

html

web服务的站点目录

logs

nginx服务相关日志文件保存的目录

sbin

nginx服务相关命令保存目录

4、相关命令使用

/application/nginx/sbin/nginx              #启动服务
/application/nginx/sbin/nginx -t           #语法检查
/application/nginx/sbin/nginx –s reload    #优雅重启服务
/application/nginx/sbin/nginx –s stop      #停止服务
/application/nginx/sbin/nginx –V           #查看Nginx软件编译参数

5、Nginx配置文件

[root@web01 conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf #最小化学习nginx配置文件

三、虚拟主机的搭建

1、 创建多域名虚拟主机站点目录

mkdir /application/nginx/html/{www,bbs,blog} –p

2、配置文件增加多虚拟主机

[root@web01 html]# cat ../conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.etiantian.org;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  bbs.etiantian.org;
        location / {
            root   html/bbs;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  blog.etiantian.org;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
    }
}

3、优雅重启Nginx服务

[root@web01 html]# /application/nginx/sbin/nginx -s reload

4、本地域名解析测试

[root@web01 html]# for name in www bbs blog ;do echo 10.0.0.8 ${name}.etiantian.org >/application/nginx/html/$name/index.html ;done #创建不同的首页文件
for name in www bbs blog; do cat /application/nginx/html/$name/index.html;done#检查
10.0.0.8 www.etiantian.org
10.0.0.8 bbs.etiantian.org
10.0.0.8 blog.etiantian.org
利用curl命令测试Nginx配置多域名虚拟主机是否成功
[root@web01 html]# for name in www bbs blog;do curl $name.etiantian.org;done
10.0.0.8 www.etiantian.org
10.0.0.8 bbs.etiantian.org
10.0.0.8 blog.etiantian.org

5、Nginx错误页面

error_page 500 502 503 504 /50x.html; #出现对应的http状态码使用50x.html回应
location = /50x.html{                 #location 区块开始,访问50x.html
       root  html;                    #指定对应的站点目录为html
}

6、其它扩展知识小结

利用vim复制命令,复制创建多个server主机标签;即x,ycopyz---10,17copy17

nginx配置文件编辑技巧,可以利用%在server一对花括号之间进行切换

③304状态码的意义说明

304状态码是浏览器缓存造成的,可以利用装包工具进行查看获取(抓包工具进行理解http访问过程)

取消缓存的方式为:在浏览器设置中进行清除缓存;或者采用浏览器强制刷新功能进行浏览器缓存的刷新

wireshark抓包软件使用

启动软件---选择需要进行转包的网卡---开始进行抓包

vim批量编辑方法:

ctrl+v进入批量编辑模式

上下箭头选中批量操作的行

shift+i 编辑选中的第一行

按ESC结束编辑,多行同时编辑完成

成功最有效的方法就是向有经验的人学习!
原文地址:https://www.cnblogs.com/yanxinjiang/p/7511528.html