Я хотел настроить промежуточную версию нашего веб-сайта Wordpress, поэтому я скопировал все, добавил новую конфигурацию nginx и указал субдомен на сервер (все это существует на том же сервере Ubuntu).
Я добавил базовую аутентификацию на staging.mydomain.com, и когда я захожу по URL на любом компьютере (и в режиме инкогнито), я получаю всплывающее окно авторизации, но когда я его заполняю, меня перенаправляют прямо на mydomain.com. Ранее у меня была именно эта проблема, и это была проблема с кэшированием, но я не думаю, что это именно тот случай, поэтому мне кажется, что я что-то упустил в своей конфигурации Nginx.
Вот конфигурация nginx дляосновной сайт:
limit_req_zone $binary_remote_addr zone=one:10m rate=14r/s;
limit_req_zone $binary_remote_addr zone=login:10m rate=2r/s;
server {
listen 80;
server_name mydomain.com www.mydomain.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443;
server_name mydomain.com www.mydomain.com;
root /var/www/mydomain;
index index.php;
location = /wp-login.php {
limit_req zone=login burst=5 nodelay;
include fastcgi_params;
fastcgi_intercept_errors on;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
proxy_read_timeout 300;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
ssl on;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
keepalive_timeout 70;
ssl_prefer_server_ciphers On;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
}
А вот конфиг nginx для staging.mydomain.com:
server {
listen 80;
server_name staging.mydomain.com www.staging.mydomain.com;
rewrite ^ https://staging.mydomain.com$request_uri? permanent;
return 301 https://staging.mydomain.com;
}
server {
listen 443;
server_name staging.mydomain.com www.staging.mydomain.com;
root /var/www/mydomain-staging;
index index.php index.html;
auth_basic "Admin Area";
auth_basic_user_file /etc/apache2/.htpasswd;
location = /wp-login.php {
limit_req zone=login burst=5 nodelay;
include fastcgi_params;
fastcgi_intercept_errors on;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
proxy_read_timeout 300;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
ssl on;
ssl_certificate /etc/letsencrypt/live/staging.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/staging.mydomain.com/privkey.pem;
keepalive_timeout 70;
ssl_prefer_server_ciphers On;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
}