[root@serv01 nginx]# cat nginx.conf
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
index index.php index.html index.htm;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
server_name localhost;
root /var/www/wordpress;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
try_files $uri $uri/ =404;
}
# redirect server error pages to the static page /40x.html
#
error_page 404 /404.html;
location = /40x.html {
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 443;
server_name home.local;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
root /var/www/wordpress;
index index.php index.htm index.html
}
}
próbuję użyć https dla mojego wordpress, http działa dobrze, ale kiedy próbuję dodać blok serwera httpd, nginx się nie uruchomi, zgaduję, że jest w złym miejscu. Każda pomoc byłaby bardzo mile widziana.
nginx
dają? (sprawdź pliki dziennika) Ponadto może brakować średnika na końcuindex
wiersza w części https.Odpowiedzi:
Nie wiesz, że to dobrze, aby odpowiedzieć na to prawdopodobnie „Do piachu” pytanie, ale jedziemy ...
Podstawowa konfiguracja (tj. Bezpieczeństwo meh )
openssl dhparam -out /path/to/dhparam.pem 2048
.Ustaw ustawienia SSL zgodnie z generatorem konfiguracji Mozilla SSL ( ustawienia pośrednie , od 30.06.2016):
Zaawansowana konfiguracja (tj. Chodź do mnie, NSA! (No nie, ale ...) )
Weź powyższą konfigurację podstawową i popraw ją w następujący sposób:
ssl_protocols TLSv1.2;
ssl_ecdh_curve secp384r1;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
Egzekwuj HTTPS dla wszystkich:
Przepisz swój
server
blok „HTTP” w następujący sposób:Użyj nagłówka HSTS, aby zmusić nawigatora użytkownika do korzystania wyłącznie z HTTPS:
add_header Strict-Transport-Security 'max-age=31536000; includeSubdomains; preload';
Serwer może również chronić swoją witrynę (do pewnego stopnia), konfigurując te nagłówki:
root
do modyfikowania plików. Użyjsudo
zamiast tego.Premia
http2
wlisten
dyrektywie.listen [::]:443 ssl http2;
poniżej pierwsząlisten
dyrektywę.access_log
ierror_log
dla każdegoserver
bloku.### SSL/TLS SETTINGS ###
blok w pliku tekstowym i dołączyć go do konfiguracji. To samo dotyczy Twojego połączenia CGI z PHP.fastcgi_pass unix:/var/run/php5-fpm.sock;
.W rezultacie twój
server
blok powinien wyglądać mniej więcej tak:Treść
securityrules.inc
:Treść
fastcgi.inc
:źródło