专业编程基础技术教程

网站首页 > 基础教程 正文

nginx配置文件详解

ccvgpt 2024-09-09 02:20:40 基础教程 6 ℃

nginx配置文件分为三段:

1.全局(main)配置段

nginx配置文件详解

2.event配置段

3.http配置段---包含server配置 main配置段

user nobody nobody; ##设置用户及用户组 worker_processes 2/auto;nginx开启的进程数,根据CPU核数确定,或者auto自动选择

#worker_cpu_affinity 0001 0010 0100 1000;指定cpu运行nginx

error_log 路径 错误日志类型[debug|info|notice|warn|error|crit];

pid 路径;指定pid文件路径

worker_rlimit_nofile 65535;一个nginx进程打开的最大文件描述符数目 events配置段

events

{

use [epoll|kqueue]参考事件模型 linux|FreeBSD,二者都是高效事件模型

worker_connections 65535;单个进程最大连接数

keepalive_timeout 60;超时时间

} http配置段

{ ①.... upstream{ } server{ ②...... location{ } location{ } }

} ①配置

include mime.typs;文件扩展名与文件类型映射表

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

log_format ...设定日志格式

access_log 设置访问日志文件路径

client_max_body_size 500m;设定上传文件大小

sendfile on 指定nginx是否调用sendfile函数来输出文件。

proxy_connect_timeout 90;后端服务器连接超时时间

proxy_read_time 180;连接成功后,等待后端服务器处理请求的时间

proxy_send_timeout 180;规定时间内,后端服务器必须传完所有数据

proxy_buffer_size 256K 设置从被代理服务器读取的第一部分应答的缓冲区的大小

proxy_buffers 4 256 设置缓冲区数目和大小

keepalive_timeout 120 keepalive超时时间

tcp_nodely on 能有效的提高数据的实时响应性 防止网络阻塞

tcp_nopush on 允许或禁止使用socket的tcp_cork,仅在使用sendfile时使用,防止网络阻塞 FastCGI相关配置

fastcgi_connect_timeout 300

fastcgi_send_timeout fastcgi_read_timeout

fastcgi_buffer_size

fastcgi_buffers 4 256k

fastcgi_busy_buffer_size

fastcgi_temp_file_write_size gzip模块设置

gzip on 开启压缩输出

gzip_min_length 最小压缩文件大小

gzip_buffers 4 16

gzip_http_version 1.1

gzip_comp_level 2

gzip_typs text/plain application/x-javascript text/css application/xml;#前端缓存服务器缓存经过压缩的页面

gzip_vary on upstream模块 例:加权轮询

upstream 目标地址{

server 192.168.1.1 weight=2 max_fails=1 fail_timeout=60s;

server 192.168.1.2 down;不启用

server 192.168.1.3 backup;其他机器忙的时候,请求此主机

}

负载均衡几种方式

1.轮询

2.加权轮询

3.ip_hash,可保证session一致性

upstream 目标地址{

ip_hash;

server 192.168.1.1;

server 192.168.1.2;

}

4.fair(第三方),按响应时间分配请求,响应时间短的优先分配,或者可以说空闲机器优先分配。

upstream 目标地址{

server 192.168.1.1;

server 192.168.1.2;

fair;

}

5.url_hash(第三方)按照访问url的hash结果分配,使每个url定向到同一个后端服务器

upstream 目标地址{

ip_hash;

server 192.168.1.1;

server 192.168.1.2;

hash $request_uri;

hash_method crc32;

} ②server,虚拟主机配置

server {

listen 80;监听端口

server_name 192.168.1.151/wmy.com/localhost;访问域名、主机

access_log logs/host.access.log main;虚拟主机访问日志定义 location / { 对url进行匹配

root html/xxxxxxx; 访问的根路径

index xxxx.html insex.htm 提供访问内容的文件 } location ~*\.(mp3|exe)${ 将以MP3。exe结尾的请求转发至。。。

proxy_pass http://img_relay$request_uri;

proxy_set_header Host $Host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;记录代理服务器记录的真实ip

}

###rewrite重写机制,实现域名跳转

location / {

if ($http_user_agent ~* "xnp") {

rewrite ^(.*) http://i1.***.com/help/noming.gif}

} ###错误信息返回页面

#error_page 400 /404.html

error_page 500 502 503 /50x.html

location = /50x.html {

root html;

} ###禁止或允许用户访问

location ~ /\.ht {

deny all;禁止访问

allow all;允许所有人访问

}

禁止指定用户

location ~ /\.ht { 从上到下生效,只允许192.168.1.123访问

allow 192.168.1.123;

deny all;

}

} https虚拟主机(需在编译时编译ssl模块)

server {

listen 443 ssl;

server_name localhost;

ssl_certificate cert.pem;

ssl_certificate_key cert.key;

ssl_session_cache shared:SSL:1m;

ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers on;

location / { root html; index index.html index.htm;

} nginx状态监控---stubstatus模块,需在安装时编译

location /hxbcdnstatus { stub_status on; access_log off; allow 127.0.0.1; deny all; deny all; #auth_basic 'NginxStatus'; #auth_basic_user_file conf/nginxstaus; }

最近发表
标签列表