Nginx反向代理配置详解
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反向代理配置详解相关推荐
- nginx反向代理模块配置详解_nginx反向代理配置详解
反向代理配置 修改部署目录下conf子目录的nginx.conf文件(如/opt/nginx/conf/nginx.conf)内容,可调整相关配置. 将默认配置里面带#号注释内容去掉 grep -v ...
- Nginx正向代理配置详解
一.nginx正向代理介绍及配置(需要在客户端配置代理服务器进行指定网站访问) #模块 ngx_http_proxy_module: http://nginx.org/en/docs/http/ngx ...
- LNMP详解(七)——Nginx反向代理配置实战
今天继续给大家介绍Linux运维的相关知识,本文主要内容是Nginx反向代理配置实战. 一.系统架构简介 在生产环境中,我们有时需要使用Nginx做反向代理功能,其架构如下所示: 在上图中,所有的外界 ...
- nginx反向代理配置解决不同域名默认页面不同问题
nginx反向代理配置解决不同域名默认页面不同问题 背景 设计思路 步骤 背景 需求:使用同一个项目(http://localhost:8080/thzhdj)映射两个域名(test1.com,tes ...
- nginx反向代理配置及优化
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liuyu.blog.51cto.com/183345/166381 nginx反 ...
- nginx反向代理配置实例分享
nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...
- Nginx的location配置详解
Nginx的location配置详解 匹配顺序 location 的匹配顺序其实是先匹配普通,再匹配正则 正则匹配会覆盖普通匹配(实际的规则,比这复杂) 执行顺序 普通 location的匹配规则是& ...
- Nginx SSI指令配置详解
这篇文章主要介绍了Nginx SSI指令配置详解,本文讲解了什么是SSI.为什么要用SSI.nginx配置SSI.页面上配置.配置示例等内容,需要的朋友可以参考下 什么是SSI Server Side ...
- linux nginx反向代理配置
linux nginx反向代理配置 location ^~/api/ {proxy_pass http://192.168.1.50:82/; }
最新文章
- 开发管理 (2) -规划项目
- Android内存泄露总结
- @RequestParam和@RequestBody的区别 (结合 Get/Post )
- 使用shell脚本实现自动SSH互信功能
- python+OpenCV检测条形码
- python计算汉明距离_有效地使用python计算汉明距离
- 清华镜像站 python_使用清华、豆瓣镜像源下载tensorflow
- hdoj1242(bfs+priority_queue)
- 苹果系统与win10连接到服务器,苹果手机怎么连接win10电脑详细步骤
- 486微型计算机的字长是 8位 16位 32位 64位,大学计算机基础考试试题
- Stata统计学软件
- 详细解析十大排序算法(js实现)
- startup.bat闪退解决
- 执行董事和非执行董事的区别
- java mock when return can not resolve method xxxx error
- HTTP keep-alive和TCP keepalive的区别,你了解吗?
- 大数据知识梳理(Hadoop、HDFS)(整理中。。。)
- C语言实现等效旋转矢量与三维矢量相乘
- 在KindEditor中编辑可上传MP4
- seo写作是一种提高网站百度排名的方法