dswong
By:
dswong

Nginx test page instead of homepage

August 16, 2017 568 views
Nginx Apache CentOS

Hi,

Server configuration :
Centos 7 + PHP7 + PHP-FPM + MariaDB 10 +Nginx as reverse proxy for Apache + Virtualmin

I'm new to setting up a server. I'm not sure where did I mess up and I have tried searching online and editing according to suggestion on Digital Ocean and many other forum but still no success. I always restart nginx, httpd and php-fpm after changes have been made.

I have 2 virtual servers, all of them open Nginx test page instead of their respective homepage.

I have been trying to configure but with no success. Please help.

Below are the configuration files for my virtual servers.

1) etc/nginx/conf.d/default.conf

server {
        listen   80; 

        root /home/~;
        index index.php index.html index.htm;

        server_name localhost; 

        location / {
        try_files $uri $uri/ /index.php;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
        }

        location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        try_files $uri $uri/ =404;
        #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    #fastcgi_pass  127.0.0.1:9000;
         fastcgi_pass php-fpm;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;

         }

         location ~ /\.ht {
                deny all;
        }
}

2) etc/nginx/conf.d/php-fpm.conf

# PHP-FPM FastCGI server
# network or unix domain socket configuration

upstream php-fpm {
        #server 127.0.0.1:9000;
        server unix:/run/php-fpm/www.sock;

}

3) etc/nginx/nginx.conf

user nginx;
worker_processes auto; 

worker_rlimit_nofile 10000;

# only log critical errors
error_log /var/log/nginx/error.log crit;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
    use epoll;
    multi_accept on;
}

http {
    include    mime.types;
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    default_type  application/octet-stream;

    log_format main      '$remote_addr - $remote_user [$time_local]  '
      '"$request" $status $bytes_sent '
      '"$http_referer" "$http_user_agent" '
        '"$gzip_ratio"';

    log_format download  '$remote_addr - $remote_user [$time_local]  '
      '"$request" $status $bytes_sent '
      '"$http_referer" "$http_user_agent" '
        '"$http_range" "$sent_http_content_range"';

    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/error.log;

    # cache informations about FDs, frequently accessed files
    # can boost performance, but you need to test those values
    open_file_cache max=200000 inactive=20s; 
    open_file_cache_valid 2m; 
    open_file_cache_min_uses 5;
    open_file_cache_errors on;

    # to boost I/O on HDD we can disable access logs
    access_log off;
    # copies data between one FD and other from within the kernel
    # faster then read() + write()
    sendfile on;    
    # send headers in one peace, its better then sending them one by one 
    tcp_nopush on;
    # don't buffer data sent, good for small data bursts in real time
    tcp_nodelay on;

        types_hash_max_size 2048;
    index   index.php index.html index.htm;

        include /etc/nginx/conf.d/*.conf;
    index   index.php index.html index.htm;
    server_names_hash_bucket_size 128;
    ##
    # Gzip Settings
    ##
    # reduce the data that needs to be sent over network -- for testing environment
    gzip on;
       gzip_http_version 1.1;
    gzip_min_length 10240;
    gzip_proxied expired no-cache no-store private auth;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json  application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
    gzip_buffers 16 8k;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    # allow the server to close connection on non responding client, this will free up memory
    reset_timedout_connection on;
    # request timed out -- default 60
    client_body_timeout 3m;
    # if client stop responding, free up memory -- default 60
    send_timeout 3m;
    # server will close connection after this time -- default 75
    keepalive_timeout   65;
    # number of requests client can make over keep-alive -- for testing environment
    keepalive_requests 100000;

    ignore_invalid_headers on;
    client_max_body_size    100m;
    connection_pool_size  256;
    request_pool_size  4k;
    output_buffers   4 32k;
    postpone_output  1460;

    # limit the number of connections per single IP
    limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
    # limit the number of requests for a given session
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
    # if the request body size is more than the buffer size, then the entire (or partial)
    # request body is written into a temporary file
    client_body_buffer_size  128k;
    # headerbuffer size for the request header from client -- for testing environment
    client_header_buffer_size 3m;
    # maximum number and size of buffers for large headers to read from client request
    large_client_header_buffers 4 256k;
    # how long to wait for the client to send a request header -- for testing environment
    client_header_timeout 3m;
      server_tokens off;

    #nginx compression
    log_format compression '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"';

    # Upstream to abstract backend connection(s) for PHP.
    upstream php {
                #this should match value of "listen" directive in php-fpm pool
        #server unix:/tmp/php-fpm.sock;
        server 127.0.0.1:9000;
    }
    server {
        listen 80;
    #    listen       [::]:80 default_server;
        server_name _;
        #root         /home/~;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
        # zone which we want to limit by upper values, we want limit whole server
        limit_conn conn_limit_per_ip 10;
        limit_req zone=req_limit_per_ip burst=10 nodelay;

        location ~* .(woff|eot|ttf|svg|mp4|webm|jpg|jpeg|png|gif|ico|css|js)$ {
        expires max;
        }
        gzip on;
        access_log  /var/log/nginx/access.log  compression;
    }

   #1st virtual server

   server {
        listen 80;
        server_name website1.co www.website1.co;
        root /home/website1/public_html;
        index index.html index.htm index.php;
        access_log /var/log/virtualmin/website1_access_log;
        error_log /var/log/virtualmin/website1_error_log;

        # nginx configuration

        location / {
        #for web application
         if (!-e $request_filename){
         rewrite ^(/)?api/.*$ /api/index.php;
         }
         if (!-e $request_filename){
         rewrite ^(/)?customer/.*$ /customer/index.php;
         }
         if (!-e $request_filename){
         rewrite ^(/)?backend/.*$ /backend/index.php;
         }
         if (!-e $request_filename){
         rewrite ^(.*)$ /index.php;
         }
         index  index.html index.htm index.php;
         #web application end

        # [pre-existing configurations, if applicable]
        autoindex on;
        autoindex_exact_size off;

         client_max_body_size    10m;
        client_body_buffer_size 128k;

        proxy_send_timeout   90;
        proxy_read_timeout   90;
        proxy_buffer_size    128k;
        proxy_buffers     4 256k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;
        proxy_connect_timeout 30s;

        proxy_set_header X-Real-IP  $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;

         proxy_pass http://127.0.0.1:8080;
     }

     #error_page  404              /404.html;
     # redirect server error pages to the static page /50x.html
     #
     error_page   500 502 503 504  /50x.html;

     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
     #
     location ~ \.php$ {
         try_files $uri $uri/ /index.php?$args;
         fastcgi_index  index.php;
         #fastcgi_pass 127.0.0.1:9000;
         fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_split_path_info  ^(.+\.php)(.*)$;
         fastcgi_param  PATH_INFO        $fastcgi_path_info;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 

         fastcgi_read_timeout 600s;
         fastcgi_send_timeout 600s;
         include fastcgi_params;
     }

     # deny access to .htaccess files, if Apache's document root
     # concurs with nginx's one
     #
     location ~ /\.ht {
        access_log off;
        log_not_found off;
         deny  all;
     }
        listen 443 ssl;
        ssl_certificate /home/website1/ssl.cert;
        ssl_certificate_key /home/website1/ssl.key;
    }

 #2nd virtual server

server {
        server_name website2.co www.website2.co;
        listen 80;
        root /home/website2/public_html;
        index index.html index.htm index.php;
        access_log /var/log/virtualmin/website2_access_log;
        error_log /var/log/virtualmin/website2_error_log;
        fastcgi_param GATEWAY_INTERFACE CGI/1.1;
        fastcgi_param SERVER_SOFTWARE nginx;
        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_param SCRIPT_FILENAME /home/website2/public_html$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param REQUEST_URI $request_uri;
        fastcgi_param DOCUMENT_URI $document_uri;
        fastcgi_param DOCUMENT_ROOT /home/website2/public_html;
        fastcgi_param SERVER_PROTOCOL $server_protocol;
        fastcgi_param REMOTE_ADDR $remote_addr;
        fastcgi_param REMOTE_PORT $remote_port;
        fastcgi_param SERVER_ADDR $server_addr;
        fastcgi_param SERVER_PORT $server_port;
        fastcgi_param SERVER_NAME $server_name;
        fastcgi_param HTTPS $https;
        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    try_files $uri $uri/ =404;
            fastcgi_pass unix:/var/php-nginx/15028646429198.sock/socket;
                        include fastcgi.conf;

        }

        location / {
        client_max_body_size    10m;
        client_body_buffer_size 128k;

        proxy_send_timeout   90;
        proxy_read_timeout   90;
        proxy_buffer_size    128k;
        proxy_buffers     4 256k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;
        proxy_connect_timeout 30s;

         proxy_set_header X-Real-IP  $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

         proxy_pass http://127.0.0.1:8080;
        }
        listen 443 ssl;
        ssl_certificate /home/website2/ssl.cert;
        ssl_certificate_key /home/website2/ssl.key;
    }

Any help would be very helpful.
Thanks in advance.

1 Answer

Where ever your uploaded your web root, it isn't /home/~, which is what you have in your conf file.

I run freebsd. Nginix default root is /usr/local/www/nginx. But distributions vary.

BTW, you might want to join the nginx mailing list. I've learned plenty there.
nginx mailing list

Have another answer? Share your knowledge.