1/什么是Nginx
Nginx(“enginex”)是二个高质量的HTTP和反向代理服务器,也是三个IMAP/POP3/SMTP代理服务器,在高连接出现的事态下Nginx是Apache服务器不错的替代品.其个性是并吞内部存储器少,并发能力强,事实上nginx的产出能力确实在同品种的网页服务器中展现较好.最近华夏陆地使用nginx网址用户有:搜狐、腾讯网、腾讯,其余盛名的微网志Plurk也应用nginx。
Nginx作为负载均衡服务器,既能够在其间直接援助Rails和PHP程序对外开始展览服务,也能够支撑作为HTTP代理服务器对外开始展览劳动。Nginx采纳C实行编辑,不论是系统能源开支还是CPU使用功效都比Perlbal要好广大。
Nginx作为邮件代理服务器,是多个非常卓绝的邮件代理服务器(最早开发这些产品的目的之1也是当做邮件代理服务器)。
Nginx是一个装置相当不难,配置文件特别简洁(还是能够匡助perl语法),Bugs格外少的服务器;Nginx运行特别简单,并且差不多能够成功柒*二4不间断运转,即便运维数个月也不需求再行启航,还是可以够够不间断服务的动静下开展软件版本的提拔。

1、什么是Nginx
Nginx(“enginex”)是二个高质量的HTTP和反向代理服务器,也是二个IMAP/POP3/SMTP代理服务器,在高连接出现的意况下Nginx是Apache服务器不错的替代品.其特征是占有内部存款和储蓄器少,并发能力强,事实上nginx的面世能力确实在同品种的网页服务器中表现较好.近来华夏次大6使用nginx网址用户有:博客园、天涯论坛、腾讯,其余盛名的微网志Plurk也利用nginx。
Nginx作为负载均衡服务器,既能够在其间直接帮忙Rails和PHP程序对外开始展览服务,也能够支撑作为HTTP代理服务器对外开始展览劳动。Nginx选拔C举行编辑,不论是系统财富花费依然CPU使用效能都比Perlbal要好广大。
Nginx作为邮件代理服务器,是3个不行完美的邮件代理服务器(最早开发那些产品的目标之壹也是用作邮件代理服务器)。
Nginx是二个安装分外简单,配置文件尤其简洁(仍是可以够匡助perl语法),Bugs万分少的服务器;Nginx运维尤其简单,并且大致能够形成七*二四不间断运转,纵然运转数个月也不须要再行启航,还能够够不间断服务的场合下举行软件版本的晋级。

Nginx的反向代理功用布局八个nginx负载均衡服务器,后端有八个劳务节点,提供web服务。

乘胜Nginx高品质Web服务器多量被选拔,目前Nginx最新稳定版为一.二.陆,张宴兄在其实使用中山高校量使用Nginx,并分享Nginx高质量Web服务器知识,使得Nginx在国内也是便捷的向上。那前些天我们再来温习一下Nginx
动静分离知识,那里仅供参考。

2Nginx的安装
二.一Nginx安装包下载
Nginx包下载地址:

2、Nginx的安装
二.1、Nginx安装包下载
Nginx包下载地址:

搭建环境:
系统RedHat系统5.4

一、实践环境:

Nginx依赖包下载地址:
一.gzip模块须求zlib库(在)
2.rewrite模块须要pcre库(在)
三.ssl意义要求openssl库(在)
也许下载全包openssl-一.0.贰o.tar

Nginx看重包下载地址:
1.gzip模块需求zlib库(在)
二.rewrite模块要求pcre库(在)
3.ssl效应要求openssl库(在)
依旧下载全包openssl-1.0.二o.tar

(一)搭建前准备:
四台linux主机
DNS:192.168.1.150
web:192.168.1.121
web:192.168.1.125
web:192.168.1.126
nginx:19二.16八.1.120  用nginx搭建负载均衡

  1. 系统版本:CentOS6.0
    X86_64
    1. Nginx版本:Nginx-1.2.6
    1. Tomcat版本:Tomcat-6.0.18

2.2Nginx安装
安装前认可linux下那个库已经设置
yum install perl
yum install gcc
yum install gcc-c++
yum -y install net-tools

2.2、Nginx安装
设置前认可linux下那么些库已经安装
yum install perl
yum install gcc
yum install gcc-c++
yum -y install net-tools

注明:
在此地根本介绍nginx使用,以上几台请参见别的配置文件来做。
再要搭建nginx负载时首先做好域名解析:表明:别的多个web不必要做哪些域名解析,
A记录:www.linuxidc.com
反向记录:192.168.一.120

二、Nginx安装:

一.将安装包放到/home/nginx_install目录下,截图如下:
    澳门金沙国际 1

壹.将安装包放到/home/nginx_install目录下,截图如下:
    澳门金沙国际 2

1:今后早先安装nginx
(1)安装依赖包:
gcc,openssl-devel,pcre-devl,zlib-devel软件库。
(2)安装Nginx所需的pcre-devel库
tar -zxvf pcre-8.02.tar.gz
cd pcre-8.02
./configure
make
make install
(3)安装Nginx
tar -zxvf nginx-0.7.65.tar.gz -C /usr/src/
cd nginx-0.7.65
./configure  –with-http_gzip_static_module
–with-http_stub_status_module –prefix=/usr/local/nginx
make
make install

实际条件中设置Nginx,首先须求安装pcre库,然后再安装Nginx:

 

二.安装openssl-fips-贰.0.玖.tar.gz,执行命令如下
OpenSSL
是二个强劲的避孕套接字层密码库,囊括首要的密码算法、常用的密钥和注解封装管理效果及SSL协议,并提供丰硕的应用程序供测试或别的目的选取。,安装OpenSSL(

检查Nginx配置文件是不是不荒谬:
/opt/nginx/sbin/nginx -t
the configuration file /opt/nginx/conf/nginx.conf syntax is ok
configuration file /opt/nginx/conf/nginx.conf linuxidc is successful

  1. #安装pcre补助rewrite库,也能够设置源码,注*设置源码时,钦定pcre路径为解压源码的路子,而不是编写翻译后的不贰法门,不然会报错。
  2. yum install pcre-devel pcre -y
    1. #下载Nginx源码包
  3. cd /usr/src ;wget -c
    1. #解压Nginx源码包
  4. tar -xzf nginx-1.2.6.tar.gz
    1. #进入解压目录,然后sed修改Nginx版本消息为TDTWS
  5. cd nginx-1.2.6 ; sed -i -e ‘s/1.2.6//g’
    -e ‘s/nginx\//TDTWS/g’ -e ‘s/”NGINX”/”TDTWS”/g’ src/core/nginx.h
    1. #预编译Nginx
  6. ./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module
  7. #.configure预编写翻译成功后,执行make命令举行编写翻译
    1. make
  8. #make执行成功后,执行make install
    正式安装
  9. make install
  10. #未来Nginx安装收尾!!!

贰.安装openssl-fips-②.0.九.tar.gz,执行命令如下
OpenSSL
是二个精锐的百色套接字层密码库,囊括首要的密码算法、常用的密钥和证书封装管理职能及SSL协议,并提供丰硕的应用程序供测试或其余目标使用。,安装OpenSSL(

cd /home/nginx_install
tar -zxvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
#prefix配置安装路径
./config –prefix=/opt/ldkjdata/nginx/openssl-1.0.2o
make
make install

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

三、配置Nginx:

cd /home/nginx_install
tar -zxvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
#prefix配置安装路径
./config –prefix=/opt/ldkjdata/nginx/openssl-1.0.2o
make
make install

openssl:wget
解压不make
风行版本为openssl-1.0.二o.tar

关闭Nginx服务:
kill xxx pid号

此间由于小编的5一CTO博客已经有汤姆cat安装和安插了,那里忽略,只安排Nginx。

openssl:wget
解压不make
流行版本为openssl-一.0.2o.tar

3.安装zlib-1.2.8.tar.gz
Zlib是提供素材压缩之用的函式库,当Tengine想启用GZIP压缩的时候就供给使用到Zlib(

到此Nginx安装达成
(4)配置主配置文件
vim /usr/local/nginx/conf/nginx.conf

  1. #进入Nginx应用目录
  2. cd /usr/local/nginx/conf
  3. #备份原nginx.conf文件
  4. mv nginx.conf nginx.bak

3.安装zlib-1.2.8.tar.gz
Zlib是提供素材压缩之用的函式库,当Tengine想启用GZIP压缩的时候就必要运用到Zlib(

cd /home/nginx_install
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure –prefix=/opt/ldkjdata/nginx/zlib-1.2.11
make
make install

user  nobody;
worker_processes  1;

始建 vi nginx.conf ,并写入如下内容:

cd /home/nginx_install
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure –prefix=/opt/ldkjdata/nginx/zlib-1.2.11
make
make install

4.安装pcre-8.37.tar.gz
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包蕴 perl
兼容的正则表明式库。nginx
rewrite依赖于PCRE库,所以在设置Tengine前必将要先安装PCRE,最新版本的PCRE可在官网(

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  debug;

  1. user www www;
  2. worker_processes 8;
  3. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000
    00100000 01000000 10000000;
  4. pid /usr/local/nginx/nginx.pid;
    1. worker_rlimit_nofile 102400;
    1. events
  5. {
  6. use epoll;
  7. worker_connections 102400;
  8. }
  9. http
  10. {
  11. include mime.types;
    1. default_type application/octet-stream;
    1. fastcgi_intercept_errors on;
    1. charset utf-8;
    1. server_names_hash_bucket_size 128;
  12. client_header_buffer_size 4k;
  13. large_client_header_buffers 4 32k;
  14. client_max_body_size 300m;
    1. sendfile on;
  15. tcp_nopush on;
    1. keepalive_timeout 60;
    1. tcp_nodelay on;
    1. client_body_buffer_size 512k;
  16. proxy_connect_timeout 5;
  17. proxy_read_timeout 60;
  18. proxy_send_timeout 5;
  19. proxy_buffer_size 16k;
  20. proxy_buffers 4 64k;
  21. proxy_busy_buffers_size 128k;
  22. proxy_temp_file_write_size 128k;
    1. gzip on;
  23. gzip_min_length 1k;
  24. gzip_buffers 4 16k;
  25. gzip_http_version 1.1;
  26. gzip_comp_level 2;
  27. gzip_types text/plain application/x-javascript text/css
    application/xml;
  28. gzip_vary on;
      1. ###2012-12-19 change nginx logs
    1. log_format main ‘$http_x_forwarded_for – $remote_user
      [$time_local] “$request” ‘
  29. ‘$status $body_bytes_sent “$http_referer” ‘
  30. ‘”$http_user_agent” $request_time $remote_addr’;
    1. #那边为后端服务器wugk应用集群配置,依据后端真实情状修改即可,tdt_wugk为负载均衡名称,能够随心所欲钦定
  31. #但不能够不跟vhosts.conf虚拟主机的pass段①致,不然无法转化后端的伸手。

  32. upstream tdt_wugk {

  33. server 10.10.141.30:8080 weight=1max_fails=2fail_timeout=30s;
  34. server 10.10.141.30:8081 weight=1max_fails=2fail_timeout=30s;
  35. server 10.10.141.31:8080 weight=1max_fails=2fail_timeout=30s;
  36. server 10.10.141.31:8081 weight=1max_fails=2fail_timeout=30s;
  37. server 10.10.141.32:8080 weight=1max_fails=2fail_timeout=30s;
  38. server 10.10.141.32:8081 weight=1max_fails=2fail_timeout=30s;
  39. }
  40. #那边为后端APP应用负载均衡布局,依据后端实际情形修改即可。tdt_app为负载均衡名称,能够Infiniti制钦定

  41. upstream tdt_app {

  42. server 10.10.141.40:8080 weight=1max_fails=2fail_timeout=30s;
  43. server 10.10.141.40:8081 weight=1max_fails=2fail_timeout=30s;
  44. server 10.10.141.41:8080 weight=1max_fails=2fail_timeout=30s;
  45. server 10.10.141.41:8080 weight=1max_fails=2fail_timeout=30s;
  46. server 10.10.141.44:8080 weight=1max_fails=2fail_timeout=30s;
  47. server 10.10.141.45:8080 weight=1max_fails=2fail_timeout=30s;
  48. }
  49. #include引用vhosts.conf,该文件器重用以配置Nginx 虚拟主机
  50. include vhosts.conf;
  51. }

4.安装pcre-8.37.tar.gz
PCRE(Perl Compatible Regular Expressions)是贰个Perl库,包涵 perl
包容的正则表明式库。nginx
rewrite依赖于PCRE库,所以在装置Tengine前肯定要先安装PCRE,最新版本的PCRE可在官网(

cd /home/nginx_install
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure –prefix=/opt/ldkjdata/nginx/pcre-8.42
make
make install

pid        logs/nginx.pid;

如上nginx.conf配置完成,继续铺排nginx虚拟���机,继续在当前目录创造vhosts.conf

cd /home/nginx_install
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure –prefix=/opt/ldkjdata/nginx/pcre-8.42
make
make install

5.安装nginx-1.8.0.tar.gz

events {
    use epoll;
    worker_connections  1024;
}

vi vhosts.conf 内容如下:

5.安装nginx-1.8.0.tar.gz

cd /home/nginx_install
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0

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

  1. ####www.wuguangke.cn
  2. server
    1. {
  3. listen 80;
  4. server_name www.wuguangke.cn;
  5. index index.html index.htm;
  6. #配备公布目录为/data/www/wugk
  7. root /data/www/wugk;
    1. location /
  8. {
  9. proxy_next_upstream http_502 http_504 error timeout
    invalid_header;
  10. proxy_set_header Host $host;
  11. 搭建Nginx负载均衡服务器,Nginx动静分离经典案例配置。proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. proxy_pass ;
  14. expires 3d;
  15. }
  16. #动态页面交给
    tdt_wugk 均衡
  17. location ~ .*\.(php|jsp|cgi)?$
  18. {
  19. proxy_set_header Host $host;
  20. proxy_set_header X-Real-IP $remote_addr;
  21. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  22. proxy_pass ;
  23. }
  24. #安排Nginx动静分离,定义的静态页面一向从Nginx发布目录读取。
  25. location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
  26. {
  27. root /data/www/wugk;
  28. #expires定义用户浏览器缓存的岁月为三天,若是静态页面不常更新,能够安装越来越长,那样可以节省带宽和平解决决服务器的压力
  29. expires 3d;
  30. }
  31. #概念Nginx输出日志的门道
  32. access_log /data/logs/nginx_wugk/access.log main;
  33. error_log /data/logs/nginx_wugk/error.log crit;
  34. }
    1. ##########chinaapp.sinaapp.com 2012-12-19
  35. server
    1. {
  36. listen 80;
  37. server_name chinaapp.sinaapp.com;
  38. index index.html index.htm;
  39. root /data/www;
    1. location /
  40. {
  41. proxy_next_upstream http_502 http_504 error timeout
    invalid_header;
  42. proxy_set_header Host $host;
  43. proxy_set_header X-Real-IP $remote_addr;
  44. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  45. proxy_pass ;
  46. expires 3d;
  47. }
    1. location ~ .*\.(php|jsp|cgi)?$
  48. {
  49. proxy_set_header Host $host;
  50. proxy_set_header X-Real-IP $remote_addr;
  51. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  52. proxy_pass ;
  53. }
  54. location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
  55. {
  56. root /data/www/app;
  57. expires 3d;
  58. }
    1. access_log /data/logs/nginx_app/access.log main;
  59. error_log /data/logs/nginx_app/error.log crit;
  60. }

cd /home/nginx_install
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0

#with-pcre钦命依赖包地方,prefix配置安装路径
./configure –with-pcre=../pcre-8.42 –with-zlib=../zlib-1.2.11
–with-openssl=../openssl-fips-2.0.16
–prefix=/opt/ldkjdata/nginx/nginx-1.14.0

    log_format  main  ‘$remote_addr – $remote_user [$time_local]
“$request” ‘
                      ‘$status $body_bytes_sent “$http_referer” ‘
                      ‘”$http_user_agent” “$http_x_forwarded_for”‘;

四、计划测试:

#with-pcre钦命看重包地点,prefix配置安装路径
./configure –with-pcre=../pcre-8.42 –with-zlib=../zlib-1.2.11
–with-openssl=../openssl-fips-2.0.16
–prefix=/opt/ldkjdata/nginx/nginx-1.14.0

或者
./configure –with-pcre=../pcre-8.42 –with-zlib=../zlib-1.2.11
–with-openssl=../openssl-1.0.2o –with-http_ssl_module
–prefix=/opt/ldkjdata/nginx/nginx-1.14.0

    access_log  logs/access.log  main;

后端配置好汤姆cat服务,并运营,发表的次第需1并到Nginx的/data/www对应的目录,因为布置意况分离后,用户请求你定义的静态页面,暗许会去nginx的公布目录请求,而不会到后端请求,所以此时你要保险后端面前端的次序保持1致,能够动用Odysseysync做服务端自动同步。

或者
./configure –with-pcre=../pcre-8.42 –with-zlib=../zlib-1.2.11
–with-openssl=../openssl-1.0.2o –with-http_ssl_module
–prefix=/opt/ldkjdata/nginx/nginx-1.14.0

make
make install

    sendfile        on;
    #tcp_nopush     on;

  1. #反省Nginx配置文件是不是配备不错,提醒Ok and
    successful表示正确,如下:
  2. [root@WEB-11-151 ~]#
    /usr/local/nginx/sbin/nginx -t
  3. nginx: the configuration file
    /usr/local/nginx/conf/nginx.conf syntax is ok
  4. nginx: configuration file
    /usr/local/nginx/conf/nginx.conf test is successful
  5. #启动Nginx服务
  6. /usr/local/nginx/sbin/nginx
  7. #查看Nginx进度是还是不是运转
  8. ps -ef |grep nginx

make
make install

3、Nginx检测
cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx -t
看来如下提醒,表示安装成功。
nginx: the configuration file
/opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf syntax is ok
nginx: configuration file
/opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf test is successful

    #keepalive_timeout  0;
    keepalive_timeout  65;

本文只是二个大约的实在案例,里面包车型大巴安排和参数那里未有做过多的辨证,前期会三番五次立异。

3Nginx检测
cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx -t
来看如下提醒,表示安装成功。
nginx: the configuration file
/opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf syntax is ok
nginx: configuration file
/opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf test is successful

4.Nginx运转和端口查看

    gzip  on;
    gzip_min_length 1k;
    gzip_buffers    6   16k;
    gzip_http_version   1.1;
    gzip_comp_level 2;
    gzip_types  text/plain  application/x-javascript    text/css
application/xml;
    gzip_vary   on;
#    server {
#        listen       80;
#        server_name  localhost;

澳门金沙国际 3

四.Nginx起步和端口查看

cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 修改配置后再行加载配置
netstat -ntlp 查看tcp是不是正规监听

        #charset koi8-r;

cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 修改配置后重新加载配置
netstat -ntlp 查看tcp是或不是平常监听

5.3个回顾的Nginx转载例子
1.需求
短信服务器列表3台,提供劳务的地点如下:

        #access_log  logs/host.access.log  main;

5.三个简短的Nginx转载例子
1.需求
短信服务器列表三台,提供劳务的地点如下:

彩信服务器列表3台,提供劳务的地点如下:

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}

彩信服务器列表3台,提供劳务的地点如下:

        error_page  404              /404.html;

Nginx安装在其余1台单独机器上(公网IP为public_ip),对外提供劳务地点如下:
短信发送服务
彩信发送服务

        # redirect server error pages to the static page /50x.html
        #
#        error_page   500 502 503 504  /50x.html;
#        location = /50x.html {
#            root   html;
#        }

Nginx安装在别的一台单独机器上(公网IP为public_ip),对外提供服务地方如下:
短信发送服务
彩信发送服务

二.对此上述急需,配置/opt/nginx-1.8.0/conf/nginx.conf如下:
#user nobody;
worker_processes 1;

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   ;
        #}

二.对于以上供给,配置/opt/nginx-1.八.0/conf/nginx.conf如下:
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

        # pass the PHP scripts to FastCGI server listening on
127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME 
/scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

        # deny access to .htaccess files, if Apache’s document root
        # concurs with nginx’s one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

    # another virtual host using mix of IP-, name-, and port-based
configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

events {
worker_connections 1024;
}

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

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

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”‘;

    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

#log_format main ‘$remote_addr – $remote_user [$time_local]
“$request” ‘
# ‘$status $body_bytes_sent “$http_referer” ‘
# ‘”$http_user_agent” “$http_x_forwarded_for”‘;

#access_log logs/access.log main;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

    #    ssl_session_timeout  5m;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;
#设定请求缓冲, start
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定请求缓冲, end

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers 
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;

#keepalive_timeout 0;
keepalive_timeout 65;
#设定请求缓冲, start
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定请求缓冲, end

#设定提供服务的服务器,start
#短信发送服务器
upstream smsserver{
#weigth 代表权重,权值越大,分配概率越大
#max_fails
当有max_fails个请求战败,就象征后端的服务器不可用,暗许为一,将其安装为0能够关闭检查
#fail_澳门金沙国际 ,timeout
在此后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
server 192.168.88.21:8091 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.22:8091 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.23:8091 weight=5 max_fails=5 fail_timeout=600s;
}
#彩信发送服务器
upstream mmsserver{
#weigth 代表权重,权值越大,分配可能率越大
#max_fails
当有max_fails个请求失利,就代表后端的服务器不可用,暗许为一,将其设置为0可以关闭检查
#fail_timeout
在其后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
server 192.168.88.21:8092 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.22:8092 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.23:8092 weight=5 max_fails=5 fail_timeout=600s;
}
#设定提供服务的服务器,end

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
  http
    {
        upstream www.linuxidc.com {
            server  192.168.1.125:80 weight=3 max_fails=3
fail_timeout=20s;
            server  192.168.1.126:80 weight=1 max_fails=3
fail_timeout=20s;
            server  192.168.1.121:80 weight=5 max_fails=3
fail_timeout=20s;
            }

#设定提供劳动的服务器,start
#短信发送服务器
upstream smsserver{
#weigth 代表权重,权值越大,分配概率越大
#max_fails
当有max_fails个请求失败,就象征后端的服务器不可用,默许为壹,将其安装为0能够关闭检查
#fail_timeout
在其后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
server 192.168.88.21:8091 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.22:8091 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.23:8091 weight=5 max_fails=5 fail_timeout=600s;
}
#彩信发送服务器
upstream mmsserver{
#weigth 代表权重,权值越大,分配可能率越大
#max_fails
当有max_fails个请求战败,就意味着后端的服务器不可用,默许为一,将其安装为0能够关闭检查
#fail_timeout
在随后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
server 192.168.88.21:8092 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.22:8092 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.23:8092 weight=5 max_fails=5 fail_timeout=600s;
}
#设定提供服务的服务器,end

#gzip on;

    server
    {
        listen  80;
        server_name www.linuxidc.com;
        index   index.htm  index.html;
        #root /web/wwwroot;

#gzip on;

server {
listen 8090;
server_name localhost;
#设定请求转发规则, start
#平整选用最长相称,/smsserver/*先行相配/smsserver,/mmsserver/*事先相称/mmsserver,/aaaaaaaa/*因为从没其余匹配,最后相配到/
#规则一
location / {
proxy_pass ;
}
#规则二
location /smsserver {
proxy_pass ;
}
#规则三
location /mmsserver {
proxy_pass ;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

    location / {
        proxy_pass ;
        proxy_next_upstream http_500 http_502 http_503 error
timeout invalid_header;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For 
$proxy_add_x_forwarded_for;
        include proxy.conf;
      }
    log_format  blog_linuxidc_com  ‘$remote_addr – $remote_user
[$time_local] $request ‘
                                ‘”$status” $body_bytes_sent
“$http_referer” ‘
                                ‘”$http_user_agent”
“$http_x_forwarded_for”‘;
              access_log logs/blog_linuxidc_com;
     }
   }

server {
listen 8090;
server_name localhost;
#设定请求转载规则, start
#规则采取最长相配,/smsserver/*优先相配/smsserver,/mmsserver/*先期相称/mmsserver,/aaaaaaaa/*因为从没其它匹配,最终相配到/
#规则一
location / {
proxy_pass ;
}
#规则二
location /smsserver {
proxy_pass ;
}
#规则三
location /mmsserver {
proxy_pass ;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

server {
listen 80;
server_name localhost;
#设定请求转发规则, start
location / {
#概念服务器的暗中认可网址根目录地方
root /home/work/statichtml/index.html;
#概念首页索引文件的名称
#index index.php index.html index.htm;
#恳请转向orderServer定义的服务器列表
# proxy_pass ;

(5)配置proxy.conf文件
vim /usr/local/nginx/conf/proxy.conf
proxy_redirect  off;
proxy_set_header    Host    $host;
proxy_set_header    X-Real-IP $remote_addr;
proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size   4k;
proxy_buffers 6 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
:wq 保存

server {
listen 80;
server_name localhost;
#设定请求转载规则, start
location / {
#概念服务器的暗中认可网址根目录地点
root /home/work/statichtml/index.html;
#概念首页索引文件的名号
#index index.php index.html index.htm;
#呼吁转向orderServer定义的服务器列表
# proxy_pass ;

#以下是部分反向代理的布署可删除.
# proxy_redirect off;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#允许客户端请求的最大单文件字节数
# client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数,
# client_body_buffer_size 128k;
#nginx跟后端服务器连接超时时间(代理连接超时)
# proxy_connect_timeout 90;
#后端服务器数据回传时间(代理发送逾期)
# proxy_send_timeout 90;
#延续成功后,后端服务器响应时间(代理接收超时)
# proxy_read_timeout 90;
#安装代理服务器(nginx)保存用户头音信的缓冲区大小
# proxy_buffer_size 4k;
#proxy_buffers缓冲区,网页平均在32k之下的话,那样设置
# proxy_buffers 4 32k;
#高负荷下缓冲大小(proxy_buffers*2)
# proxy_busy_buffers_size 64k;
#设定缓存文件夹大小,大于那一个值,将从upstream服务器传
# proxy_temp_file_write_size 64k;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

注脚:到此nginx负载均衡已搭建实现,

#以下是有的反向代理的计划可删除.
# proxy_redirect off;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#允许客户端请求的最大单文件字节数
# client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数,
# client_body_buffer_size 128k;
#nginx跟后端服务器连接超时时间(代理连接超时)
# proxy_connect_timeout 90;
#后端服务器数据回传时间(代理发送逾期)
# proxy_send_timeout 90;
#连日成功后,后端服务器响应时间(代理接收超时)
# proxy_read_timeout 90;
#安装代理服务器(nginx)保存用户头消息的缓冲区大小
# proxy_buffer_size 4k;
#proxy_buffers缓冲区,网页平均在3二k之下的话,那样设置
# proxy_buffers 4 32k;
#高负荷下缓冲大小(proxy_buffers*2)
# proxy_busy_buffers_size 64k;
#设定缓存文件夹大小,大于那个值,将从upstream服务器传
# proxy_temp_file_write_size 64k;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

陆.例子二(暴光接口,但隐藏web项目标根目录)
地点陆中例子有个难题是,直接将自家全数web根目录smsserver和mmsserver揭穿到公网了,其实作者的目标只是想暴光多个接口地址,所以6有待优化,举个例证如下:
1.需求
接口服务器列表两台台,提供劳动的地方如下:
接口一:

接口二:

测试:  就看能够访���到

六.例子②(揭露接口,但隐藏web项目标根目录)
上面陆中例子有个难题是,直接将自个儿整整web根目录smsserver和mmsserver揭露到公网了,其实自身的指标只是想暴光多少个接口地址,所以陆有待优化,举个例子如下:
1.需求
接口服务器列表两台台,提供劳动的地址如下:
接口一:

接口二:

Nginx安装在此外一台单独机器上(公网IP为public_ip),对外提供劳动地点如下:
接口一
接口二
2.对于以上供给,配置/opt/nginx-一.八.0/conf/nginx.conf如下:

澳门金沙国际 4

Nginx安装在其余一台单独机器上(公网IP为public_ip),对外提供服务地点如下:
接口一
接口二
二.对此上述急需,配置/opt/nginx-壹.八.0/conf/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;
}
http {
include mime.types;
default_type application/octet-stream;

#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;
}
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_addr – $remote_user [$time_local]
“$request” ‘
# ‘$status $body_bytes_sent “$http_referer” ‘
# ‘”$http_user_agent” “$http_x_forwarded_for”‘;

#access_log logs/access.log main;

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;
#设定请求缓冲, start
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定请求缓冲, end

#keepalive_timeout 0;
keepalive_timeout 65;
#设定请求缓冲, start
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定请求缓冲, end

#设定提供劳动的服务器,start
#自个儿的接口服务器,两台
upstream myweb{
#weigth 代表权重,权值越大,分配可能率越大
#max_fails
当有max_fails个请求失败,就代表后端的服务器不可用,暗中同意为1,将其设置为0能够关闭检查
#fail_timeout
在以后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
server 192.168.88.23:8082 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.24:8082 weight=5 max_fails=5 fail_timeout=600s;
}
#设定提供劳务的服务器,end

#设定提供劳务的服务器,start
#自个儿的接口服务器,两台
upstream myweb{
#weigth 表示权重,权值越大,分配概率越大
#max_fails
当有max_fails个请求退步,就代表后端的服务器不可用,暗中认可为一,将其设置为0能够关闭检查
#fail_timeout
在之后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
server 192.168.88.23:8082 weight=5 max_fails=5 fail_timeout=600s;
server 192.168.88.24:8082 weight=5 max_fails=5 fail_timeout=600s;
}
#设定提供服务的服务器,end

#gzip on;

#gzip on;

server {
listen 80;
server_name localhost;
#设定请求转载规则, start
#平整采取最长相称,即长度最长优先相称,最后不匹配的走/举行相称
#规则一
location / {
root html;
index index.html index.htm;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

server {
listen 80;
server_name localhost;
#设定请求转载规则, start
#平整选用最长相称,即长度最长优先相称,最终不相配的走/进行相称
#规则一
location / {
root html;
index index.html index.htm;
}
#设定请求转发规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

server {
listen 8081;
server_name localhost;
#设定请求转载规则, start
#平整采纳最长相称,即长度最长优先相配,最终不相称的走/实行相称
#规则一
location / {
root html;
index index.html index.htm;
}
#平整二,查询接口壹
location /myweb/interface/getData {
proxy_pass ;
#中间转播呼吁的原IP地址,程序中通过request.getHeader(“Proxy-Client-IP”)获得ip
proxy_set_header Host $host;
#壹经是有关联redirect的劳务,一定要加上端口80八1,否则暗中认可tomcat在redirect时候私下认可找80端口
#proxy_set_header Host $host:8081;
proxy_set_header Proxy-Client-IP $remote_addr;
}
#平整3,查询接口2
location /myweb/interface/sendData {
proxy_pass ;
#转载呼吁的原IP地址,程序中经过request.getHeader(“Proxy-Client-IP”)获得ip
proxy_set_header Host $host;
#假若是有关系redirect的劳动,一定要抬高端口80八一,不然暗许tomcat在redirect时候暗中同意找80端口
#proxy_set_header Host $host:8081;
proxy_set_header Proxy-Client-IP $remote_addr;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

server {
listen 8081;
server_name localhost;
#设定请求转发规则, start
#规则采纳最长相配,即长度最长优先相称,最终不一样盟的走/举办相称
#规则一
location / {
root html;
index index.html index.htm;
}
#规则贰,查询接口壹
location /myweb/interface/getData {
proxy_pass ;
#倒车呼吁的原IP地址,程序中经过request.getHeader(“Proxy-Client-IP”)获得ip
proxy_set_header Host $host;
#若是是有涉及redirect的服务,一定要丰硕端口80八一,不然暗中认可tomcat在redirect时候暗中同意找80端口
#proxy_set_header Host $host:8081;
proxy_set_header Proxy-Client-IP $remote_addr;
}
#规则三,查询接口2
location /myweb/interface/sendData {
proxy_pass ;
#倒车呼吁的原IP地址,程序中经过request.getHeader(“Proxy-Client-IP”)获得ip
proxy_set_header Host $host;
#假借使有关联redirect的劳务,一定要充裕端口80捌一,不然暗中认可tomcat在redirect时候暗中同意找80端口
#proxy_set_header Host $host:8081;
proxy_set_header Proxy-Client-IP $remote_addr;
}
#设定请求转载规则, end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

7.例子三 文件映射
/conf/nginx.conf中首先行的运营用户改为
user root;
location /uploadfile {
root /opt/staticdata/;
access_log /opt/nginx/logs/upload_access.log;
proxy_store_access user:rw group:rw all:rw;
}

柒.事例三 文件映射
/conf/nginx.conf中第2行的运维用户改为
user root;
location /uploadfile {
root /opt/staticdata/;
access_log /opt/nginx/logs/upload_access.log;
proxy_store_access user:rw group:rw all:rw;
}

当访问
一定于访问 /opt/staticdata/uploadfile/aa/bb/cc.jpg

当访问
一定于访问 /opt/staticdata/uploadfile/aa/bb/cc.jpg

Linux公社的RSS地址:

 

正文永久更新链接地址

8.说明
如上安装教程经过亲自执行并优化,首要参照

澳门金沙国际 5

相关文章