Mam blog wordpress obsługiwany przez apache2 (na porcie 80) i nginx (na porcie 8080) na Ubuntu 12.04. Teraz za każdym razem, gdy klient łączy się przez port 80, wszystko jest okropne, ale gdy klient łączy się z 8080, aby wyświetlić ten sam blog, połączenie zostaje przekierowane do apache. Dlaczego to się dzieje? Rozejrzałem się i odkryłem, że jest to ograniczenie Wordpress, które przekierowuje wszystkie połączenia z adresem URL witryny ustawionym na pulpicie nawigacyjnym (domyślnie jest to port 80).
Czy jest na to jakiś sposób? że połączenia z portem 8080 będą obsługiwane przez nginx zamiast apache
Zawartość / etc / nginx / sites-enabled / wordpress
server {
listen 8080;
root /var/www;
index index.php index.html index.htm;
server_name abc.com;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
deny all;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SERVER_PORT 8080;
port_in_redirect off;
}
Każda pomoc jest mile widziana.
Odpowiedzi:
Rozwiązałem to !! Oto jak:
Edytuj bieżący motyw
functions.php
i dodaj następujący wiersz po otwierającym tagu PHP, aby wyłączyć kanoniczne przekierowanie.remove_filter('template_redirect','redirect_canonical');
Zapisz i wyjdź.Uruchom ponownie apache2 i nginx i sprawdź za pomocą
curl -I IP
.źródło
Taki sam problem. W mojej sytuacji ustawiam port serwera na
3030
, aby pomieścić inne serwery. W każdym razie, bez konieczności dodawania kodu do żadnychfunctions.php
plików, rozwiązałem problem, zmieniając wartości witryny i home wwp_options
tabeli na ustawienie domeny i portu.Na przykład,
Odtąd wszystko wydawało się działać dobrze. 👍
źródło