初始Nginx

Posted 从乙方到甲方

tags:

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

nginx("engine x")是一款高性能的HTTP和反向代理(指以代理服务器接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端)服务器。它能够支持高达50000个并发连接数的响应,而内存、CPU等系统资源消耗非常低、运行非常稳定。

Nginx配置文件主要分为4部分:main(全局配置)、server(虚拟主机配置)、upstream(主要为方向代理、负载均衡相关配置)和location(目录匹配配置)。

main部分的指令将影响其他所有部分;server部分的指令主要用于指定虚拟主机域名、IP和端口;location部分用于匹配网页位置(例如,根目录“/”、“/images”等);upstream的指令用于设置反享代理及后端服务器的负载均衡。

location部分会继承server部分的指令,而server部分会继承main部分的指令;upstream即不会继承指令也不会影响其他部分。它有自己的特殊指令,不需要在其他地方运用。

 
   
   
 
  1. #指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍)

  2. worker_processes 4;

  3. #使用的用户和组

  4. user www www;


  5. #指定错误日志存放的路径,错误日志记录级别可选项为:[debug | info | notice | warn | error | crit]

  6. error_log logs/error.log;

  7. #指定pid存放的路径

  8. pid logs/nginx.pid;


  9. events {

  10. #使用的网络I/O模式,Linux系统一般采用epoll模型

  11. use epoll;

  12. #允许连接数

  13. worker_connections 10240;

  14. }


  15. #处理http请求

  16. http {

  17. server_names_hash_bucket_size 256;

  18. server_names_hash_max_size 1024;

  19. include mime.types;

  20. default_type application/octet-stream;

  21. #设置使用的字符集,如果一个网站有多种字符集,不要随便设置,应在html进行设置

  22. #charset utf-8

  23. #设置日志的记录格式

  24. log_format main '$remote_addr - $remote_user [$time_local] "$request" '

  25. '$status $body_bytes_sent $request_body "$http_referer" '

  26. '"$http_user_agent" "$http_x_forwarded_for"';


  27. #access_log logs/access.log main;

  28. server_tokens off;


  29. #limit_req_zone $binary_remote_addr zone=req_zone:50m rate=3r/s;

  30. #limit_conn_zone $binary_remote_addr zone=conn_zone:50m;


  31. sendfile on;

  32. tcp_nopush on;

  33. tcp_nodelay on;


  34. keepalive_timeout 60;

  35. fastcgi_intercept_errors on;

  36. proxy_intercept_errors on;


  37. #设置客户端请求最大单个文件字节数

  38. client_max_body_size 100M;

  39. #缓冲区代理缓冲用户端请求的最大字节数

  40. client_body_buffer_size 1M;


  41. #跟后端服务器连接的超时时间_发起握手等候响应超时时间

  42. proxy_connect_timeout 600;

  43. #连接成功后等候后端服务器响应时间_已经进入后端的排队之中等候处理

  44. proxy_read_timeout 600;

  45. #后端服务器数据回传时间_在规定时间之内后端服务器必须传完所有的数据

  46. proxy_send_timeout 600;


  47. #代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般保存头部信息即可

  48. proxy_buffer_size 128k;

  49. #同上 告诉Nginx保存单个用的几个Buffer最大使用多大空间

  50. proxy_buffers 4 64k;

  51. #如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2

  52. proxy_busy_buffers_size 128k;


  53. fastcgi_connect_timeout 300;

  54. fastcgi_send_timeout 300;

  55. fastcgi_read_timeout 300;

  56. fastcgi_buffer_size 4k;

  57. fastcgi_buffers 8 4k;


  58. #开启gzip压缩

  59. gzip on;

  60. gzip_disable "msie6";

  61. gzip_min_length 1k;

  62. gzip_buffers 16 64k;

  63. gzip_http_version 1.0;

  64. gzip_comp_level 2;

  65. gzip_types *;

  66. gzip_vary on;


  67. upstream msg_server_pool{

  68. server 192.168.1.10:80 weight=4 max_fails=2 fail_timeout=30s;

  69. server 192.168.1.11:80 weight=4 max_fails=2 fail_timeout=30s;

  70. server 192.168.1.12:80 weight=4 max_fails=2 fail_timeout=30s;

  71. }


  72. #表示虚拟主机,可配置多个

  73. server {

  74. #监听端口

  75. listen 80;

  76. server_name localhost;

  77. #允许对不同的URI进行不同的配置,既可以使用字符串,也可以使用正在表达式。使用正则表达式,必须使用以下前缀:

  78. # ~*,表示不区分大小写的匹配

  79. # ~,表示区分大小写的匹配

  80. #在匹配过程中,先匹配字符串,再匹配正则表达式。匹配谁写在前面谁先匹配到,匹配到第一个,会停止搜索。如果匹配正则则使用正则匹配到的结果;如果没有则使用字符串匹配到的结果。

  81. #可以使用前缀“^~”来禁止匹配到字符串后,再去匹配正则表达式。即字符串匹配到就停止。

  82. #可以使用“=”来进行精确匹配,如果找到,则停止。

  83. location / {

  84. root html;

  85. index index.html index.htm;

  86. }

  87. error_page 500 502 503 504 /50x.html;

  88. location = /50x.html {

  89. root html;

  90. }

  91. }


  92. server {

  93. listen 80;

  94. server_name www.demo.com;

  95. location /msg/ {

  96. proxy_pass http://msg_server_pool;

  97. proxy_set_header Host $host;

  98. proxy_set_header X-Forwarder-For $remote_addr;

  99. }


  100. access_log /data/logs/msg.demo.com_access.log;

  101. }



  102. }

以上是一部分配置,实际配置要根据不同的场景进行相关的配置。


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

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

如何在使用cardview的片段中初始化gridlayoutmanager?

我想在每次选择底部导航项时初始化片段

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段

nginx.conf 忽略了 nginx-ingress 配置映射片段