【运维笔记】nginx

2 篇文章 0 订阅

安装

yum install -y  gcc  gcc-c++  zlib-devel

--with-pcre

负载均衡配置

用户通过https协议访问nginx服务器,内部服务器用http协议
	upstream <upstream_name>{
		server [ip]:[port];
		}

	server{
		listen 443;
		location / {
		proxy_pass http://<upstream_name>;
		}
			}

负载服务器也提供Web服务
新增一个端口用于负载服务器提供web服务 [new_port]
server 127.0.0.1[new_port]

HTTP协议负载配置

## HTTP协议
	http {
		upstream [name1] {
			### max_fails=1 最大连接失败次数
			### fail_timeout 最大连接超时时间
			server [ip]:[port] max_fails=1 fail_timeout=40s;
			server [ip]:[port] max_fails=1 fail_timeout=40s;
		}
		server {
			...
			location / {
			### 设置代理服务器的地址。地址可以指定为域名或IP地址,以及端口
				proxy_pass http://[name1];  ## 其他协议不用加 http://前缀
				
				### 定义与代理服务器建立连接的超时时间
				proxy_connect_timeout 1;
				
				
				proxy_read_timeout 1;
				
				
				stub_status on;		##开启统计功能。Active connections 活动连接数。

				access_log off;
			}
	}

## 其他协议(TCP),例如ssh协议转发
	stream {
		upstream <upstream_name> {
			server [ip]:[port];
		}
		server {
			listen [port];
			proxy_pass <upstream_name>;  ##和http协议的差距,http协议要加 http://前缀
	}

同端口不同域名

server {
	listen          *:88;
	server_name     1.t1.com;
	location / {
			proxy_pass      http://127.0.0.1:8081;
	}

}

server {
	listen          *:88;
	server_name    2.t1.com;
	location / {
			proxy_pass      http://127.0.0.1:8082;
	}

}

禁用未绑定域名访问

server {
	listen       80 default_server;
	server_name  _;
	return       404;
}

nginx健康检查模块

nginx的健康检查(health_check)
主要是通过在upstream中配置max_fails和fail_timeout来实现

nginx openssl模块

源码安装的软件添加新模块
进入解压包
重新编译
如nginx添加ssl支持模块
./configure --prefix=/usr/local/nginx --with-pcre=/home/pcre-8.41  --with-http_stub_status_module --with-http_ssl_module --with-openssl=/home/openssl-1.0.2l

不要make install ,会覆盖原来的。
备份源二进制文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

替换二进制文件
cp ./objs/nginx /usr/local/nginx/sbin/

查看是否成功
/usr/local/nginx/sbin/nginx -V

配置nginx日志格式,采用log_format格式:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
					  '$status $body_bytes_sent "$http_referer" '
					  '"$http_user_agent" "$http_x_forwarded_for"';

获取客户端真实IP

### nginx http_realip_module模块
	一个透明的代理服务器在把用户的请求转到下一环节的服务器时,会在 HTTP 的头中加入一条 X-Forwarded-For 记录,用来记录用户的真实 IP,其形式为 X-Forwarded-For:用户IP。如果中间经历了多个代理服务器,那么 X-Forwarded-For 会表现为以下形式:X-Forwarded-For:用户IP, 代理服务器1-IP, 代理服务器2-IP, 代理服务器3-IP, ……。
	nginx -V | grep http_realip_module命令查看该模块是否已安装
		--with-http_realip_module

### 修改对应 server 的配置
	set_real_ip_from ip_range1;
	set_real_ip_from ip_range2;
	...
	set_real_ip_from ip_rangex;
	real_ip_header    X-Forwarded-For;

连接超时

upstream timed out (110: Connection timed out) while reading response header from upstream
	proxy_connect_timeout    600;
	proxy_read_timeout       600;
	proxy_send_timeout       600;

上传文件大小

client_max_body_size 50M;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值