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

    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