Nginx常見配置

# Nginx 防護(hù)配置示例
user www-data;                # 運(yùn)行 Nginx 的用戶
worker_processes auto;       # 自動設(shè)置工作進(jìn)程數(shù)

events {
  worker_connections 1024;  # 每個工作進(jìn)程的最大連接數(shù)
}

http {
  include /etc/nginx/mime.types;             # 包含 MIME 類型設(shè)置
  default_type application/octet-stream;      # 默認(rèn) MIME 類型

  # 日志設(shè)置
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;  # 訪問日志
  error_log /var/log/nginx/error.log;          # 錯誤日志

  # 啟用 gzip 壓縮
  gzip on;
  gzip_types text/plain application/json;       # 指定要壓縮的 MIME 類型
  gzip_min_length 1000;                        # 最小壓縮長度

  # 隱藏服務(wù)器信息
  server_tokens off;                           # 禁用服務(wù)器版本信息
  add_header Server "";                        # 清空 Server 頭部


  # 設(shè)置 Content Security Policy 頭部  解釋:CSP 以允許從同一源加載資源,同時限制腳本和樣式的來源
  add_header Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self' http://192.168.8.248; style-src 'self' 'unsafe-inline';";

  # 設(shè)置安全頭部
  add_header X-Content-Type-Options "nosniff" always;    # 用于防止瀏覽器進(jìn)行 MIME 類型嗅探。它告知瀏覽器嚴(yán)格按照服務(wù)器提供的內(nèi)容類型(Content-Type)來處理響應(yīng),而不允許嘗試猜測或推測內(nèi)容的類型。
  add_header X-XSS-Protection "1; mode=block" always;    # 防止 XSS 攻擊
  add_header X-Frame-Options "DENY" always;              # 防止點(diǎn)擊劫持  DENY:完全禁止任何頁面通過 <iframe> 嵌入你的網(wǎng)頁。 SAMEORIGIN:僅允許來自同一源的頁面嵌入你的網(wǎng)頁。

  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # HSTS 強(qiáng)制瀏覽器使用HTTPS連接 
  add_header Referrer-Policy "no-referrer" always;       # 隱藏來源信息 設(shè)置為 no-referrer 時,瀏覽器在進(jìn)行鏈接導(dǎo)航或資源請求時,不會發(fā)送來源頁面的 URL。換句話說,用戶從一個頁面跳轉(zhuǎn)到另一個頁面時,目標(biāo)頁面將不會接收到來源頁面的信息。
  # 控制瀏覽器功能   
  #geolocation 'none':禁用地理定位功能,表示頁面不允許訪問用戶的位置信息。
  #microphone 'none':禁用麥克風(fēng)訪問,表示頁面不允許使用用戶的麥克風(fēng)。
  #camera 'none':禁用攝像頭訪問,表示頁面不允許使用用戶的攝像頭。
  add_header Feature-Policy "geolocation 'none'; microphone 'none'; camera 'none'";  

  # 限制請求速率
  limit_req_zone $binary_remote_addr zone=one:10m rate=30r/s;  # 每個 IP 每秒最多 30 個請求
  limit_req zone=one burst=10 nodelay;                       # 允許突發(fā)請求

  # 設(shè)置服務(wù)器
  server {
      listen 80;
      server_name yourdomain.com;  # 服務(wù)器名稱

      # 強(qiáng)制使用 HTTPS
      return 301 https://$host$request_uri;  # 將 HTTP 請求重定向到 HTTPS
  }

  server {
      listen 443 ssl;  # 監(jiān)聽 HTTPS 端口
      server_name yourdomain.com;  # 服務(wù)器名稱
      # 強(qiáng)制瀏覽器使用HTTPS連接   
 

      # SSL 設(shè)置
      ssl_certificate /etc/ssl/certs/your_cert.crt;     # SSL 證書路徑
      ssl_certificate_key /etc/ssl/private/your_key.key; # SSL 密鑰路徑
      ssl_protocols TLSv1.2 TLSv1.3;                    # 啟用安全的 SSL 協(xié)議
      ssl_ciphers 'HIGH:!aNULL:!MD5';                    # 啟用安全的加密算法
      ssl_prefer_server_ciphers on;                      # 優(yōu)先使用服務(wù)器的加密算法

      location / {
          root /var/www/html;  # 網(wǎng)站根目錄
          index index.html index.htm;  # 默認(rèn)首頁
          try_files $uri $uri/ =404;  # 嘗試文件,若不存在則返回 404
      }

      # 錯誤頁面處理
      error_page 404 /404.html;            # 404 錯誤頁面
      error_page 500 502 503 504 /50x.html; # 500 錯誤頁面

      location = /50x.html {
          root /usr/share/nginx/html;      # 錯誤頁面的路徑
      }

      # 處理 PHP 文件
      location ~ \.php$ {
          include snippets/fastcgi-php.conf;  # PHP 配置
          fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # PHP 處理
      }

      # 限制 HTTP 方法
      if ($request_method !~ ^(GET|POST|OPTIONS)$ ) {
          return 444;  # 其他方法返回 444
      }

      # 日志設(shè)置
      access_log /var/log/nginx/yourdomain_access.log;  # 訪問日志
      error_log /var/log/nginx/yourdomain_error.log;    # 錯誤日志
  }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • nginx默認(rèn)配置
    weil107閱讀 188評論 0 0
  • ^~ 開頭表示url以某個常規(guī)字符串開頭,理解為匹配url路徑即可,nginx不對url做編碼,因此請求...
    e1e7834b8228閱讀 246評論 0 0
  • 1.全局域main:Nginx的根級別的指令區(qū)域。該區(qū)域的配置指令是全局有效的,該指令名為隱形顯示,nginx.c...
    酷酷的小龍人閱讀 386評論 0 0
  • 我一哥們,常以麒麟之才自稱,最近告訴我掉了很多頭發(fā),說在搭建nginx服務(wù)器的時候被難倒了。Nginx是一款高性能...
    geneonto閱讀 360評論 0 1
  • nginx是一個優(yōu)秀的靜態(tài)服務(wù)器,本博客就搭建在nginx服務(wù)器中。本博客由Hexo生成靜態(tài)文件,上傳至nginx...
    tikyle閱讀 1,155評論 0 1

友情鏈接更多精彩內(nèi)容