Nginx相关

一、Nginx简介

1、Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个邮件代理服务器、TCP/UDP代理服务器;

2、Nginx 特点是占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx官方测试为5万并发请求;

3、Nginx 的并发处理能力在同类型的Web服务器中表现极好(Lighttpd、Apache),在全世界范围内大量的网站使用了Nginx,国内互联网中也大量使用了Nginx,比如:淘 宝、新浪、网易等;

二、Nginx环境搭建

1、下载官方网站:http://nginx.org

Nginx 有 Windows 版本和 Linux 版本,但更推荐在 Linux 下使用 Nginx;

下载nginx-1.12.2.tar.gz的源代码文件:wget http://nginx.org/download/nginx-1.12.2.tar.gz

2、安装

①解压下载下来的nginx文件,执行命令:tar -zxvf nginx-1.12.2.tar.gz

②切换至解压后的nginx主目录,执行命令:cd nginx-1.12.2

③在nginx主目录下nginx-1.12.2执行命令:./configure --prefix=/usr/local/nginx  (其中--prefix是指定nginx安装路径)

④执行命令进行编译:make

⑤执行命令进行安装:make install

3、安装注意事项-----Nginx的安装需要Linux安装相关的几个库,否则编译会出现错误,这几个库分别是:

①gcc编译器是否安装?

检查是否安装:yum list installed | grep gcc

执行安装:yum install gcc -y

②openssl库是否安装?

检查是否安装:yum list installed | grep openssl

执行安装:yum install openssl openssl-devel -y

③pcre库是否安装?

检查是否安装:yum list installed | grep pcre

执行安装:yum install pcre pcre-devel -y

④zlib库是否安装?

检查是否安装:yum list installed | grep zlib

执行安装:yum install zlib zlib-devel -y

⑤后面fastdfs需要的lib库

yum install libevent  libevent-devel -y

4、启动

①切换到nginx安装目录的sbin目录下,执行:./nginx -c /usr/local/nginx/conf/nginx.conf

②或者路径指定完整来启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf(其中-c是指定配置文件路径及文件名)

5、关闭

①优雅关闭Nginx:找出nginx的进程号:ps -ef | grep nginx,执行命令:kill -QUIT 主pid

②快速关闭Nginx:kill -TERM 主pid

③平滑重启Nginx:kill -HUP 主pid

6、配置检查

检查Nginx配置文件是否正确:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t

7、其他

Linux上查看nginx版本:/usr/local/nginx/sbin/nginx -V

-v (小写的v)显示 nginx 的版本;
-V (大写的V)显示 nginx 的版本,编译器版本和配置参数;

8、windows下环境搭建

①在官方网站下载最新windows版的nginx:http://nginx.org/en/download.html,将下载下来的nginx压缩包解压缩到一个目录下,解压后该软件就可以启动使用了 ;

启动方式1:双击解压目录下的nginx.exe文件即可运行nginx,这种方式启动的Nginx若要关闭,请在资源管理器杀掉进程(有两个进程)

启动方式2:进入dos窗口,切换到nginx主目录下,在dos窗口执行命令:start nginx 

③关闭nginx,在dos窗口执行命令:nginx -s stop

三、负载均衡

1、负载均衡概述:

负载均衡通常是指将请求【均匀】分摊到集群中多个服务器节点上执行,负载均衡的关键在于【均匀】,这里的均匀是指在一个比较大的统计范围内是基本均匀的, 并不是完全均匀;

2、负载均衡实现方式

①硬件负载均衡

比如 F5、深信服、Array 等,优点是有厂商专业的技术服务团队提供支持,性能稳定;缺点是费用昂贵,对于规模较小的网络应用成本太高。

②软件负载均衡

比如 Nginx、LVS、HAProxy 等,优点是免费开源,成本低廉。

3、Nginx实现负载均衡

通过在Nginx的nginx.conf文件进行配置即可实现配置如下:(

①在http模块的 #gzip  on; 下面加上:(举例)
upstream www.myweb.com { 
      server  127.0.0.1:9100 weight=1; 
      server  127.0.0.1:9200 weight=1;  

其中weight=1表示权重,用于后端服务器性能不均的情况,访问比率约等于权重之比,权重越大访问机会越多;

upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器;

②在server模块里添加:(举例)
location /myweb {
proxy_pass http://www.myweb.com;
}

其中 www.myweb.com 字符串要和 upstream 后面的字符串相等;

四、静态代理

1、把所有静态资源的访问改为访问nginx,而不是访问tomcat,因为nginx更擅长于静态资源的处理,性能更好,效率更高;所以在实际应用中,我们将静态资源比如图片、css、html小文件、js等交给nginx处理,而不是由tomcat处理;Nginx静态代理如何实现?(通过在Nginx的nginx.conf文件进行配置即可实现)

2、方式一:通过在nginx.conf配置文件中添加静态资源的location,比如:

#当访问静态资源,则从linux服务器/opt/static目录下获取(举例)
location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
        root /opt/static;
}

3、方式二:通过在nginx.conf配置文件中配置静态资源所在目录实现,比如:

location ~ .*/(css|js|img|images) {
      root   /opt/static;
}

将静态资源放入 /opt/static 目录下,然后用户访问时由nginx返回这些静态资源;

五、动静结合

1、概述

动静结合是实际应用中常见的一种场景,主要是为了实现动静分离

动态资源,如jsp、servlet等由tomcat或其他web服务器完成;

静态资源,如图片、css、js等由nginx或其他http服务器完成;

让它们各司其职,专注于做自己擅长的事情;

动静结合充分利用了它们各自的优势,从而达到更高效合理的架构

2、用户 ---->Nginx负载均衡---->一个或多个Tomcat(处理动态资源)+一个或多个Nginx(处理静态资源)

3、示例

upstream www.p2p.com { 
      server  127.0.0.1:9100 weight=5; 
      server  127.0.0.1:9200 weight=2;  
}
    
upstream static.p2p.com { 
      server  127.0.0.1:81 weight=1; 
      server  127.0.0.1:82 weight=1;  
}

①负载均衡Nginx配置:

location /p2p {
            proxy_pass http://www.p2p.com;
}


location ~ .*/(css|js|img|images) {
            proxy_pass http://static.p2p.com;
}

②静态代理Nginx配置:

location /myweb {
root   /opt;
}

六、虚拟主机

1、基于域名的虚拟主机

基于域名的虚拟主机是最常见的一种虚拟主机

server {
        listen       80;
        server_name  www.myweb.com;
      location /my
web {

roxy_pass http://www.myweb.com;
        }
}

需要修改一下本地的hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts

在hosts文件配置:192.168.91.129 www.myweb.com

前面是Linux的IP,后面是你自定义的域名

基于端口的虚拟主机配置,使用端口来区分,浏览器使用域名或ip地址:端口号访问

2、基于端口的虚拟主机

server {
    listen 8080;
  server_name www.myweb.com;
    location /myweb {
            proxy_pass http://www.myweb.com;
    }
}


server {
    listen 9090;
    server_name www.myweb.com;
    location /p2p {
            proxy_pass http://www.p2p.com;
    }
}

你可能感兴趣的:(整理总结)