nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx相关的知识,希望对你有一定的参考价值。

官方文档:http://nginx.org/en/docs/


  • 编译安装nginx

#安装依赖环境

yum install -y gcc-c++ gcc pcre pcre-devel  zlib zlib-devel openssl openssl-devel perl-devel perl-ExtUtils-Embed 


#下载并解压包

wget http://nginx.org/download/nginx-1.13.9.tar.gz

tar axf nginx-1.13.9.tar.gz


编译安装

./configure --prefix=/usr/local/nginx \

--with-openssl=/usr/include \

--with-pcre \

--with-http_stub_status_module


make &&make install && echo $?

  • nginx静态页面

cd /usr/local/nginx/conf

cp nginx.conf{,.bak}

vim /usr/local/nginx/conf/nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  nginx1;

 #"jpg文件访问目录,绝对路径为/usr/local/nginx/html/jpg"

 #"autoindex on 显示目录列表"

         location /jpg {

             root   html;

             autoindex on;

         }

 #"txt文件存放目录,绝对路径为/data/txt"

         location /txt {

             root   /data/;

             autoindex on;

         }

 #"md文件存放目录,绝对路径为/data2"

         location /md {

             alias   /data2/;

             autoindex on;

         }

 #"jsp文件存放目录,绝对路径为/jsp"

         location /jsp {

             alias   /jsp/;

             autoindex on;

         }     

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}


启动nginx

cd /usr/local/nginx/sbin

./nginx


  • nginx负载均衡

再安装两个nginx,一个用于静态页面访问,一个用于负载均衡

官方文档:http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html

安装

静态网站同上,注意修改监听端口


负载均衡

cd nginx-1.13.9

 ./configure --prefix=/usr/local/nginx_proxy \

 --with-http_ssl_module \

 --with-http_perl_module \

 --with-pcre \

 --with-http_stub_status_module \

 && echo $?

make &&make install && echo $?


#"修改配置文件"

cd /usr/local/nginx_proxy/conf

vim nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

client_max_body_size    50m;

  upstream test_server {

server 192.168.3.58:8001 weight=5;

server 192.168.3.58:80

server 192.168.3.58:8080   backup;

# keepalive 8;

}

    server {

        listen       8000;

        server_name  nginx_proxy;

root /usr/local/nginx1/html;

#"proxy_set_header重新定义或添加字段传递给代理服务器的请求头。"

#"通过代理服务器传递服务器名称和端口"

proxy_set_header Host $host:$server_port;

#"获取客户端IP"

proxy_set_header X-Real-IP $remote_addr;

#"获取客户端访问端口"

proxy_set_header X-Real-PORT $remote_port;

#"获取代理服务器ip"

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {

proxy_pass http://test_server;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

启动nginx

cd /usr/local/nginx_proxy/sbin

./nginx


  • nginx配置选项

文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

指令
用法

可选项

upstream
Syntax: upstream name { ... }

Default:

Context: http

weight=number

max_conns=number

max_fails=number

fail_timeout=time

backup

resolve

route=string

service=name

slow_start=time

drain

zone 

Syntax: zone name [size];

Default:

Context: upstream

This directive appeared in version 1.9.0.


state 

Syntax: state file;

Default:

Context: upstream

This directive appeared in version 1.9.7.


hash 

Syntax: hash key [consistent];

Default:

Context: upstream

This directive appeared in version 1.7.2.


ip_hashSyntax: ip_hash;

Default:

Context: upstream


keepalive 

Syntax: keepalive connections;

Default:

Context: upstream

This directive appeared in version 1.1.4.


ntlm

Syntax: ntlm;

Default:

Context: upstream

This directive appeared in version 1.9.2.


least_conn

Syntax: least_conn;

Default:

Context: upstream

This directive appeared in versions 1.3.1 and 1.2.2.


least_time 

Syntax: least_time header | last_byte [inflight];

Default:

Context: upstream

This directive appeared in version 1.7.10.


queue 

Syntax: queue number [timeout=time];

Default:

Context: upstream

This directive appeared in version 1.5.12.


sticky 

Syntax: sticky cookie name [expires=time] [domain=domain] [httponly] [secure] [path=path];

sticky route $variable ...;

sticky learn create=$variable lookup=$variable zone=name:size [timeout=time] [header];

Default:

Context: upstream

This directive appeared in version 1.5.7.

cookie

route

learn

嵌入变量

$upstream_addr

$upstream_bytes_received

$upstream_cache_status

$upstream_connect_time

$upstream_cookie_name

$upstream_header_time

$upstream_http_name

$upstream_response_length

$upstream_response_time

$upstream_status

  • rewrite_module官方文档:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

rewrite 

Syntax: rewrite regex replacement [flag];

Default:

Context: server, location, if


break

Syntax: break;

Default:

Context: server, location, if


if

Syntax: if (condition) { ... }

Default:

Context: server, location


return 

Syntax: return code [text];

return code URL;

return URL;

Default:

Context: server, location, if


rewrite_log 

Syntax: rewrite_log on | off;

Default:

rewrite_log off;

Context: http, server, location, if


set 

Syntax: set $variable value;

Default:

Context: server, location, if


uninitialized_variable_warn 

Syntax: uninitialized_variable_warn on | off;

Default:

uninitialized_variable_warn on;

Context: http, server, location, if



  • proxy_module官方文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html

proxy_pass 

Syntax: proxy_pass URL;

Default: —

Context: location, if in location, limit_except


proxy_bind 

Syntax: proxy_bind address [transparent] | off;

Default:

Context: http, server, location

This directive appeared in version 0.8.22.


proxy_buffer_size

Syntax: proxy_buffer_size size;

Default:

proxy_buffer_size 4k|8k;

Context: http, server, location


proxy_buffering 

Syntax: proxy_buffering on | off;

Default:

proxy_buffering on;

Context: http, server, location


proxy_buffers 

Syntax: proxy_buffers number size;

Default:

proxy_buffers 8 4k|8k;

Context: http, server, location


proxy_busy_buffers_size 

Syntax: proxy_busy_buffers_size size;

Default:

proxy_busy_buffers_size 8k|16k;

Context: http, server, location


proxy_cache 

Syntax: proxy_cache zone | off;

Default:

proxy_cache off;

Context: http, server, location


proxy_cache_background_update 

Syntax: proxy_cache_background_update on | off;

Default:

proxy_cache_background_update off;

Context: http, server, location

This directive appeared in version 1.11.10.


proxy_cache_bypass 

Syntax: proxy_cache_bypass string ...;

Default:

Context: http, server, location


proxy_cache_convert_head 

Syntax: proxy_cache_convert_head on | off;

Default:

proxy_cache_convert_head on;

Context: http, server, location

This directive appeared in version 1.9.7.


proxy_cache_key 

Syntax: proxy_cache_key string;

Default:

proxy_cache_key $scheme$proxy_host$request_uri;

Context: http, server, location


proxy_cache_lock 

Syntax: proxy_cache_lock on | off;

Default:

proxy_cache_lock off;

Context: http, server, location

This directive appeared in version 1.1.12.


proxy_cache_lock_age 

Syntax: proxy_cache_lock_age time;

Default:

proxy_cache_lock_age 5s;

Context: http, server, location

This directive appeared in version 1.7.8.


proxy_cache_lock_timeout 

Syntax: proxy_cache_lock_timeout time;

Default:

proxy_cache_lock_timeout 5s;

Context: http, server, location

This directive appeared in version 1.1.12.


proxy_cache_max_range_offset 

Syntax: proxy_cache_max_range_offset number;

Default:

Context: http, server, location

This directive appeared in version 1.11.6.


proxy_cache_methods 

Syntax: proxy_cache_methods GET | HEAD | POST ...;

Default:

proxy_cache_methods GET HEAD;

Context: http, server, location

This directive appeared in version 0.7.59.


proxy_cache_min_uses 

Syntax: proxy_cache_min_uses number;

Default:

proxy_cache_min_uses 1;

Context: http, server, location


proxy_cache_path 

Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];

Default:

Context: http

purger=on|off

purger_files=number

purger_threshold=number

purger_sleep=number


proxy_cache_purge 

Syntax: proxy_cache_purge string ...;

Default:

Context: http, server, location

This directive appeared in version 1.5.7.


proxy_cache_revalidate 

Syntax: proxy_cache_revalidate on | off;

Default:

proxy_cache_revalidate off;

Context: http, server, location

This directive appeared in version 1.5.7.


proxy_cache_use_stale 

Syntax: proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | off ...;

Default:

proxy_cache_use_stale off;

Context: http, server, location


proxy_cache_valid 

Syntax: proxy_cache_valid [code ...] time;

Default:

Context: http, server, location


proxy_connect_timeout 

Syntax: proxy_connect_timeout time;

Default:

proxy_connect_timeout 60s;

Context: http, server, location


proxy_cookie_domain 

Syntax: proxy_cookie_domain off;

proxy_cookie_domain domain replacement;

Default:

proxy_cookie_domain off;

Context: http, server, location

This directive appeared in version 1.1.15.


proxy_cookie_path 

Syntax: proxy_cookie_path off;

proxy_cookie_path path replacement;

Default:

proxy_cookie_path off;

Context: http, server, location

This directive appeared in version 1.1.15.


proxy_force_ranges

Syntax: proxy_force_ranges on | off;

Default:

proxy_force_ranges off;

Context: http, server, location

This directive appeared in version 1.7.7.


proxy_headers_hash_bucket_size 

Syntax: proxy_headers_hash_bucket_size size;

Default:

proxy_headers_hash_bucket_size 64;

Context: http, server, location


proxy_headers_hash_max_size 

Syntax: proxy_headers_hash_max_size size;

Default:

proxy_headers_hash_max_size 512;

Context: http, server, location


proxy_hide_header 

Syntax: proxy_hide_header field;

Default:

Context: http, server, location


proxy_http_version 

Syntax: proxy_http_version 1.0 | 1.1;

Default:

proxy_http_version 1.0;

Context: http, server, location

This directive appeared in version 1.1.4.


proxy_ignore_client_abort 

Syntax: proxy_ignore_client_abort on | off;

Default:

proxy_ignore_client_abort off;

Context: http, server, location


proxy_ignore_headers 

Syntax: proxy_ignore_headers field ...;

Default:

Context: http, server, location


proxy_intercept_errors 

Syntax: proxy_intercept_errors on | off;

Default:

proxy_intercept_errors off;

Context: http, server, location


proxy_limit_rate 

Syntax: proxy_limit_rate rate;

Default:

proxy_limit_rate 0;

Context: http, server, location

This directive appeared in version 1.7.7.


proxy_max_temp_file_size 

Syntax: proxy_max_temp_file_size size;

Default:

proxy_max_temp_file_size 1024m;

Context: http, server, location


proxy_method 

Syntax: proxy_method method;

Default:

Context: http, server, location


proxy_next_upstream 

Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | non_idempotent | off ...;

Default:

proxy_next_upstream error timeout;

Context: http, server, location

error

timeout

invalid_header

http_500

http_502

http_404

non_idempotent

off

proxy_next_upstream_timeout 

Syntax: proxy_next_upstream_timeout time;

Default:

proxy_next_upstream_timeout 0;

Context: http, server, location

This directive appeared in version 1.7.5.


proxy_next_upstream_tries 

Syntax: proxy_next_upstream_tries number;

Default:

proxy_next_upstream_tries 0;

Context: http, server, location

This directive appeared in version 1.7.5.


proxy_no_cache

Syntax: proxy_no_cache string ...;

Default:

Context: http, server, location


proxy_pass 

Syntax: proxy_pass URL;

Default:

Context: location, if in location, limit_except


proxy_pass_header 

Syntax: proxy_pass_header field;

Default:

Context: http, server, location


proxy_pass_request_body 

Syntax: proxy_pass_request_body on | off;

Default:

proxy_pass_request_body on;

Context: http, server, location


proxy_pass_request_headers 

Syntax: proxy_pass_request_headers on | off;

Default:

proxy_pass_request_headers on;

Context: http, server, location


proxy_read_timeout 

Syntax: proxy_read_timeout time;

Default:

proxy_read_timeout 60s;

Context: http, server, location


proxy_redirect 

Syntax: proxy_redirect default;

proxy_redirect off;

proxy_redirect redirect replacement;

Default:

proxy_redirect default;

Context: http, server, location


proxy_request_buffering 

Syntax: proxy_request_buffering on | off;

Default:

proxy_request_buffering on;

Context: http, server, location

This directive appeared in version 1.7.11.


proxy_send_lowat 

Syntax: proxy_send_lowat size;

Default:

proxy_send_lowat 0;

Context: http, server, location


proxy_send_timeout 

Syntax: proxy_send_timeout time;

Default:

proxy_send_timeout 60s;

Context: http, server, location


proxy_set_body 

Syntax: proxy_set_body value;

Default:

Context: http, server, location


proxy_set_header 

Syntax: proxy_set_header field value;

Default:

proxy_set_header Host $proxy_host;

proxy_set_header Connection close;

Context: http, server, location


proxy_ssl_certificate 

Syntax: proxy_ssl_certificate file;

Default:

Context: http, server, location

This directive appeared in version 1.7.8.


proxy_ssl_certificate_key 

Syntax: proxy_ssl_certificate_key file;

Default:

Context: http, server, location

This directive appeared in version 1.7.8.


proxy_ssl_ciphers 

Syntax: proxy_ssl_ciphers ciphers;

Default:

proxy_ssl_ciphers DEFAULT;

Context: http, server, location

This directive appeared in version 1.5.6.


proxy_ssl_crl 

Syntax: proxy_ssl_crl file;

Default:

Context: http, server, location

This directive appeared in version 1.7.0.


proxy_ssl_name 

Syntax: proxy_ssl_name name;

Default:

proxy_ssl_name $proxy_host;

Context: http, server, location

This directive appeared in version 1.7.0.


。。。。。。。。。。。。。。。。。。。


以上是关于nginx的主要内容,如果未能解决你的问题,请参考以下文章

将 nginx rtmp 片段发送到 WebRTC

text 有用的nginx命令和片段

linux学习:Nginx--常见功能配置片段与优化-06

HLS NGINX-RTMP [错误] 1281#0:* 58 hls:强制片段拆分:10.002 秒

Nginx 跨域

Nginx配置文件详细介绍