nginx的简介和基本配置

1 简介

       Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪网易、 腾讯等。

2优点

       Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:

       在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

    作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。      Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。

3安装(源码包)

  a低版本

yum  -y  groupinstall  "开发工具"     "开发库"

rpm -q  make  gcc  gcc-c++

netstat  -utunalp | grep :80   确保80端口没有被占用

useradd  -M  -s  /sbin/no   www                默认使用www用户

yum -y install  pcre-devel

nginx  地址重写    修改客户端访问自己的url路径 

Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。

tar -zxvf nginx-0.8.55.tar.gz

./configure  --help

./configure  --prefix=/usr/local/nginx   --user=www                  制定安装目录和用户,

--group=www   --with-http_stub_status_module                      工作组和功能

--with-http_ssl_module 

make  

make   install

在 /usr/local/nginx/ 下     

conf/nginx.conf                                                                                //主配置文件

html                                                                                                   //网页目录

logs                                                                                                   //日志文件

sbin/nginx                                                                                         //启动脚本


启动服务   /usr/local/nginx/sbin/nginx

停止服务   /usr/local/nginx/sbin/nginx  -s  stop

nginx 启动脚本常用选项

-h     查看帮助信息

-v 查看nginx版本

-V 查看编译参数   ./configure

-t    nginx.conf 测试默认配置文件

-c   安装目录/conf/nginx-2.conf     指定配置文件

-s  stop      停止nginx服务


格式  :   pkill/kill     -信号     进程名/pid号

例子 :  pkill      -int     nginx

信号

TERM, INT   快速关闭 

QUIT 从容关闭,关闭主进程顺便关闭工作子进程

HUP         重载配置用新的配置开始新的工作进程从容关闭旧的工作进程 

USR1 重新打开日志文件 

USR2 平滑升级可执行程序

WINCH 从容关闭工作进程,不会立即关闭子进程

pkill -USR1  nginx

kill  -INT  `cat /usr/local/nginx/log/nginx.pid`


b平滑升级nginx (在不停止服务,升级软件版本,版本不宜跨度太大)

tar -zxvf nginx-1.0.5.tar.gz

cd nginx-1.0.5

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

make

mv  /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginxold

mv nginx-1.0.5/objs/nginx  /usr/local/nginx/sbin/

cd nginx-1.0.5

make  upgrade

/usr/local/nginx/sbin/nginx  -v                                                       查看版本


4基本配置

#运行用户

user www-data;    

#启动进程,通常设置成和cpu的数量相等

worker_processes  1;

#全局错误日志及PID文件

error_log  /var/log/nginx/error.log;

pid        /var/run/nginx.pid;

#工作模式及连接数上限

events {

    use   epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能

    worker_connections  1024;#单个后台worker process进程的最大并发链接数

    # multi_accept on; 

}

a  基于域名的虚拟主机(通过主机名区分客户端的访问)

http {

   server  {

   listen  80;

   server_name   www.zwl.com;

   location  /  {

            root  /www;

            index index.html;

    }

 }

 server {

    listen  80;

    server_name  bbs.zwl.com;

    location  /  {

            root  /bbs;

            index index.html;

    }

 }

}


b基于端口的虚拟主机(通过端口区分客户端的访问)

http://www.zwl.com:80     www

http://www.zwl.com:8000     bbs

http://www.zwl.com:8090     web

http  {

   server  {

      listen  80;

     server_name   www.zwl.com;

     location  /  {

            root  /www;

            index index.html;

     }

   }

    server {

      listen  8000;

     server_name  www.zwl.com;

      location  /  {

            root  /bbs;

            index index.html;

       }

  }

   server {

      listen  8090;

     server_name www.zwl.com;

      location  /  {

            root  /web;

            index index.html;

       }

  }

}

c基于ip的虚拟主机(通过ip区分客户端的访问

*  ip 地址要有对应的物理接口

http://192.168.10.254     www

http://192.168.10.200     bbs

ifconfig eth0  192.168.10.254

ifconfig eth0:0  192.168.10.200

http  {

   server  {

      listen  192.168.10.254:80;

     #server_name   www.zwl.com;

     location  /  {

            root  /www;

            index index.html;

     }

   }

    server {

      listen  192.168.10.200:80;

    #server_name  bbs.zwl.com;

      location  /  {

            root  /bbs;

            index index.html;

       }

  }

}


d反向代理也可作web的负载均衡

       反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

       通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务

验证:客户端访问

        看见了吧,同样的域名可以访问不同的页面,nginx他把两台web服务器分别来使用,1:1的

        nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 


5、用户访问控制

只允许从ip地址是192.168.10.200客户端访问 网站192.168.10.254服务器的8000端口

server   {

  listen  8000;

  server_name   www.zwl.com;

  location  /  {

     root   /bbs;

     index  index.html;

     allow 192.168.10.200;

     deny all;

     #deny   192.168.10.0/24 ;

     #allow  all;

  }

}

6、用户认证   (用户访问网站页面时要输入正确的用户名和密码才可以访问)

访问用户名wangfang     791001

server   {

  listen  8000;

  server_name   www.zwl.com;

  location  /  {

     root   /bbs;

     index  index.html;

     allow 192.168.10.200;

     deny all;

     #deny   192.168.10.0/24 ;

     #allow  all;

     auth_basic  "input username and password";

     auth_basic_user_file    /usr/local/nginx/conf/authuser.txt;

  }

}

7防盗链

盗 链:   其他的网站盗连你的网站资源 给自己盈利。

location  ~*   \.(gif|jpg|png|swf|flv)$ {

          valid_referers  none  blocked  www.zwl.com  .zwl.com;

         if ($invalid_referer) {

              rewrite   ^/        http://192.168.10.254/error.html;

            #return   404;

         }

      } 

这就是防止其他网站访问图片的例子,只有在本机和本域才能访问的








时间: 2024-10-16 16:25:08

nginx的简介和基本配置的相关文章

Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。

本文为Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能. 依赖项准备 可能用到的依赖库,以下提供官方网站链接可自行下载: pcre http://www.pcre.org/ zlib http://zlib.net http://sourceforge.net/projects/libpng/files/zlib/ zlib.net上不去-是不是被墙了,我们可以使用另外一个链接zlib是 libpng的依赖库 openssl http://www.opens

Nginx的工作原理和配置详解

一.Nginx简介 Nginx (pronounced engine-x) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started development of Nginx in 2002, with the first public release in 2004. Nginx now hos

Nginx(一) 简介

Nginx简介 一款基于异步框架的轻量级高性能的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器 特点 高并发量:基于 epoll/kqueue 模型开发,支持高并发量,官方说其支持高达 5w 并发连接数的响应 内存消耗少:善于处理静态文件,相较于其他web(比如:apache),占用更少的内存及资源 简单稳定:配置简单(一个conf文件),运行简单(nginx命令),而且运行稳定 模块化程度高:功能模块插件化设计,可以自由配置相应的功能. 支持Rwrite重

Windows下Nginx Virtual Host多站点配置详解

Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 windows7配置Nginx+php+mysql教程. 先说明一下配置多站点的目的:在生产环境中,如果将系统所有代码文件都放在公开目录中,则很容易被查看到系统源码,这样是很不安全的,所以需要只公开index.php的入口文件目录.而同一个服务器中,可能运行多个系统,这样就必须公开多个入口文件目录,以便用不同的

[项目构建 十三]babasport Nginx负载均衡的详细配置及使用案例详解.

在这里再次说明下, 这个项目是从网上 找到的一套学习资料, 自己在 空闲时间学习了这些东西. 这里面的code当然会有很多不完善的地方, 但是确实也能学到很多新东西.感谢看过这一些列博文和评论的小伙伴, 我把自己所看到的学到的拿到这里来分享是想和大家一起学习进步, 想听听园友给出的意见, 也是对自己学习过程的一个总结. 最后我会将这套资料的所有内容共享出来, 如果有愿意学习的同学可以下载下来使用.PS: 我自认为 这些内容对于刚工作1-2年的同学来说真的很适用. 技术无止境, 我们仍需努力! 1

THINKPHP的NGINX rewrite的两种配置

一.普通方式 server { ... location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给ThinkPHP处理 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ \.php/?.*$ { root /var/www/html/website; fastcgi_pass 127.0.0

Nginx与Tomcat安装、配置与优化

Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包安装 yum(或者apt-get)安装,自动联网下载安装包,自动管理依赖关系 编译安装 检查和安装依赖项 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel configure make && make install 启动.停止.重启: 安

Nginx+Memcached+Tomcat集群配置

1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性. 安装和配置Nginx的简单方式如下: 1)      下载并解压Nginx到本地目录:http://nginx.org/en/download.html 2)      对Nginx的配置主要是对它的配置文件/conf/nginx.conf的修改.如下链接是nginx.conf配置文件各个属性的详细说明:

Nginx安装和反向代理配置

Nginx安装和反向代理配置 Nginx安装需要一些准备工作. 安装gcc等 yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 还需要安装pcre,PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl兼容的正则表达式库. yum -y install pcre 下载Nginx源码包,这里选择是1.7.8版本.并且解压缩,并且编译 wge