Назад | Перейти на главную страницу

Как настроить псевдоним в nginx

Я переключаюсь с apache на nginx, и я не уверен, как бы я сделал следующее в nginx.

<VirtualHost *:80>
ServerName example.com
ProxyRequests On

Alias /faq /var/www/http
<Directory /var/www/http/>
    Options Indexes FollowSymLinks
    AllowOverride ALL
    Require all granted
</Directory>

ProxyPassMatch ^/faq !

ProxyPass        / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

ErrorLog ${APACHE_LOG_DIR}/http.log
CustomLog ${APACHE_LOG_DIR}/http.log combined

у меня в настоящее время есть это, но я продолжаю получать ошибку 404

server {
listen 80;
server_name example.com;
client_max_body_size 30M;

location / {
    proxy_pass  http://localhost:8080/;
    include /etc/nginx/proxy_params;
}

location /faq/ {
    proxy_redirect off;
    alias /var/www/http;
    index index.php;
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php?q=$1 last;
    }

}

location ~ /faq\.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
#   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
#   # With php5-fpm:
    fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

}

вместо того alias /var/www/http; использовать root /var/www/http;

Также вместо if для перенаправления на index.php вы можете использовать:

try_files $uri $uri/ /index.php?$args;