搭建ngnix环境

来源:互联网 发布:录直播的软件 编辑:程序博客网 时间:2024/05/24 06:35

http://blog.csdn.net/qq_35661734/article/details/52368217


2.Nginx
2.1Nginx简介
Nginx是俄罗斯人开发,开源的,免费的。
Nginx功能:
1)nginx作为http服务器:类似apache,tomcat,遵循http协议。
a)访问图片服务器,加载图片
b)页面静态化:nginx访问html页面。
2)负载均衡(反向代理服务器)
a)高并发
b)提高网站性能
3)高速缓存
a)不建议使用。网站访问量较小,可以使用。
4)保护网站安全。
2.2Nginx作为HTTP服务器
Nginx作为HTTP服务器,类似tomcat,访问页面。
业务使用:
1)访问图片服务器
2)访问Freemarker页面静态化页面

img14.360buyimg.comhttp://item.jd.com/

2.3正向代理
正向代理,针对客户机来说,客户机发送请求,不能直接访问服务器,把请求交给代理服务器,代理服务器转发请求给目的服务器,获取请求数据,把数据交给用户。
正向代理特点:
1)从宏观上分析:代理服务器和客户机处于统一机房。
2)客户机是知道代理服务器存在
3)代理服务器必须经过配置然后才能使用。

2.4反向代理服务器
反向代理:针对客户机来说,反向代理服务器针对客户来说是不可见,客户机发送请求,反向代理服务器转发请求,返回结果。
反向代理特点:
1)反向代理服务器和项目部署在 同一个机房。
2)反向代理服务器对客户机是不可见的。

2.5负载均衡
负载均衡是根据http重定向转发请求,提高网站性能。

如果集群中请求机器出现宕机,或者比较忙,nginx修改http请求地址,重定向机器完好,或者不忙的机器,提高网站性能。提高网站容错能力。
2.6高速缓存

Nginx缓存:
Nginx缓存的是一些静态资源:html页面,样式,js都可缓存。
2.7网站安全

Nginx保护网站安全:
主要通过nginx和服务器之间防火墙保护网站安全,防火墙只允许经过nginx请求通过,其他的请求不能通过。
3.nginx安装
3.1下载

进入http://nginx.org/en/download.html 下载nginx1.8.0版本(当前最新稳定版本)。

3.2安装
3.2.1nginx安装环境
nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。
gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel

openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel

使用rz命令需要安装插件
yum install lrzsz -y

3.3Linux虚拟机联网
联网环境:NAT路由模式联网
虚拟需要联网:网关正确,DNS服务器必须和当前联网DNS服务器是一个IP。
修改网卡配置文件:
查询网关IP:

修改命令:vim /etc/sysconfig/network-scripts/ifcfg-eth0
1)修改网关
2)DNS服务器IP

3.4安装nginx
1)导入nginx安装包
a)Rz命令导入nginx安装包到usr/local/hadoop目录下面。
2)解压:tar –zxvf nginx-1.8.0.tar.gz
[root@localhost hadoop]# ll
total 161844
-rw-r–r–. 1 root root 8816567 May 5 2015 apache-tomcat-7.0.61.tar.gz
drwxr-xr-x. 8 uucp 143 4096 Oct 8 2013 jdk1.7.0_45
-rw-r–r–. 1 root root 138094686 May 5 02:08 jdk-7u45-linux-x64.tar.gz
drwxr-xr-x. 8 1001 1001 4096 Apr 21 2015 nginx-1.8.0
-rw-r–r–. 1 root root 832104 Jun 8 2015 nginx-1.8.0.tar.gz
3)设置安装参数
进入nginx解压目录进行参数设置:
./configure \
–prefix=/usr/local/hadoop/nginx \
–pid-path=/var/run/nginx/nginx.pid \
–lock-path=/var/lock/nginx.lock \
–error-log-path=/var/log/nginx/error.log \
–http-log-path=/var/log/nginx/access.log \
–with-http_gzip_static_module \
–http-client-body-temp-path=/var/temp/nginx/client \
–http-proxy-temp-path=/var/temp/nginx/proxy \
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
–http-scgi-temp-path=/var/temp/nginx/scgi

–prefix:设置nginx安装路径
/var/temp/nginx目录需要手动创建
创建名令:mkdir -p /var/temp/nginx

3)编译
编译命令:make
4)安装
安装命令:make install
5)启动
a)进入nginx安装目录sbin
b)./nginx
6)访问nginx

4.Nginx命令
4.1Nginx启动流程
Nginx启动时候默认加载安装目录conf/nginx.conf
也可以指定加载配置路径:./nginx –c /usr/local/hadoop/nginx-1.8.0/conf/nginx.conf
4.2启动命令
1)./nginx
2)./nginx –s reload
4.3停止命令
1)./nginx –s stop
解析:强制终止nginx进程。
2)./nginx –s quit
解析:凌迟处死,先让nginx把任务完成,然后终止。
5.Nginx.conf

user nobody;

worker_processes 1; //全局块

error_log logs/error.log;

error_log logs/error.log notice;

error_log logs/error.log info;

pid logs/nginx.pid;

events {
worker_connections 1024; //events块
}

http { //http块
include mime.types;
default_type application/octet-stream;

sendfile        on;keepalive_timeout  65;server {  //server块    listen       80;    server_name  localhost;    location / { //资源路径块        root   html;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }}

}

全局块:配置影响nginx全局参数,配置工作进程数。默认1
Events:工作连接数,默认1024.
http块:配置多个Server,配置虚拟主机,负载均衡等等。
Server块:配置服务器,服务器端口,服务器IP地址。
Location块:定位资源文件位置。

6.虚拟主机
虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.
1)基于端口虚拟主机
2)基于域名虚拟主机
6.1端口虚拟主机
修改nginx.conf配置文件:
http {
include mime.types;
default_type application/octet-stream;

sendfile        on;keepalive_timeout  65;server {    listen       80;    server_name  localhost;    location / {        root   html;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }} server {    listen       81;    server_name  localhost;    location / {        root   html-81;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }}

6.2创建资源访问路径
[root@localhost nginx]# ll
total 16
drwxr-xr-x. 2 root root 4096 May 12 22:56 conf
drwxr-xr-x. 2 root root 4096 May 12 23:17 html
drwxr-xr-x. 2 root root 4096 May 12 23:18 html-81
drwxr-xr-x. 2 root root 4096 May 12 22:56 sbin
nginx配置文件Server就是我们虚拟主机服务器,访问81端口所对应的主机,81端口所对应资源路径是location html-81,访问文件夹html-81中index.html
修改index.html

Welcome to nginx!HTML-81

6.3重启nginx
重启命令:./nginx –s reload

6.4基于域名虚拟主机
理解:

www.jd.comJd.search.com

测试访问nginx域名虚拟主机,不需要经过DNS域名解析服务器。可以本地hosts文件,添加以上域名,跳过DNS域名解析服务器。
添加域名:C:\Windows\System32\drivers\etc\hosts

修改nginx.conf配置文件:
http {
include mime.types;
default_type application/octet-stream;

sendfile        on;keepalive_timeout  65;server {    listen       80;    server_name  www.jd.com;    location / {        root   html;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }} server {    listen       80;    server_name  jd.search.com;    location / {        root   html-81;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }}

7.反向代理

www.jd.comJd.search.com

代理服务器:客户机发送请求给代理服务器,代理 服务器把请求转发tomcat服务器,tomcat接受请求,处理请求,返回处理结果给代理服务器,代理服务器返回给客户机。

7.1部署tomcat
根据图解,部署2台tomcat服务器:
[root@localhost tomcat-nginx]# ll
total 8
drwxr-xr-x. 9 root root 4096 May 12 23:58 tomcat1
drwxr-xr-x. 9 root root 4096 May 12 23:59 tomcat2
修改tomcat2端口,修改3个端口,tomcat1和tomcat2端口不能相同。

分别修改tomcat1和tomcat2初始化页面:webapps/ROOT/index.jsp

7.2配置nginx.conf
http {
include mime.types;
default_type application/octet-stream;

sendfile        on;keepalive_timeout  65;upstream mytomcat1{server 192.168.66.66:8080;}upstream mytomcat2{server 192.168.66.66:8081;}server {    listen       80;    server_name  www.jd.com;    location / {        #root   html;        #index  index.html index.htm;    proxy_pass http://mytomcat1;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }} server {    listen       80;    server_name  jd.search.com;    location / {        #root   html-81;        #index  index.html index.htm;    proxy_pass http://mytomcat2;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }}

1)客户机发送请求www.jd.com
2)Nginx接受请求:通过nginx.conf配置主机Server地址匹配:www.jd.com
3)匹配成功:就会去location下面寻找需要资源
4)在location配置代理:去寻找代理服务器。http://mytomcat1
5)寻找名称是mytomcat1的upstream
6)Upstream负责把请求转发tomcat1,或者tomcat2.

8.负载均衡
发送一个请求给反向代理服务器,反向代理服务器把请求分发给服务器,如果有服务器宕机,nginx重定向请求,如果服务器较忙,nginx也可以转发请求。

www.jd.comJd.search.com

根据图解:
部署3台tomcat,www.jd.com访问2台服务器才有负载均衡。
创建tomcat3服务器:
[root@localhost tomcat-nginx]# ll
total 12
drwxr-xr-x. 9 root root 4096 May 12 23:58 tomcat1
drwxr-xr-x. 9 root root 4096 May 12 23:59 tomcat2
drwxr-xr-x. 9 root root 4096 May 13 00:24 tomcat3
修改tomcat3的端口:修改3个端口
修改完端口,启动tomcat3服务器。
8.1配置nginx.conf

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

sendfile        on;keepalive_timeout  65;upstream mytomcat1{server 192.168.66.66:8080;server 192.168.66.66:8082;}upstream mytomcat2{server 192.168.66.66:8081;}server {    listen       80;    server_name  www.jd.com;    location / {        #root   html;        #index  index.html index.htm;    proxy_pass http://mytomcat1;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }} server {    listen       80;    server_name  jd.search.com;    location / {        #root   html-81;        #index  index.html index.htm;    proxy_pass http://mytomcat2;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   html;    }}

负载均衡流程:
1)客户机发送请求给nginx服务器
2)Nginx的Server匹配请求地址
3)从location寻找资源,没有静态资源,找代理
4)通过proxy_pass转发upstream代理服务器
5)Upstream代理服务器有2台
6)Nginx根据nginx轮询算法访问tomcat服务器(2台服务器都不忙)
8.2负载均衡策略
1)轮询
Nginx代理服务器:upstream中包含的服务器默认权重都是1,也就说tomcat1和tomcat2地位都是平等,访问规则:ACACACAC…………..
2)修改权重
访问规则:ACCACCACC…
upstream mytomcat1{
server 192.168.66.66:8080 weight=1;
server 192.168.66.66:8082 weight=2;
}


0 0