【運維筆記】nginx

安裝

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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章