Nginx指南和配置详解

举报
chenyu 发表于 2021/07/27 02:11:35 2021/07/27
【摘要】 Nginx指南 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki: http://wiki.nginx.org/Main 。 其优点: Nginx做为HTTP服...

Nginx指南

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki: http://wiki.nginx.org/Main 。


其优点:


Nginx做为HTTP服务器,有以下几项基本特性:


处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
无缓存的反向代理加速,简单的负载均衡和容错.


一、依赖的程序


gzip module requires zlib library
rewrite module requires pcre library
ssl support requires openssl library

二、安装


  
  1. $./configure
  2. $make
  3. $make install

默认安装的路径是/usr/local/nginx 
更多的安装配置


  
  1. $./configure --prefix=/usr/local/nginx
  2. --with-openssl=/usr/include (启用ssl)
  3. --with-pcre=/usr/include/pcre/ (启用正规表达式)
  4. --with-http_stub_status_module (安装可以查看nginx状态的程序)
  5. --with-http_memcached_module (启用memcache缓存)
  6. --with-http_rewrite_module (启用支持url重写)



  
  1. -?,-h : this help
  2. -v : show version and exit
  3. -V : show version and configure options then exit
  4. -t : test configuration and exit
  5. -q : suppress non-error messages during configuration testing
  6. -s signal : send signal to a master process: stop, quit, reopen, reload
  7. -p prefix : set prefix path (default: /usr/local/nginx/)
  8. -c filename : set configuration file (default: conf/nginx.conf)
  9. -g directives : set global directives out of configuration file


  
  1. 启动:nginx
  2. 重启:nginx -s reload
  3. 退出:nginx -s quit
  4. 测试配置文件:nginx -t


Nginx配置详解

在进行Nginx配置的时候会出现很多不明白的地方,其实有些时候只要换一个思维的方式就能找多你要解决问题的方法。官方配置样例:http://wiki.nginx.org/NginxFullExample


  
  1. #运行用户
  2. user nobody nobody;
  3. #启动进程
  4. worker_processes 4;
  5. #全局错误日志及PID文档 [ debug | info | notice | warn | error | crit ]
  6. error_log logs/error.log notice;
  7. pid logs/Nginx.pid;
  8. #工作模式及连接数上限
  9. events {
  10. #工作模式有:# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ] ;
  11. use epoll;
  12. worker_connections 1024;
  13. }
  14. #设定http服务器,利用他的反向代理功能提供负载均衡支持
  15. http {
  16. #设定mime类型
  17. include conf/mime.types;
  18. default_type application/octet-stream;
  19. #设定日志格式
  20. log_format main '$remote_addr - $remote_user [$time_local] '
  21. '"$request" $status $bytes_sent '
  22. '"$http_referer" "$http_user_agent" '
  23. '"$gzip_ratio"';
  24. log_format download '$remote_addr - $remote_user [$time_local] '
  25. '"$request" $status $bytes_sent '
  26. '"$http_referer" "$http_user_agent" '
  27. '"$http_range" "$sent_http_content_range"';
  28. #设定请求缓冲
  29. client_header_buffer_size 1k;
  30. large_client_header_buffers 4 4k;
  31. #开启gzip模块
  32. gzip on;
  33. gzip_min_length 1100;
  34. gzip_buffers 4 8k;
  35. gzip_types text/plain;
  36. output_buffers 1 32k;
  37. postpone_output 1460;
  38. #设定access log
  39. access_log logs/access.log main;
  40. client_header_timeout 3m;
  41. client_body_timeout 3m;
  42. send_timeout 3m;
  43. sendfile on; #指令激活或停用的sendfile()的用法。
  44. tcp_nopush on;
  45. tcp_nodelay on;
  46. keepalive_timeout 65;
  47. #设定负载均衡的服务器列表
  48. upstream mysvr {
  49. #weigth参数表示权值,权值越高被分配到的几率越大
  50. #本机上的Squid开启3128端口
  51. server 192.168.8.1:3128 weight=5;
  52. server 192.168.8.2:80 weight=1;
  53. server 192.168.8.3:80 weight=6;
  54. }
  55. #设定虚拟主机
  56. server {
  57. listen 80;
  58. server_name 192.168.8.1 www.yejr.com;
  59. charset utf8;
  60. #设定本虚拟主机的访问日志
  61. access_log logs/www.yejr.com.access.log main;
  62. #假如访问 /img/*, /js/*, /css/* 资源,则直接取本地文档,不通过squid
  63. #假如这些文档较多,不推荐这种方式,因为通过squid的缓存效果更好
  64. location ~ ^/(img|js|css)/ {
  65. root /data3/Html;
  66. expires 24h;
  67. }
  68. #对 "/" 启用负载均衡
  69. location / {
  70. proxy_pass http://mysvr;
  71. proxy_redirect off;
  72. proxy_set_header Host $host;
  73. proxy_set_header X-Real-IP $remote_addr;
  74. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  75. client_max_body_size 10m;
  76. client_body_buffer_size 128k;
  77. proxy_connect_timeout 90;
  78. proxy_send_timeout 90;
  79. proxy_read_timeout 90;
  80. proxy_buffer_size 4k;
  81. proxy_buffers 4 32k;
  82. proxy_busy_buffers_size 64k;
  83. proxy_temp_file_write_size 64k;
  84. }
  85. #设定查看Nginx状态的地址
  86. location /NginxStatus {
  87. stub_status on;
  88. access_log on;
  89. auth_basic "NginxStatus";
  90. auth_basic_user_file conf/htpasswd;
  91. }
  92. # error_page 404 /404.html;
  93. # location /404.html {
  94. # root /spool/www;
  95. # charset on;
  96. # source_charset koi8-r;
  97. # }
  98. # location /old_stuff/ {
  99. # rewrite ^/old_stuff/(.*)$ /new_stuff/$1 permanent;
  100. # }
  101. #location /download/ {
  102. # valid_referers none blocked server_names *.example.com;
  103. # if ($invalid_referer) {
  104. # #rewrite ^/ http://www.example.com/;
  105. # return 403;
  106. # }
  107. # rewrite_log on;
  108. # # rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
  109. # rewrite ^/(download/.*)/mp3/(.*)\..*$ /$1/mp3/$2.mp3 break;
  110. # root /spool/www;
  111. # # autoindex on;
  112. # access_log /var/log/nginx-download.access_log download;
  113. # }
  114. # location ~* ^.+\.(jpg|jpeg|gif)$ {
  115. # root /spool/www;
  116. # access_log off;
  117. # expires 30d;
  118. #}
  119. }
  120. }






  
  1. Active connections: 328
  2. server accepts handled requests
  3. 9309 8982 28890
  4. Reading: 1 Writing: 3 Waiting: 324



文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/49287529

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。