Using vBulletin with NGINX 
As of vBulletin 5.0.4, we support the popular NGINX Webserver. This is frequently used on Virtual Private Servers and Dedicated servers. If you are using NGINX, you need additional configuration for vBulletin. We provide this in a nginx.vhost file. This file is located in the do_not_upload folder of your vBulletin package and must be added to your NGINX configuration.
server {
        # address and port accepted by the server
        listen   80; ## listen for ipv4
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        # server IP to compare against http requests, uncomment and set proper value.
        # Enter the hostname or IP address you use to reach this server. If you run on your dev environment it might be localhost.
        # Note: If your vb install is in a folder inside your domain <mysite>/forum/install/path please change location directives defined below to include the path first. e.G:
        # css directive would be:
        # location = /forum/css\.php {
        #        rewrite ^ /forum/core/css.php break;

        # document root for request,  uncomment and set proper value
    # this should reflect the path that your vBulletin is installed in. 
    # This is usually /var/www/public_html/forumpath
        #root   /var/www/public_html/forumpath;
        index   index.php index.html index.htm;

    # log files, uncomment and set proper values
        #access_log      /usr/share/nginx/www/vb/logs/access.log;
        #error_log       /usr/share/nginx/www/vb/logs/nginx_error.log;

    # configuration rules
        # legacy css being handled separate for performance
        location = /css\.php {
                rewrite ^ /core/css.php break;

        # make install available from presentation
        location ^~ /install {
                rewrite ^/install/ /core/install/ break;

        # any request to not existing item gets redirected through routestring
        location / {
                if (!-f $request_filename) {
                        rewrite ^/(.*)$ /index.php?routestring=$1 last;

        # make admincp available from presentation
        location ^~ /admincp {
                if (!-f $request_filename) {
                        rewrite ^/admincp/(.*)$ /index.php?routestring=admincp/$1 last;

        # process any php scripts, not found gets redirected through routestring
        location ~ \.php$ {
                # handles legacy scripts
                if (!-f $request_filename) {
                        rewrite ^/(.*)$ /index.php?routestring=$1 break;

                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_pass php5;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_param QUERY_STRING $query_string;
                fastcgi_param REQUEST_METHOD $request_method;
                fastcgi_param CONTENT_TYPE $content_type;
                fastcgi_param CONTENT_LENGTH $content_length;
                fastcgi_intercept_errors on;
                fastcgi_ignore_client_abort off;
                fastcgi_connect_timeout 60;
                fastcgi_send_timeout 180;
                fastcgi_read_timeout 180;
                fastcgi_buffers 256 16k;
                fastcgi_buffer_size 32k;
                fastcgi_temp_file_write_size 256k;

upstream php5 {
    # address to accept FastCGI requests. Make sure you set the right value under your fast cgi conf.
        # e.g.- Ubuntu 12.10 using php5-fpm Ubuntu /etc/php5/fpm/pool.d/www.conf
    server    unix:/var/run/php5-fpm.sock;
Copyright © 2023 MH Sub I, LLC dba vBulletin. All rights reserved. vBulletin® is a registered trademark of MH Sub I, LLC dba vBulletin.