关于NGINX在wnidows下面和linux下面的多站点的反向代理的配置
原创文章,转载注明出处
nginx作为一款优秀的反向代理软件,以其好用,易于搭建负载均衡的网站集群而著称,这里分别记录一下工作中用到nginx作为负载以及多站点发布的时候一些配置和注意事项
一 nginx在linux下使用配置,对于多站点以及负载 这里建议最好的方式是使用 sites-enabled 的方式,把配置文件分开来配置,清晰明了。
下面来看一下整个的文件结构:
1。看一下关于nginx.conf的配置
user www-data;
worker_processes ;
# worker_cpu_affinity ;
worker_rlimit_nofile ;
pid /run/nginx.pid; events {
use epoll;
worker_connections ;
# multi_accept on;
} http { ##
# Basic Settings
## sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout ;
types_hash_max_size ;
server_tokens off; server_names_hash_bucket_size ;
# server_name_in_redirect off; include /etc/nginx/mime.types; # 注意这里需要注意的,特别涉及到上传不成功的时候,需要检查这里
default_type application/octet-stream; client_max_body_size 5m; ##
# SSL Settings
## #ssl_protocols TLSv1 TLSv1. TLSv1.; # Dropping SSLv3, ref: POODLE
#ssl_prefer_server_ciphers on; ##
# Logging Settings
##
log_format main 'realip:$http_x_forwarded_for slbip:$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"$upstream_addr" "$upstream_status" "$upstream_response_time"';
access_log /home/nginx_logs/access.log main; error_log /home/nginx_logs/error.log; ##
# Gzip Settings
## #gzip on;
#gzip_disable "msie6"; #gzip_vary on;
#gzip_proxied any;
#gzip_comp_level ;
#gzip_buffers 8k;
#gzip_http_version 1.1;
#gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip on;
gzip_min_length ;
gzip_buffers 8k;
gzip_types text/* text/css application/javascript. application/x-javascript;
gzip_comp_level 9;
gzip_proxied any;
gzip_vary on;
gzip_http_version 1.0;
output_buffers 4 32k;
postpone_output 1460;
client_header_buffer_size 128k;
large_client_header_buffers 4 256k;
client_header_timeout 1m;
client_body_timeout 1m;
send_timeout 1m; limit_conn_zone $binary_remote_addr zone=addr:10m; ###start####
#add_header Access-Control-Allow-Origin *;
#add_header Access-Control-Allow-Headers X-Requested-With;
#add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
###end ### ##
# Virtual Host Configs 注意,这里就是开启配置文件包含,我们为多站点分开配置
## include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
2。看一看包含文件的配置:
在conf.d中配置 反向代理的真实服务器的地址
如果有多台,这里直接多配置几台就可以,即可实现负载均衡
upstream maple-api {
server localhost:6000 max_fails=2 fail_timeout=15s;
server localhost:6001 max_fails=2 fail_timeout=15s;
server localhost:6002 max_fails=2 fail_timeout=15s;
}
这里可以用DOCKER的方式,模拟多台服务器的负载均衡,看看是否nginx能真实起效果
3。关于server的配置,来看看配置
配置文件详细:
server {
listen 80;
#listen 8080;
server_name mapleadmin.srfish.com; #注意这里的域名,就是拿来区别,多站点反向代理的
#index index.html index.htm; #配置日志
access_log /home/nginx_logs/maple-admin/maple-admin.cn_access.log main; #注意这边的日志,如果不存的话,你估计得手工创建一个
error_log /home/nginx_logs/maple-admin/maple-admin.cn_error.log;
#ssl on; #这里的SSL配置,如果启用了证书,可以加一个证书的
#ssl_certificate /etc/nginx/sslkey/vpclub.pem;
#ssl_certificate_key /etc/nginx/sslkey/vpclub.key;
#ssl_session_timeout 5m;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
#ssl_prefer_server_ciphers on; #对 "/" 启用负载均衡
location / {
proxy_redirect off;
proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
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 1024k;
#跟后端服务器连接超时时间 发起握手等候响应超时时间
proxy_connect_timeout 40;
#连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理
proxy_read_timeout 90;
#代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息即可
proxy_send_timeout 90;
#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
proxy_buffer_size 1024k;
proxy_buffers 32 1024k;
#如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2
proxy_busy_buffers_size 2048k;
#proxy 缓存临时文件的大小
proxy_temp_file_write_size 2048k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m; #以这种格式来使用后端的web服务器
proxy_pass http://maple-admin; #注意这边的写法,这个 名字,一定要同 oonf.d/*中的配置文件对应,不能乱写,不然代理不到正确的网址去
#index index.html index.htm index.jsp; } #location /status #开启NGIN的状态支持,可以写一个脚本,了解NGINX当前的流量以及活动SESSION
#{
# stub_status on;
# access_log off;
#}
}
二 nginx在WINDOWS下面的配置,WINDOWS在配置的时候,我也尝试过配置site-enables,但是没有成功,如果有成功的大佬,希望大佬赐教,这里是直接配置在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; 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;
error_log logs/error.log; sendfile on;
#tcp_nopush on;
#gzip on; tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off; server_names_hash_bucket_size 512; gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/* text/css application/javascript. application/x-javascript;
gzip_comp_level 9;
gzip_proxied any;
gzip_vary on;
gzip_http_version 1.0;
output_buffers 4 32k;
postpone_output 1460;
client_header_buffer_size 128k;
large_client_header_buffers 4 256k;
client_header_timeout 1m;
client_body_timeout 1m;
send_timeout 1m; limit_conn_zone $binary_remote_addr zone=addr:10m; ##
# Virtual Host Configs
## #include conf.d/*.conf;
#include sites-enabled/*; # another virtual host using mix of IP-, name-, and port-based configuration
#
server {
listen 80;
server_name www.site.info; #配置日志
access_log logs/site_logs/site.cn_access.log main;
error_log logs/site_logs/site.cn_error.log; #对 "/" 启用负载均衡
location / {
proxy_redirect off;
proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
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 1024k;
#跟后端服务器连接超时时间 发起握手等候响应超时时间
proxy_connect_timeout 40;
#连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理
proxy_read_timeout 90;
#代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息即可
proxy_send_timeout 90;
#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
proxy_buffer_size 1024k;
proxy_buffers 32 1024k;
#如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2
proxy_busy_buffers_size 2048k;
#proxy 缓存临时文件的大小
proxy_temp_file_write_size 2048k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m; #以这种格式来使用后端的web服务器
proxy_pass http://jjdata-site;
#index index.html index.htm index.jsp; }
}
upstream jjdata-site {
server localhost:8011 max_fails=2 fail_timeout=15s;
#server localhost:7001 max_fails=2 fail_timeout=15s;
} server {
listen 80;
server_name admin.site.info; #配置日志
access_log logs/admin_logs/admin.cn_access.log main;
error_log logs/admin_logs/admin.cn_error.log; #对 "/" 启用负载均衡
location / {
proxy_redirect off;
proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
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 1024k;
#跟后端服务器连接超时时间 发起握手等候响应超时时间
proxy_connect_timeout 40;
#连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理
proxy_read_timeout 90;
#代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息即可
proxy_send_timeout 90;
#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
proxy_buffer_size 1024k;
proxy_buffers 32 1024k;
#如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2
proxy_busy_buffers_size 2048k;
#proxy 缓存临时文件的大小
proxy_temp_file_write_size 2048k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m; #以这种格式来使用后端的web服务器
proxy_pass http://jjdata-admin;
#index index.html index.htm index.jsp; }
}
upstream jjdata-admin {
server localhost:8010 max_fails=2 fail_timeout=15s;
#server localhost:7001 max_fails=2 fail_timeout=15s;
} }
其实是跟linux环境下是一样的,只是放在一个文件里面
三 测试一把负载均衡
访问同一个文件的时候,会不定时的切换负载,说明配置成功,这负载均衡的配置真是简单到让人难以想像,强大。
四 再来个zabbix,我们搞一个流量监控吧
是的,装逼就要装到家,一定要帅才行,好了,布置和监控完毕
关于NGINX在wnidows下面和linux下面的多站点的反向代理的配置的更多相关文章
- 【netcore基础】CentOS 7.6.1810 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动
之前写过一篇Ubuntu的环境搭建博客,感觉一些配置大同小异,这里重点记录下 nginx 作为静态 angular 项目文件服务器的配置 参考链接 [netcore基础]ubuntu 16.04 搭建 ...
- Nginx反向代理的配置
Chapter: Nginx基本操作释疑 1. Nginx的端口修改问题 2. Nginx 301重定向的配置 3. Windows下配置Nginx使之支持PHP 4. Linux下配置Nginx使之 ...
- Nginx(http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡)
Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开 ...
- nginx的反向代理和配置
最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡.所以搜罗了一些关于反向代理服务器的内容,整理综合. 一 概述 反向代理(Reverse Proxy)方式 ...
- 使用Nginx对.NetCore站点进行反向代理
前言 之前的博客我已经在Linux上部署好了.NetCore站点且通过Supervisor对站点进行了进程守护,同时也安装好了Nginx.Nginx的用处非常大,还是简单说下,它最大的功能就是方便我们 ...
- 【转】Nginx服务器的反向代理proxy_pass配置方法讲解
[转]Nginx服务器的反向代理proxy_pass配置方法讲解 转自:http://www.jb51.net/article/78746.htm 就普通的反向代理来讲Nginx的配置还是比较简单的, ...
- nginx反向代理的配置优化
作者:守住每一天 blog:liuyu.blog.51cto.combbs:bbs.linuxtone.orgmsn:liuyubj520#hotmail.comemail:liuyu105#gmai ...
- nginx启用TCP反向代理日志配置
Nginx使用TCP反向代理日志配置不同于http 修改nginx配置文档/usr/local/nginx/conf/nginx.conf 设置日志格式 stream { log_format pro ...
- nginx的stream反向代理mysql配置
这里主要记录一下nginx的负载代理stream模块,首先编译的时候需要加上--with-stream, 就像这样 然后nginx.conf里面的配置是在http选项上面加上 #Mysql Rever ...
随机推荐
- C++入门经典-例9.5-为具体类型的参数提供默认值
1:默认模板参数是指类模板中由默认的数据类型作为参数的参数,在模板定义时,还可以为默认的数据类型声明,变量,并为变量赋值.代码如下: // 9.5.cpp : 定义控制台应用程序的入口点. #incl ...
- vxWorks下常用的几种延时方法
在应用编程的时候,通常会碰到需要一个任务在特定的延时之后执行一个指定的动作,如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等.这就需要利用定时器机制来计量特定长度的时间段. ...
- WorkStation 虚拟机迁移到 ESXi
将Workstation的vmdk文件导入到Esxi. 提示如题错误提示. 无法打开磁盘 scsi0:0: 磁盘类型 7 不受支持或无效.请确保磁盘已导入. 在VMware Workstation,V ...
- ubuntu下tomcat运行不起来解决
报错Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these enviro ...
- 数据解析框架之FastJson
演示实体类 import java.util.List; public class Student { public String name; public int age; public List& ...
- C#连接内存数据库redis【1、Redis存读取数据】
这一节演示下载.NET中怎样使用Redis存储数据.在.net中比较常用的客户端类库是ServiceStack,看下通过servicestack怎样存储数据. DLL下载:https://github ...
- HashMap 的实现原理解析(转载)
HashMap 概述 HashMap 是基于哈希表的 Map 接口的非同步实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.此类不保证映射的顺序,特别是它不保证该顺序恒久不 ...
- 一个好看的测试报告模板BeautifulReport
def nrun(): report = ('report_' + ('%s') % time.strftime("%Y-%m-%d-%H-%M-%S", time.localti ...
- Core 3 WPF MVVM框架 Prism系列之数据绑定
一.安装Prism 1.使用程序包管理控制台# Install-Package Prism.Unity -Version 7.2.0.1367 也可以去掉‘-Version 7.2.0.1367’获取 ...
- 微信路由navigateTo
// pages/index/index.js Page({ /** * 页面的初始数据 */ data: { res:2 }, search: function(e) { var that = th ...