Подробная настройка запуска статических ресурсов, приложений PHP и поддержки HTTPS под NGINX.

задняя часть PHP сервер Nginx
Подробная настройка запуска статических ресурсов, приложений PHP и поддержки HTTPS под NGINX.

В этой статье в основном записывается серия контента в текущем блоге для статических ресурсов, переходов на старый сайт 301, конфигурации HTTPS и т. д. nginx использует блок сервера для определения определенной части имени виртуального домена и связанных конфигураций, поэтому мы можем настроить имя виртуального домена server_name в блоке сервера, журнал доступа access_log, обратный переход, корневой каталог корневого проекта, URL-адрес сопоставления местоположения для соответствующих операций, страница ошибки error_page, прослушивание порта прослушивания, включение файла конфигурации и другие операции, такие как ssl. текущий контент

301 и 302 прыжок

Первоначальный старый сайт blog.congcong.us и т. д. перешел на www.congcong.us 301.

$scheme — текущий протокол
$request_uri — параметр запроса
Код конфигурации выглядит следующим образом:

server {
    server_name congcong.us blog.congcong.us;
    access_log /var/log/nginx/www.access.log;
    #root         /usr/share/nginx/html/blogtemp;
    return 301 $scheme://www.congcong.us$request_uri;
}

Кэш конфигурации статического ресурса

Настройте кэширование изображений, css и другого содержимого по мере необходимости. access_log не записывает запросы на изображения. expires – это время истечения срока действия.

location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { 
    access_log   off; 
    expires      30d;
}

location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
    access_log   off;
    expires      24h;
}

Настройте php и настройте украшение URL-адреса php

Отфильтруйте все URL-адреса, если они не заканчиваются на index.php, затем добавьте это для перезаписи

Отфильтруйте весь конечный контент php и передайте его в php-fpm для обработки

location / {

    if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /index.php;
    }
}

location ~ \.php$ {
   root          /usr/share/nginx/html/wordpress;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_read_timeout 1000;
    include       fastcgi_params;
}

Настроить HTTPS, настроить SSL

Мониторинг порта 443, включение конфигурации ssl, связывание crt и ключа, установка протокола ssl, поддержка алгоритма шифрования и т. д. (бесплатный сертификат, запрашиваемый Tencent Cloud)

listen 443;
ssl on;
ssl_certificate "/xxx/xxx/1_www.congcong.us_bundle.crt";
ssl_certificate_key "/xxx/xxx/2_www.congcong.us.key";
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

Полная конфигурация выглядит следующим образом:

#
# The default server
#
server {
    server_name congcong.us blog.congcong.us;
    access_log /var/log/nginx/www.access.log;
    return 301 $scheme://www.congcong.us$request_uri;
}

server {
        server_name projects.congcong.us kindle.congcong.us;
        access_log /var/log/nginx/pk.access.log;
        return 302 $scheme://congcong.us;
}


server {
    listen 443;
    server_name  www.congcong.us;
    root         /xxx/xxx/xxx/xxx/wordpress;
    index index.php index.html index.htm;

    # Load configuration files for the default server block.
    include /xxx/xxx/default.d/*.conf;

    location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { 
        access_log   off; 
        expires      30d;
    }

    location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
        access_log   off;
        expires      24h;
    }


    location / {

        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }

    location ~ \.php$ {
       root          /xxx/xxx/xxx/xxx/wordpress;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_read_timeout 1000;
        include       fastcgi_params;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

    ssl on;
    ssl_certificate "/xxx/xxx/1_www.congcong.us_bundle.crt";
    ssl_certificate_key "/xxx/xxx/2_www.congcong.us.key";
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

}

server {
    listen       80 default_server;
    server_name  www.congcong.us;
    root         /xxx/xxx/xxx/xxx/wordpress;
    index index.php index.html index.htm;

    # Load configuration files for the default server block.
    include /xxx/xxx/default.d/*.conf;

    location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
        access_log   off;
        expires      30d;
    }

    location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
        access_log   off;
        expires      24h;
    }


    location / {

        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }
        location ~ \.php$ {
       root          /xxx/xxx/xxx/xxx/wordpress;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_read_timeout 1000;
        include       fastcgi_params;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

Статьи по Теме