How to run django and wordpress on NGINX server using same domain?

后端 未结 3 520
孤独总比滥情好
孤独总比滥情好 2020-12-30 13:44

I have tried many ways but do not know how to run Django on example.com and wordpress on example.com/blog

The following running pr

相关标签:
3条回答
  • 2020-12-30 13:56

    Thanks alex for helping me out to solve this problem.

    Here is the solution

    Django app dir- /home/ubuntu/django

    Wordpress dir - /var/www/html/blog

    NGINX Conf file

    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        server_name example.com;
    
        location / {
                proxy_pass http://127.0.0.1:8000;
                proxy_redirect off;
                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;
        }
    
        location ~ /blog/.*\.php$ {
                root /var/www/html;
                index index.php index.html index.htm;
                set $php_root /var/www/html/blog;
    
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
    
        location /blog {
                root /var/www/html;
                index index.php index.html index.htm;
                set $php_root /var/www/html/blog;
    
                try_files $uri $uri/ /blog/index.php;
        }
    
    location /static/ {
                alias /home/ubuntu/django/your_app_name/static/static_root/;
        }
    
        location /media/ {
            alias /home/ubuntu/django/your_app_name/media/ ;
        }
    
    }
    

    Note- please replace your home and siteurl with http://example.com/blog in wp-location table of wordpress

    Now Your Django app running on example.com

    Now Your Blog running on example.com/blog

    0 讨论(0)
  • 2020-12-30 13:59

    As i understand you have a server running your django site and one running your wordpress site. if so you can do something like this:

    {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        server_name example.com;
    
        access_log /var/log/nginx/example-access.log;
    
        location / {
            proxy_pass         http://127.0.0.1:3001;
            proxy_redirect     off;
    
            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;
        }
    
        location /blog/ {
            proxy_pass         http://127.0.0.1:(wordpress port);
            proxy_redirect     off;
    
            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;
        }
    }
    

    if you need to server the php blog from ngix no apache in the middle use somethon like:

    location ~ /blog/.*\.php$ {
        root /var/www/html/blog;
        index index.php index.html index.htm;
        set $php_root /var/www/html/blog;
    
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
    
    0 讨论(0)
  • 2020-12-30 14:19

    Just add these lines to your config file.

    location ~ /blog/.*\.php$ {
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }
    
    location /blog {
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        try_files $uri $uri/ /blog/index.php;
    }
    
    0 讨论(0)
提交回复
热议问题