nginx配置是什么

2023-12-26 31阅读

什么是Nginx?

Nginx(发音为“engine x”)是一个高性能的HTTP和反向代理服务器,它最初是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,目的是解决C10K问题(即同时处理1万个并发连接),Nginx是一个开源软件,可以在类Unix操作系统(如Linux)上运行,它具有高并发、高性能、低内存占用等特点,因此在Web服务器领域得到了广泛应用。

nginx配置是什么(图片来源网络,侵删)

Nginx配置是什么?

Nginx配置是指通过编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf),来定义Nginx服务器的行为,配置文件包含了诸如虚拟主机、负载均衡、反向代理、缓存策略等许多设置,通过修改配置文件,可以实现对Nginx服务器的各种定制化需求。

Nginx配置的基本结构

Nginx配置文件主要包括以下几个部分:

1、全局块:包含影响整个服务器的设置,如工作进程数、错误日志路径等。

nginx配置是什么(图片来源网络,侵删)

2、events块:定义了与事件驱动相关的设置,如连接数上限、请求缓冲区大小等。

3、http块:包含最核心的设置,如默认站点、负载均衡策略等。

4、server块:定义了一个虚拟主机,包括监听端口、根目录、默认文档等设置。

nginx配置是什么(图片来源网络,侵删)

5、location块:定义了特定URL路径的处理规则,如反向代理、重写规则等。

6、keepalive_timeout指令:定义长连接超时时间。

7、access_log和error_log指令:分别定义访问日志和错误日志的路径及格式。

8、include指令:用于引入其他配置文件,实现模块化管理。

9、root指令:定义网站根目录。

10、index指令:定义默认首页文件名。

11、try_files指令:按顺序尝试文件或目录,返回第一个存在的资源。

12、proxy_pass指令:定义反向代理目标地址。

13、return指令:定义响应状态码及内容。

14、sendfile指令:启用或禁用高效传输模式。

15、tcp_nopush指令:控制TCP_NODELAY是否使用Nagle算法。

16、gzip指令:启用或禁用gzip压缩。

17、fastcgi_pass指令:定义FastCGI服务器地址。

18、fastcgi_param指令:传递给FastCGI程序的参数。

19、uwsgi_param指令:传递给uWSGI应用程序的参数。

20、ssl_certificate和ssl_certificate_key指令:定义SSL证书及其密钥路径。

21、resolver指令:定义DNS解析器。

22、server_name指令:定义虚拟主机名称。

23、location ~\.(jpg|jpeg|gif|png|ico|css|js)$指令匹配静态文件资源的URL路径。

24、location ~\.(xml|txt)$指令匹配文本文件的URL路径。

25、location ~\.(html|htm)$指令匹配HTML文件的URL路径。

26、location ~\.(asp|php|jsp)$指令匹配动态生成的网页文件的URL路径。

27、location /$\{\$uri\}$指令:根据URI进行重写。

28、location ^~ /static/$指令:匹配以/static/开头的URL路径,将其映射到指定目录。

29、location ^~ /assets/$指令:匹配以/assets/开头的URL路径,将其映射到指定目录。

30、if ($http_user_agent ~* MSIE) $http_user_agent = "MSIE"; 判断客户端浏览器类型并设置User-Agent头信息。

31、if ($http_user_agent ~* Chrome) $http_user_agent = "Chrome"; 判断客户端浏览器类型并设置User-Agent头信息。

32、log_format main '$remote_addr $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 将访问日志格式化为可读的形式。

33、access_log /var/log/nginx/access.log main; 定义访问日志路径及格式。

34、error_log /var/log/nginx/error.log warn; 定义错误日志路径及级别(warn表示警告级别)。

35、sendfile on; 开启高效传输模式。

36、keepalive_timeout 65; 设置长连接超时时间为65秒。

37、client_max_body_size 100M; 限制客户端请求主体的最大值为100M。

38、large_client_header_buffers 4 8k; 为大头部分配缓冲区大小。

39、client_body_buffer_size 128k; 设置客户端请求主体缓冲区大小为128k。

40、client_header_buffer_size 1k; 设置客户端请求头部缓冲区大小为1k。

41、proxy_buffering off; 关闭代理缓冲,提高性能。

42、proxy_read_timeout 90; 设置代理读取超时时间为90秒。

43、proxy_connect_timeout 30; 设置代理连接超时时间为30秒。

44、proxy_send_timeout 30; 设置代理发送超时时间为30秒。

45、proxy_next_upstream error timeout invalid_header http_0xx http_to_https; 定义后端服务器失败时的重试策略。

46、upstream backend { server backend1.example.com; server backend2.example.com; }; 定义后端服务器列表及权重。

47、upstream cache { server cache1.example.com; server cache2.example.com; }; 定义缓存服务器列表及权重。

48、server { listen 80; server_name example.com; root /usr/share/nginx/html; index index.html index.htm; error_page 500 502 503 504 @error; location = /favicon.ico$ iicon; location = /robots\.txt$ text disposable=yes allow=all; location ~ \*\* \.(jpg|jpeg|gif|png|ico|css|js)$ iimage autoindex on; location ~ \*\* \.(xml|txt)$ text index index.html index.htm index.txt default type text/plain charset=utf-8 expires=30d; location ~ \*\* \$.(html|htm)$ try_files $uri $uri/ @fallback; location @fallback {'sub_filter'} subdomains multifallback off; location ~* \$.(html|htm)$ subdomains multifallback on; location ~* \*\*(?!\*\/*) \$.(html|htm)$ subdomains multifallback off; location ~* \*\*\/* \$.(html|htm)$ subdomains multifallback on; location ~* \*\*\/\* \$.(html|htm)$ subdomains multifallback off; log_format main '[$time_local] $remote_addr $status $body_bytes_sent ' '"$request" $host' ' '"$http_referer" "$http_user"' ' '"$http_user" "$http_x_forwarded"' ' '"$http_referer" "$http_user" "$httpx-forwarded-for"' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" "$status" $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent' ' '"$scheme" "$host" "$request" $status $bodyBytesSent'; access_log logs/access-main.log main; error_log logs

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]