Nginx反向代理配置详解

Nginx简单的反向代理配置,包括配置文件中各项参数的的注释,好了,开始!


开始首先安装Nginx

一、建立用户和用户组

1

2

、/usr/sbin/groupadd www

、/usr/sbin/useradd -g www www

二、安装Nginx所需的pcre

1、

2、

3、

4、

5、

6、

http://sourceforge.net/projects/pcre/

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.01.tar.gz

tar zxvf  pcre-7.9.tar.gz

cd pcre-7.9/

./configure

make &&  make install

三、安装Nginx

1、

2、

3、

4、

5、

下载nginx源码包.

tar zxvf  nginx-0.7.61.tar.gz

cd nginx-0.7.61/

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

make &&  make install

四、配置及配置优化

1、在/usr/local/nginx/conf/目录中修改nginx.conf文件:

vi  /usr/local/nginx/conf/nginx.conf (请先做好备份)

#运行用户

user www www;

#启动进程数,一般为CPU核数的俩倍。

worker_processes  8;

#全局错误日志

error_log  /usr/local/nginx/logs/nginx_error.log crit;

#PID文件位置

pid  /usr/local/nginx/nginx.pid;

#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数

(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,

所以建议与ulimit -n的值保持一致。

worker_rlimit_nofile  51200;

events

{

#epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,

可以大大提高nginx的性能

use epoll;

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

worker_connections  51200;

}

#设定http服务器,利用它的反向代理功能提供负载均衡支持

http

{

#设定mime类型,文件扩展名与文件类型映射表

include  mime.types;

default_type  application/octet-stream;#默认文件类型

include  proxy.conf;#将配置文件单独写,使主配置文件简单明了,此为代理配置文件。

include  server.conf;#将配置文件单独写,使主配置文件简单明了,此为定义服务器列表配置文件。

#charset  gb2312;#默认编码

server_names_hash_bucket_size  128;#指定服务器HASH表的最大值

#设定请求缓冲

client_header_buffer_size  32k;#上传文件大小限制

large_client_header_buffers  4 32k; #设定请求缓存

client_max_body_size  8m;#设定请求缓存

#sendfile 指令指定  nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.

sendfile on;

tcp_nopush on;#防止网络阻塞

tcp_nodelay on;#防止网络阻塞

#参数加大,以解决做代理时502错误

keepalive_timeout  120;

#开启gzip模块

gzip on;

gzip_min_length  1k;#最小压缩文件大小

gzip_buffers 4  16k;#压缩缓冲区

gzip_http_version  1.0;#压缩版本(默认1.1,前端如果是squid2.5请使用1.0)

gzip_comp_level  2;#压缩等级

gzip_types  text/plain application/x-javascript text/css application/xml;#压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。

gzip_vary on;

gzip_disable "MSIE [1-6]\.(?!.*SV1)";#对于IE6浏览器,不进行压缩。

#limit_zone  crawler $binary_remote_addr 10m;#开启限制IP连接数的时候需要使用

#设定虚拟主机

server

{

listen  192.168.0.100:80 default;

server_name _;

#下面对于  / 启用反向代理.

location / {

if ($host !~*  www\.(.*)) {

set  $host_without_www $1;

set $xhost  www.$host;

rewrite ^(.*)$  http://$xhost$host_without_www$1 permanent;

}

proxy_pass  http://www; #请求转向www  定义的服务器列表,注意在location {} 内。

}

#设定查看Nginx状态的地址

location /ns {

stub_status on;

access_log off;

}

#设定日志格式

log_format  access '$remote_addr - $remote_user [$time_local] "$request" '

'$status  $body_bytes_sent "$http_referer" '

'"$http_user_agent"  $http_x_forwarded_for';

#设定access  log

access_log  /usr/local/nginx/logs/access.log access;

}

}

2、/usr/local/nginx/conf/server.conf

nginx 代理后端web的配置文件,在主配置文件中已经 include。

upstream www {

#weigth参数表示权值,权值越高被分配到的几率越大

server  192.168.0.100:8000 weight=5;

server  192.168.0.101:8000 weight=3;

}

3、/usr/local/nginx/conf/proxy.conf

nginx 代理配置,在主配置文件中已经include。

#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

proxy_redirect off;

proxy_set_header  Host $host;

proxy_set_header  X-Real-IP $remote_addr;

proxy_set_header  REMOTE_ADDR $remote_addr;

proxy_set_header  HTTP_CLIENT_IP $remote_addr;

proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size  10m;#允许客户端请求的最大单文件字节数

client_body_buffer_size  128k;#缓冲区代理缓冲用户端请求的最大字节数

proxy_connect_timeout  30;#nginx跟后端服务器连接超时时间(代理连接超时)

proxy_send_timeout 30;#后端服务器数据回传时间(代理发送超时)

proxy_read_timeout  30;#连接成功后,后端服务器响应时间(代理接收超时)

proxy_buffers 4 32k;#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

proxy_buffer_size  16k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小

proxy_busy_buffers_size  64k;    #高负荷下缓冲大小(proxy_buffers*2)

以上配置完毕,重新启动nginx. 做验证即可….

OK , 到此结束!

转载于:https://blog.51cto.com/threegun/1274901

Nginx反向代理配置详解相关推荐

  1. nginx反向代理模块配置详解_nginx反向代理配置详解

    反向代理配置 修改部署目录下conf子目录的nginx.conf文件(如/opt/nginx/conf/nginx.conf)内容,可调整相关配置. 将默认配置里面带#号注释内容去掉 grep -v ...

  2. Nginx正向代理配置详解

    一.nginx正向代理介绍及配置(需要在客户端配置代理服务器进行指定网站访问) #模块 ngx_http_proxy_module: http://nginx.org/en/docs/http/ngx ...

  3. LNMP详解(七)——Nginx反向代理配置实战

    今天继续给大家介绍Linux运维的相关知识,本文主要内容是Nginx反向代理配置实战. 一.系统架构简介 在生产环境中,我们有时需要使用Nginx做反向代理功能,其架构如下所示: 在上图中,所有的外界 ...

  4. nginx反向代理配置解决不同域名默认页面不同问题

    nginx反向代理配置解决不同域名默认页面不同问题 背景 设计思路 步骤 背景 需求:使用同一个项目(http://localhost:8080/thzhdj)映射两个域名(test1.com,tes ...

  5. nginx反向代理配置及优化

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liuyu.blog.51cto.com/183345/166381 nginx反 ...

  6. nginx反向代理配置实例分享

    nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...

  7. Nginx的location配置详解

    Nginx的location配置详解 匹配顺序 location 的匹配顺序其实是先匹配普通,再匹配正则 正则匹配会覆盖普通匹配(实际的规则,比这复杂) 执行顺序 普通 location的匹配规则是& ...

  8. Nginx SSI指令配置详解

    这篇文章主要介绍了Nginx SSI指令配置详解,本文讲解了什么是SSI.为什么要用SSI.nginx配置SSI.页面上配置.配置示例等内容,需要的朋友可以参考下 什么是SSI Server Side ...

  9. linux nginx反向代理配置

    linux  nginx反向代理配置 location ^~/api/ {proxy_pass http://192.168.1.50:82/; }

最新文章

  1. 开发管理 (2) -规划项目
  2. Android内存泄露总结
  3. @RequestParam和@RequestBody的区别 (结合 Get/Post )
  4. 使用shell脚本实现自动SSH互信功能
  5. python+OpenCV检测条形码
  6. python计算汉明距离_有效地使用python计算汉明距离
  7. 清华镜像站 python_使用清华、豆瓣镜像源下载tensorflow
  8. hdoj1242(bfs+priority_queue)
  9. 苹果系统与win10连接到服务器,苹果手机怎么连接win10电脑详细步骤
  10. 486微型计算机的字长是 8位 16位 32位 64位,大学计算机基础考试试题
  11. Stata统计学软件
  12. 详细解析十大排序算法(js实现)
  13. startup.bat闪退解决
  14. 执行董事和非执行董事的区别
  15. java mock when return can not resolve method xxxx error
  16. HTTP keep-alive和TCP keepalive的区别,你了解吗?
  17. 大数据知识梳理(Hadoop、HDFS)(整理中。。。)
  18. C语言实现等效旋转矢量与三维矢量相乘
  19. 在KindEditor中编辑可上传MP4
  20. seo写作是一种提高网站百度排名的方法

热门文章

  1. 什么是网络营销?网络营销简介
  2. 苏宁易购工作怎么样_苏宁易购招聘来袭
  3. 利用Java Swing技术设计一个Email邮箱地址注册的图形用户界面应用程序
  4. fckeditor编辑器上传漏洞getshell——突破.变_的限制
  5. 通过IPV6上QQ及自建IPV6代理的方法
  6. Linux学习路线浅谈
  7. 酷狗服务器显示失败怎么回事,酷狗常见问题答疑
  8. 结合高斯变异和维数决策逻辑的哈里斯鹰优化算法
  9. [BZOJ1296][SCOI2009]粉刷匠
  10. 12563 - Jin Ge Jin Qu hao(DP)