當前位置: 妍妍網 > 碼農

Nginx開源線上配置檔生成器 NginxConfig

2024-02-27碼農

NGINX Config

Nginx Config 是一個強大的 Nginx 配置檔生成器,號稱配置 Nginx 伺服器所需的唯一工具。

計畫地址:https://github.com/digitalocean/nginxconfig.io

Nginx 特性

  • 高-效靜態內容處理 :Nginx能夠以極少的資源服務大量的靜態檔請求。

  • 優-秀的反向代理能力 :作為反向代理,Nginx能夠平衡後端伺服器的負載,從而提高套用的整體效能和穩定性。

  • 負載均衡 :透過智-能分配客戶端請求到不同後端伺服器,Nginx確保每個伺服器都不會過載,同時提高整體的服務可用性。

  • 內建緩存 :Nginx可以緩存請求結果,減少對後端伺服器的請求頻率,加快響應速度。

  • 原生SSL/TLS支持 :可以處理加密的HTTPS請求,保障數據傳輸的安-全。

  • WebSocket支持 :支持即時Web套用所需的WebSocket協定。

  • 有很多功能和相應的配置指令。你現在可以深入研究NGINX文件,或者你可以使用這個工具來檢查NGINX是如何工作的,觀察你的輸入是如何影響輸出的,並為你的特定用例生成最佳配置(同時你也可以使用文件)。

    NGINX Config 特點

    Nginx Config 支持以下功能的視覺化配置: HTTPS、HTTP/2、IPv6、certbot、HSTS、安全請求頭、SSL 配置、OCSP 解析器、緩存、gzip、brotli、回退路由、反向代理、www/non-www 重新導向、CDN、PHP(TCP/socket、 WordPress、Drupal、Magento、Joomla)、Node.js、Python (Django) 伺服器等。

    站點配置

    全域配置

    使用配置

    配置檔

    主配置

    /etc/nginx/nginx.conf

    # Generated by nginxconfig.io
    # See nginxconfig.txt for the configuration share link
    user www-data;
    pid /run/nginx.pid;
    worker_processes auto;
    worker_rlimit_nofile 65535;
    # Load modules
    include /etc/nginx/modules-enabled/*.conf;
    events {
    multi_accept on;
    worker_connections 65535;
    }
    http {
    charset utf-8;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    server_tokens off;
    log_not_found off;
    types_hash_max_size 2048;
    types_hash_bucket_size 64;
    client_max_body_size 16M;
    # MIME
    include mime.types;
    default_type application/octet-stream;
    # Logging
    access_log off;
    error_log /dev/null;
    # SSL
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    # Diffie-Hellman parameter for DHE ciphersuites
    ssl_dhparam /etc/nginx/dhparam.pem;
    # Mozilla Intermediate configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
    resolver_timeout 2s;
    # Load configs
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }









    次配置

    /etc/nginx/sites-available/tinywan.com.conf

    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name tinywan.com;
    set $base /var/www/tinywan.com;
    root $base/public;
    # SSL
    ssl_certificate /etc/letsencrypt/live/tinywan.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tinywan.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/tinywan.com/chain.pem;
    # security
    include nginxconfig.io/security.conf;
    # logging
    access_log /var/log/nginx/access.log combined buffer=512k flush=1m;
    error_log /var/log/nginx/error.log warn;
    # index.php
    index index.php;
    # index.php fallback
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    # additional config
    include nginxconfig.io/g
    eneral.conf;
    # handle .php
    location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php-fpm.sock;
    include nginxconfig.io/php_fastcgi.conf;
    }
    }
    # subdomains redirect
    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name *.tinywan.com;
    # SSL
    ssl_certificate /etc/letsencrypt/live/tinywan.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tinywan.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/tinywan.com/chain.pem;
    return301 https://tinywan.com$request_uri;
    }
    # HTTP redirect
    server {
    listen 80;
    listen [::]:80;
    server_name .tinywan.com;
    include nginxconfig.io/letsencrypt.conf;
    location / {
    return301 https://tinywan.com$request_uri;
    }
    }








    PHP 配置

    /etc/nginx/nginxconfig.io/php_fastcgi.conf

    404
    try_files $fastcgi_script_name =404;
    default fastcgi_params
    include fastcgi_params;
    # fastcgi settings
    fastcgi_index index.php;
    fastcgi_buffers 816k;
    fastcgi_buffer_size 32k;
    # fastcgi params
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";

    安全配置

    /etc/nginx/nginxconfig.io/security.conf

    # security headers
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always;
    add_header Permissions-Policy "interest-cohort=()" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    # . files
    location ~ /\.(?!well-known) {
    deny all;
    }