NGINX reverse proxy to apache - Settings?

Discussion in 'Server Operation' started by agriz, Jan 22, 2012.

  1. agriz

    agriz New Member

    PHP:
    ####################################################################### 

    # This is the main Nginx configuration file. 

    # More information about the configuration options is available on 
    #   * the English wiki - http://wiki.nginx.org/Main 
    #   * the Russian documentation - http://sysoev.ru/nginx/ 

    ####################################################################### 

    #---------------------------------------------------------------------- 
    # Main Module - directives that cover basic functionality 

    #   http://wiki.nginx.org/NginxHttpMainModule 

    #---------------------------------------------------------------------- 

    user              nginx
    worker_processes  2

    error_log  /var/log/nginx/error.log
    #error_log  /var/log/nginx/error.log  notice; 
    #error_log  /var/log/nginx/error.log  info; 

    pid        /var/run/nginx.pid


    #---------------------------------------------------------------------- 
    # Events Module 

    #   http://wiki.nginx.org/NginxHttpEventsModule 

    #---------------------------------------------------------------------- 

    events 
        
    worker_connections  4096



    #---------------------------------------------------------------------- 
    # HTTP Core Module 

    #   http://wiki.nginx.org/NginxHttpCoreModule 

    #---------------------------------------------------------------------- 

    http 
        include       /
    etc/nginx/mime.types
        
    default_type  application/octet-stream

        
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 
                          '$status $body_bytes_sent "$http_referer" ' 
                          '"$http_user_agent" "$http_x_forwarded_for"'


        
    access_log  /var/log/nginx/access.log  main

        
    sendfile        on
        
    #tcp_nopush     on; 
        
    tcp_nodelay     on

        
    #keepalive_timeout  0; 
        
    keepalive_timeout  65

        
    gzip  on

        

        # The default server 
        # 
        
    server 
            
    listen      80
            
    server_name  domain.com www.domain.com

            
    #charset koi8-r; 

            #access_log  logs/host.access.log  main; 

           # location / { 
               # root   /usr/share/nginx/html; 
               # index  index.html index.htm; 
           #} 
            
    location / { 
                    
    proxy_pass http://127.0.0.1:8080/; 
                    
    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_connect_timeout 90
                    
    proxy_send_timeout 90
                    
    proxy_read_timeout 90
                    
    client_max_body_size 10m
                    
    client_body_buffer_size 128k
                    
    proxy_buffer_size 4k
                    
    proxy_buffers 4 32k
                    
    proxy_busy_buffers_size 64k
                    
    root /var/www/html
                    
    index index.html index.htm index.php
            } 

            
    error_page  404              /var/www/html/404.html
            
    location = /404.html 
                
    root   /var/www/html
            } 

            
    # redirect server error pages to the static page /50x.html 
            # 
            
    error_page   500 502 503 504  /50x.html
            
    location = /50x.html 
                
    root   /var/www/html
            } 

            
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80 
            # 
            #location ~ \.php$ { 
            #    proxy_pass   http://127.0.0.1; 
            #} 

            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
            # 
            #location ~ \.php$ { 
            #    root           html; 
            #    fastcgi_pass   127.0.0.1:9000; 
            #    fastcgi_index  index.php; 
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; 
            #    include        fastcgi_params; 
            #} 

            # deny access to .htaccess files, if Apache's document root 
            # concurs with nginx's one 
            # 
            #location ~ /\.ht { 
            #    deny  all; 
            #} 
            
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {root /var/www/html;} 
        } 

        
    # Load config files from the /etc/nginx/conf.d directory 
        
    include /etc/nginx/conf.d/*.conf; 

    }  
    This is the configuration.
    But it seems there is some problem on this.

    ip.address/some.html -- always throws 404 error
    ip.address/some.php -- works good. But it seems both server are handling this request and the loading is very slow.

    What have i done wrongly?
    I used http://www.howtoforge.com/reduce-apache-load-with-nginx-rhel5.2
    using centos 6 64 bit.

    Installed in the following way
    yum install nginx || yum install httpd
     
  2. falko

    falko Super Moderator Howtoforge Staff Moderator HowtoForge Supporter ISPConfig Developer

    Did you check the nginx error log?
     
  3. agriz

    agriz New Member

    Thanks for the reply.
    How do i know the reverse proxy is working correctly?

    This is what i have found after making some changes.

    Apache Access log : Contains request for php only.
    Nginx Access log : Contains request for php and images, css, javascript.

    I think nginx is not configured to run php.
    I did yum install nginx.

    Is reverse proxy working correctly then?

    yum install phpmyadmin.

    *** PHPMYADMIN is working, but unable to upload sql files. Icons in phpmyadmin is not working.

    Thanks for helping me.

    I have disabled php_cli module in apache.
    <?php echo phpinfo(); ?> said, apache is running both php_cli and php_fcgid
    So i disabled php_cli is that correct?

    Thanks
     

Share This Page