Skip to content
1StepEngineer edited this page Sep 30, 2018 · 16 revisions

Nginx概念

基本概念

  • Nginx是一种服务器软件(服务器软件如:tomcat、Apache。Nginx是一款高性能的服务器软件。)
  • 最主要,最基本的功能是:将程序放在Nginx服务器上,将程序发布出去让成千上万人浏览。发布网站
  • 一种高性能HTTP和反向代理服务器
  • 一个代理邮件服务器
  • 负载均衡(同时N多用户访问,为了减少服务器压力,将用户分别引入各服务器,分担服务器压力)

服务器对比

服务器名称 特点
IIS 只能在windows上运行,windows服务器性能不如Linux
Tomcat 服务器面向java语言,是一种重量级服务器
Apache 稳定、开源、跨平台。但不支持高并发
Nginx 轻量级服务器,支持处理百万级的TCP连接,10万以上的并发连接,并且是很好的跨平台服务器

Nginx优缺点

优点:实现高并发、部署简单、内存消耗少、成本低
缺点:rewrite功能不强大,模块没有Apache多

安装

linux安装:经常报错的问题有缺少gc++,缺少pcre、zlib等库

cd /home/caojing/下载
tar -zxvf nginx-1.15.4.tar.gz
cd nginx-1.15.4
 ./configure
su
[root@test ~]# rm -f /var/run/yum.pid
[root@test nginx-1.15.4]# yum -y install pcre pcre-devel
[root@test nginx-1.15.4]# yum -y install zlib zlib-devel
[root@test nginx-1.15.4]# ./configure
[root@test nginx-1.15.4]# make
[root@test nginx-1.15.4]# make install
[root@test /]# cd /usr/local
[root@test local]# ls
bin  etc  games  include  lib  lib64  libexec  nginx  sbin  share  src

相关命令

//nginx启动
[root@test ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
//nginx配置文件修改
[root@test /]# cd /usr/local/nginx/conf
[root@test conf]# vim nginx.conf
user  root;
server {
        listen      8080;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   /root/web/;
            index  index.html;
}
//nginx配置文件重启
[root@test conf]# /usr/local/nginx/sbin/nginx -s reload

反向代理

正向代理:自己计算机A访问不了网站B,通过中间服务器C可以访问B。服务器C称为代理服务器,并且为正向代理。明确知道自己访问的哪个网站。
反向代理:当服务器集群中每台服务器内容一样,通过第三方服务器访问集群。但并不知道是哪台服务器提供内容。称为反向代理。

负载均衡

现象:当一台服务器单位时间内访问量越大,服务器压力也越大。当超过自身承受力时,服务器会崩溃。
解决:负载均衡分担服务器压力。建立N多服务器组成一个服务器集群,先访问我一个中间服务器,中间服务器在服务器集群中选择压力较小的服务器,然后将访问请求引入该服务器。最终保证服务器集群中的每个服务器压力趋于平衡,分担服务器压力。

[root@test conf]# touch fzjh.conf
[root@test conf]# vi fzjh.conf
[root@test conf]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fzjh.conf
[root@test conf]# netstat -tunlp|grep 80
user root;
worker_processes 4; //进程数
events{
      worker_connections 1024;  //一次连接的ip数目
      }
http{
     upstream mypro {
             server 111.13.100.92;   //负载均衡的服务器地址
             server 111.231.156.108;
             }
     server{
            listen 8080;
            location / {
                    proxy_pass http://mypro; //mypro要和upstream 名称对应
                     }
            }
  }
Clone this wiki locally