Lassen Sie mich mein Problem erklären. Ich habe einen Ubuntu VPS-Server mit 18.04. Ich habe Nginx und Apache mit php-fpm installiert. Ich habe Nginx als Reverse-Proxy für meinen WordPress-Blog konfiguriert, der sich unter befindethttps://meindomainname.com/blogdas funktioniert alles gut. Allerdings habe ich es nicht geschafft, meine Permalinks in meiner Konfiguration für meinen Serverblock zum Laufen zu bringen:
server {
listen 80;
return 301 https://%host$request_uri;
}
server {
listen 443 ssl;
root /var/www/mydomain.com/;
server_name mydomain.com www.mydomain.com;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/site.access.log;
location /blog/ {
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php?q=$uri&$args =404;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 90;
proxy_redirect off;
}
}
Meine Apache Vhost-Konfiguration:
<VirtualHost 127.0.0.1:8080>
ServerName mydoamin.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/mydomain.com
<FilesMatch "\.php$">
SetHandler "proxy:unix:///var/run/php7.2-fpm-mydomain.sock|fcgi://127.0.0.1/"
</FilesMatch>
<Directory /var/www/mydomain.com>
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
meine .htaccess-Datei
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
jede Hilfe ist willkommen.
Antwort1
Ich habe das jetzt gelöst. Das Problem war, dass ich vergessen hatte, Mod-ReWrite für Apache zu aktivieren. Ich habe auch meine Nginx-Conf aktualisiert:
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
root /var/www/mydomain.com/;
#index index.html index.htm index.php;
server_name mydomain.com www.mydomain.com;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/mydomain.access.log;
location / {
return 301 https://$host/blog/;
}
location /blog/ {
index index.php index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 90;
proxy_redirect off;
}
}