nginx搭建

一、Nginx web服务应用

问题一、为什么nginx总体薪你呢个比apache高?

nginx使用最新的epoll(linux2.6内核)和kqueue(freebsd)异步网络I/O模型,
而apache则使用的是传统的select模型。目前linux下能够承受高并发访问的Squid、Memcache就是用的异步模型

 问题二、怎么正确的选择web服务器

1 静态业务:如果是高并发场景:尽量采用Nginx或者lightpd,首选nginx
2 动态业务:理论上nginx和apache都可以,但是建议选择nginx,要避免相同业务服务的多样化,额外增加维护成本
3 如果既有静态业务,又有动态业务:那就采用nginx
如下:

1、  http协议包含很多功能:上网的www是http功能之一www服务默认端口80.OSI 第7层 应用层协议Https 默认端口443.加密的http服务

2、  实现www服务常用web软件产品nginx apache(静态web软件)

3、  经典流行的web组合

lamp(linux apache mysql php) ==》经典

lnmp(lemp)(linux nginx mysql php)===》国内流行

nginx(engine x)

近三年的一个新的组合

LNMP(Linux Nginx MySQL PHP)

LEMP(Linux (Engine x) MySQL PHP)

4、  ngix(engine x)介绍

nginx,www服务软件,俄罗斯人开发 开源 性能很高

Nginx (engine x)web产品 俄罗斯人开发,c语言开发 780k

淘宝更改的nginx,tengine(http://tengine.taobao.org/

5、nginx特点

静态小文件(1M),支持高并发,同时占有的资源很少。3W并发,10个进程,内存150M
nginx特点:
a、    配置简单,灵活轻量
b、    高并发(静态小文件),静态几万的并发
c、    资源消耗小,2W并发 开10个线程服务,内存消耗几百M
d、    功能种类比较多可以做HTTP反向代理及加速,即负载均衡功能,内置对RS节点服务器健康检查功能,相当于专业的haproxy软件或者lvs的功能呢个
e、    支持异步网络IO事件模型epoll(linux2.6)
f、    nginx可以配合动态php服务(FASTCGI接口)
g、    利用nginx可以对IP限速,可以限制连接数
h、 具备squid等专业缓存软件等的缓存功能呢个

6、他所具备其他www服务特性如下

支持基于名字、端口以及ip的多虚拟主机站点
支持rewrite模块,支持URL重写及正则表达式匹配
支持基于客户端IP地址和HTTP基本认知的访问控制(密码访问)
支持http相应速率限制
支持同一IP地址的并发连接或请求限制

7、  nginx应用场合

a、    提供静态服务(图片,视频服务)另一个lighttpd。高并发几万并发。html,js,css,flv,jpg,gif,等类似于lighttpd
b、    提供动态服务,nginx+fastcgi的方式运行php,jsp动态并发:500-1500
c、    提供反向代理(proxy),或者称为负载均衡。日pv2000w以下,并发1w以下,都可以用NGINX做代理。haproxy,F5,A10
d、    提供缓存服务。类似SQUID,VARNISH,ATS
nginx主要应用场景
a、    web服务器(首选)
静态文件,nginx首选
动态文件,配合fastcgi支持php
b、    反向代理(负载均衡),1000-2000wpv,并发6000
c、    缓存(不是很多)

8、  nginx支持虚拟主机

一个server标签段就是一个虚拟主机
a、    基于域名的虚拟主机。通过域名来区分虚拟主机===》应用 :外部网站(生产必用)
b、    基于端口的虚拟主机。通过端口来区分虚拟主机===》应用:公司内部网站,网站的后台
c、    基于IP的虚拟主机。几乎不用。不支持ifconfig别名,配置文件可以

二、nginx安装

A、 安装PCRE

Pcre全程(perl Compatible Regular Expressions),中文perl兼容正则表达式,官方站点http://www.pcre.org/

HTTP rewrite module requirs the PCRE library

安装之前的准备工作

1、    首先检查内核以及版本
Cat /etc/redhat-release
Uname -r 
Uname -m
2、检查是否安装了pcre
rpm -qa pcre-devel
如果没有安装需要安装
Yum install pcre pcre-devel -y

B、安装openssl  SSL modules require the OpenSSL library

Yum install openssl-devel -y

准备安装Nginx

1、    进入专用目录
Cd /home/pyrene/tools
2、下载  (ls 文件 -lk: 查看文件大小)
wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
3、解压之后进入目录
tar -xf nginx-1.6.3.tar.gz
Cd nginx-1.6.3
4、安装
安装如果想安装需要的东西./configure —help里面有
这里推荐几个
首先制定安装为位置 —prefix=/applicatiom/nginx-1.6.3
之后制定用户名和组 —user=ninx —group=www 
制定加密模块 —with-http_ssl_module
制定状态   -with-http_stub_status_module
安装:
在 nginx-1.6.3目录中输入
 ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=www --with-http_ssl_module --with-http_stub_status_module
5、查看是否成功echo $?
6、创建虚拟用户和组,并且检查
Useradd www -s /sbin/nologin -M
Id nginx
7、安装 
make &&make insatll
8、创建连接  
由于安装的时候希望能看到版本号,但是使用的时候又不想用版本号太长,所以创建连接
[root@A nginx-1.6.3]# cd ..
[root@A tools]# ll /application/nginx-1.6.3/ -ld
drwxr-xr-x. 6 root root 4096 12月 14 09:40 /application/nginx-1.6.3/
[root@A tools]# ln -s /application/nginx-1.6.3/ /application/nginx

上面就是nginx安装过程

三、安装过后

1、  启动

[root@A tools]# /application/nginx/sbin/nginx

2、查看服务是否开启

[root@A tools]# ps -ef|grep nginx|grep -v grep

root       5677      1  0 09:52 ?        00:00:00 nginx: master process /application/nginx/sbin/nginx

nginx      5678   5677  0 09:52 ?        00:00:00 nginx: worker process

3、查看端口是否开启

[root@A tools]# ss -lntup|grep nginx

tcp    LISTEN     0      128                    *:80                    *:*      users:(("nginx",5677,6),("nginx",5678,6))

4、查看是否开启

[root@A tools]# curl 127.0.0.1

注意:必须关闭防火墙

出现下面截图就是成功的

注意点:

1、查看编译的参数。公司里面的软件不是自己安装的,所以要查看一下到底有什么参数的时候用V,如下:

[root@A tools]# /application/nginx/sbin/nginx -V

2、如果安装好了nginx如果访问不了浏览器需要关闭selinux和防火墙

 

 

小试牛刀:部署一个web站点

1、进入安装目录里面

[root@A tools]# cd /application/nginx

[root@A nginx]# ls -ld

drwxr-xr-x. 11 root root 4096 12月 14 09:52 .

[root@A nginx]# ls -l

总用量 36

drwx------. 2 nginx root 4096 12月 14 09:52 client_body_temp

drwxr-xr-x. 2 root  root 4096 12月 14 09:40 conf

drwx------. 2 nginx root 4096 12月 14 09:52 fastcgi_temp

drwxr-xr-x. 2 root  root 4096 12月 14 09:40 html

drwxr-xr-x. 2 root  root 4096 12月 14 09:52 logs

drwx------. 2 nginx root 4096 12月 14 09:52 proxy_temp

drwxr-xr-x. 2 root  root 4096 12月 14 09:40 sbin

drwx------. 2 nginx root 4096 12月 14 09:52 scgi_temp

drwx------. 2 nginx root 4096 12月 14 09:52 uwsgi_temp

上面的后缀是temp的都是临时文件

过滤掉临时目录,找到下面四个文件

[root@A nginx]# ls -l|grep -v temp

总用量 36

drwxr-xr-x. 2 root  root 4096 12月 14 09:40 conf  →配置文件目录

drwxr-xr-x. 2 root  root 4096 12月 14 09:40 html  →默认网站目录

drwxr-xr-x. 2 root  root 4096 12月 14 09:52 logs   →错误,访问日志

drwxr-xr-x. 2 root  root 4096 12月 14 09:40 sbin   →启动命令

[root@A nginx]# cd html

[root@A html]# ls

50x.html  index.html

这里的index文件就是首页文件

2、然后修改index文件内容,之后刷新浏览器

只要不修改配置文件,只修改程序,就不需要重启服务

就成功了

关于配置文件

进入conf目录,配置文件只有下面才是

[root@A conf]# ls -l nginx.conf

-rw-r--r—. 1 root root 2656 12月 14 09:40 nginx.conf

1、查看配置文件

[root@A conf]# ls -l nginx.conf

-rw-r--r--. 1 root root 2656 12月 14 09:40 nginx.conf

[root@A conf]# grep root nginx.conf

            root   html;

            root   html;

        #    root           html;

        # deny access to .htaccess files, if Apache's document root

    #        root   html;

#        root   html;

2、查看端口

[root@A conf]# lsof -i:80

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx   5677  root    6u  IPv4  23336      0t0  TCP *:http (LISTEN)

nginx   5678 nginx    6u  IPv4  23336      0t0  TCP *:http (LISTEN)

小结:nginx简单访问原理

1、  在浏览器输入服务器ip地址,就相当于直接访问到我的linux,80端口

2、  linux监听响应80端口,这个时候浏览器就和linux建立了一个http连接

3、  之后浏览器给linux发送http请求报文,这个时候linux下的nginx就会读取root对应的站点目录下面的修改文件,读取到了就会返回给浏览器

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/pyrene/p/6431731.html