码尚云_西安云计算培训_云计算运维培训机构

标题: 详细讲解一下nginx的配置 [打印本页]

作者: 云客    时间: 2020-10-28 05:03
标题: 详细讲解一下nginx的配置
Nginx是一个高性能的HTTP和反向代理服务器,广泛用于Web服务、负载均衡和静态内容服务等场景。以下是一份详细的Nginx配置讲解:

  1. worker_processes auto; # 指定工作进程的数量,默认为自动根据CPU核心数设置
  2. error_log /var/log/nginx/error.log; # 错误日志路径
  3. pid /run/nginx.pid; # Nginx主进程的PID文件路径
复制代码

  1. events {
  2.     worker_connections 1024; # 每个工作进程的最大连接数
  3.     multi_accept on; # 同时接受多个连接
  4. }
复制代码

  1. http {
  2.     include /etc/nginx/mime.types; # 包含MIME类型定义文件
  3.     default_type application/octet-stream; # 默认MIME类型

  4.     log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  5.                     '$status $body_bytes_sent "$http_referer" '
  6.                     '"$http_user_agent" "$http_x_forwarded_for"'; # 自定义日志格式

  7.     access_log /var/log/nginx/access.log main; # 访问日志路径和格式

  8.     sendfile on; # 开启高效文件传输模式
  9.     tcp_nopush on; # 在数据包发送前尽量合并小的数据包
  10.     tcp_nodelay on; # 禁止 Nagle 算法,减少延迟

  11.     keepalive_timeout 65; # 连接保持活跃的时间

  12.     gzip on; # 开启gzip压缩
  13.     gzip_disable "msie6"; # 对IE6不启用gzip压缩
  14.     gzip_vary on;
  15.     gzip_proxied any;
  16.     gzip_comp_level 6;
  17.     gzip_buffers 16 8k;
  18.     gzip_http_version 1.1;
  19.     gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

  20.     include /etc/nginx/conf.d/*.conf; # 包含额外的配置文件
  21.     include /etc/nginx/sites-enabled/*; # 包含虚拟主机配置文件
  22. }
复制代码

  1. <pre data-language="nginx" id="9f8f1f53" class="ne-codeblock language-nginx" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px;"><code>server {
  2.     listen 80; # 监听的端口
  3.     server_name example.com www.example.com; # 主机名或域名

  4.     root /var/www/example.com; # 网站根目录
  5.     index index.html index.htm index.php; # 默认首页文件

  6.     access_log /var/log/nginx/example.com.access.log; # 访问日志路径
  7.     error_log /var/log/nginx/example.com.error.log; # 错误日志路径

  8.     location / {
  9.         try_files $uri $uri/ /index.php?$args; # 尝试匹配文件或目录,否则转发到index.php
  10.     }

  11.     location ~ \.php$ {
  12.         include snippets/fastcgi-php.conf; # 包含FastCGI配置片段
  13.         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # PHP-FPM监听的socket或IP:port
  14.     }

  15.     location ~ /\.ht {
  16.         deny all; # 禁止访问.htaccess等隐藏文件
  17.     }
  18. }</code></pre><p id="ucc6680b5" class="ne-p" style="min-height: 24px;"><span class="ne-text"> </span></p><ol start="6" class="ne-ol" style="padding-left: 23px;"><li id="ub319a865" data-lake-index-type="0"><span class="ne-text"> </span><strong>location块配置</strong><span class="ne-text">
  19. </span><span class="ne-text">location块用于定义URL匹配规则和请求处理方式: </span></li></ol><pre data-language="nginx" id="84d00de6" class="ne-codeblock language-nginx" style="border: 1px solid rgb(232, 232, 232); border-radius: 2px; background: rgb(249, 249, 249); padding: 16px;"><code>location /api {
  20.     proxy_pass http://localhost:8000; # 反向代理到本地的8000端口
  21.     proxy_set_header Host $host;
  22.     proxy_set_header X-Real-IP $remote_addr;
  23. }

  24. location /static {
  25.     alias /var/www/static; # 设置静态文件的别名
  26.     expires 30d; # 静态文件缓存有效期为30天
  27. }</code></pre><p id="u57406d29" class="ne-p" style="min-height: 24px;"></p>
复制代码


以上只是一个基础的Nginx配置示例,实际使用中可能需要根据具体需求进行更多定制化的配置,例如SSL/TLS加密、速率限制、防盗链、重写规则等。在修改配置后,需要使用 nginx -t 命令检查配置文件的语法是否正确,然后使用 sudo systemctl restart nginx 或 sudo service nginx restart 命令重启Nginx以应用新的配置。







欢迎光临 码尚云_西安云计算培训_云计算运维培训机构 (http://www.mashangcloud.com/) Powered by Discuz! X3.4