Nginx简单介绍及安装

来源:互联网 发布:河南卫视网络直播 编辑:程序博客网 时间:2024/05/23 00:04

-Nginx简介

Nginx简介
Nginx是一款高性能的HTTP和反向代理服务器,主要有以下优点

  • 支持高并发

  • 配置简单

  • 占用的资源少

nginx作为代理服务器主要用来实现反向代理和负载均衡。
要理解反想代理首先介绍一下正向代理,如下图正向代理是代理客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。这里写图片描述
反向代理则是代理的服务端,以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器,用户不需要也不关心到底是哪台服务器为自己服务,反向代理是负载均衡实现的基础。
这里写图片描述
负载均衡:简单的理解就是将客户端的请求分发到不同的服务器,由不同的服务器做出响应,减轻服务器的压力。更加快速的响应客户端的请求。

Linux环境安装Nginx
参考文章:http://www.runoob.com/linux/nginx-install-setup.html
由于Nginx的启动端口是80小于1024,所以使用root用户安装
1. 安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
  1. 安装PCRE
    PCRE 作用是让 Nginx 支持 Rewrite 功能。
    这里写图片描述

解压安装包

tar zxvf pcre-8.35.tar.gz

进入pcre目录执行以下命令进行编译安装

cd pcre-8.35./configuremake && make install

安装完成之后查看PCRE的版本

pcre-config --version

这里写图片描述

下载Nginx
下载地址:http://nginx.org/download/nginx-1.9.9.tar.gz

wget http://nginx.org/download/nginx-1.9.9.tar.gz

这里写图片描述
解压目录

tar -zxvf nginx-1.9.9.tar.gz 

编译安装

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35

这里写图片描述

make && make install

这里写图片描述

到此Nginx安装完成。
备注:nginx 常用命令
命令执行路径在nginx/sbin目录下

./nginx -?    //nginx命令帮助./nginx -v    //查看nginx 版本./nginx -t    //检查配置文件是否正确./nginx       //启动nginx./nginx -s reopen //重启nginx./nginx -s reload  //重新加载配置文件./nginx -s stop  //关闭nginx

这里写图片描述

启动Nginx使用浏览器访问,出现以下地址代表安装正确。http默认端口80,如果配置文件中监听的不是80端口,则需要加上端口号。
这里写图片描述

nginx.conf 配置

#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  warn;#pid         logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;   # log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '   #                   '$status $body_bytes_sent "$http_referer" '   #                  '"$http_user_agent" "$http_x_forwarded_for"';  log_format  main  ' $remote_user [$time_local]  $http_x_Forwarded_for $remote_addr  $request '  '$http_x_forwarded_for '  '$upstream_addr '  'ups_resp_time: $upstream_response_time '  'request_time: $request_time' '  request_body: $request_body';    access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  105;    client_max_body_size 10m;    client_header_buffer_size  32k;    large_client_header_buffers 4 32k;    tcp_nopush      on;    tcp_nodelay     on;    #gzip  on;    gzip  on;    gzip_min_length 1k;    gzip_buffers    4 16k;    gzip_comp_level 4;    gzip_types      text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;    gzip_vary       on;    proxy_buffers   8 8k;    proxy_cache_path     data/cache levels=1:2 keys_zone=one:10m;    proxy_cache_min_uses 4;    proxy_cache_valid    10m;    proxy_set_header Host $host;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header REMOTE-HOST $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    fastcgi_buffers 8 128k;    server_tokens off;    server {    listen 80;        server_name localhost;    location / {          rewrite ^/(.*) https://$host/$1;           }        location /mweb {            proxy_pass http://222.85.230.6:8080/mweb;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_ignore_client_abort on;            client_max_body_size    10m;            client_body_buffer_size 128k;        }        location /mca {            proxy_pass  http://127.0.0.1/mca;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_ignore_client_abort on;            client_max_body_size    10m;            client_body_buffer_size 128k;        }        location /mrbui {            proxy_pass  http://127.0.0.1/mrbui;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_ignore_client_abort on;            client_max_body_size    10m;            client_body_buffer_size 128k;        }        location /bkg {            proxy_pass  http://127.0.0.1/bkg;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_ignore_client_abort on;            client_max_body_size    10m;            client_body_buffer_size 128k;        }        location /mrpos  {            proxy_pass  http://127.0.0.1/mrpos;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_ignore_client_abort on;            client_max_body_size    10m;            client_body_buffer_size 128k;        }        location /mercStandard {                proxy_pass  http://222.85.230.6:8080/mercStandard;        }        location /sysmng {              deny all;         }         location /console {            deny  all;        }        location /admin-console {            deny  all;        }        location /management {            deny  all;        }        location /jmx-console {            deny  all;        }        location /invoker {            deny  all;        }        location /web-console {            deny  all;        }    #   location /status {    #       check_status;    #       access_log off;    #       allow 100.126.54.0/24;    #       deny  all;    #        }        error_page  404              /404.html;        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }     }}