Difference between revisions of "Configure the TCAdmin website to run with Nginx"

Line 43: Line 43:
 
Create the file '''/etc/nginx/conf.d/default.conf''' with the following content. If it already exists rename the existing file to default.conf.old.
 
Create the file '''/etc/nginx/conf.d/default.conf''' with the following content. If it already exists rename the existing file to default.conf.old.
 
  upstream tcadmin-fcgi {
 
  upstream tcadmin-fcgi {
        ip_hash;
+
        ip_hash;
        health_check;
+
        health_check;
        server 127.0.0.1:9000;
+
        server 127.0.0.1:9000;
 
  }
 
  }
 
   
 
   

Revision as of 15:59, 18 February 2015

Install Nginx

The following instructions are provided for your convenience. We do not provide support for installing Nginx on your server. For detailed instructions read the Nginx manual or your distro's manual.

CentOS

yum -y install epel-release
yum -y install nginx

Debian/Ubuntu

apt-get install nginx

Configure TCAdmin to execute the fastcgi server instead of the default web server

Edit the file /home/tcadmin/Monitor/tcadmin-config. Change this line:

ENABLE_FASTCGI_SERVER="False"

to:

ENABLE_FASTCGI_SERVER="True"

If the line doesn't exist add it at the end.

Then restart the monitor service:

/home/tcadmin/Monitor/monitor-service restart


Configure Nginx to work with Mono's fastcgi server

Edit the file /etc/nginx/nginx.conf and change:

user nginx;

to:

user tcadmin;

Add the following lines to /etc/nginx/fastcgi_params

fastcgi_param  PATH_INFO          "";
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

Configure the control panel website

Create the file /etc/nginx/conf.d/default.conf with the following content. If it already exists rename the existing file to default.conf.old.

upstream tcadmin-fcgi {
        ip_hash;
        health_check;
        server 127.0.0.1:9000;
}

server {
        listen   8880;
        #access_log   /home/tcadmin/Logs/nginx.log;
        root /home/tcadmin/ControlPanel;
        index index.html index.htm default.aspx Default.aspx;
        gzip            on;
        gzip_min_length 1000;
        gzip_proxied    expired no-cache no-store private auth;
        gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        location ~ ^(.+\.(as[pmh]x|axd))(.*)$ {
                gzip off;
                fastcgi_index Default.aspx;
                fastcgi_pass tcadmin-fcgi;
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.as[pmh]x)(.*)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
        }
}

After creating the file reload the nginx settings:

service nginx reload

Configure the website to allow secure connections

Create a self signed certificate

Execute the following commands. When it asks for a passphrase enter a word that you can remember.

cd /home/tcadmin/Monitor
openssl genrsa -des3 -out nginx.key 2048

Execute this command. Enter the passphrase that you used in the first step. You can leave all other values blank.

openssl req -new -key nginx.key -out nginx.csr

Execute this command. Enter the passphrase that you used in the first step.

mv nginx.key nginx.key.org
openssl rsa -in nginx.key.org -out nginx.key

Execute this command to create the certificate file.

openssl x509 -req -days 7300 -in nginx.csr -signkey nginx.key -out nginx.crt

Add this to /etc/nginx/conf.d/default.conf.

server {
        listen   8881;
        #access_log   /home/tcadmin/Logs/nginx.log;
        root /home/tcadmin/ControlPanel;
        index index.html index.htm default.aspx Default.aspx;
        gzip            on;
        gzip_min_length 1000;
        gzip_proxied    expired no-cache no-store private auth;
        gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        ssl on;
        ssl_certificate /home/tcadmin/Monitor/nginx.crt;
        ssl_certificate_key /home/tcadmin/Monitor/nginx.key;

        location ~ ^(.+\.(as[pmh]x|axd))(.*)$ {
                gzip off;
                fastcgi_index Default.aspx;
                fastcgi_pass tcadmin-fcgi;
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.as[pmh]x)(.*)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
        }
}


After updating the file reload the nginx settings:

service nginx reload

Change the default ports

If you change the default ports in /etc/nginx/conf.d/default.conf make sure you update the values of WEB_PORT and SECURE_WEB_PORT in /home/tcadmin/Monitor/tcadmin-config and restart the monitor service:

/home/tcadmin/Monitor/monitor-service restart

Enable logging

Logging is commented out in the above configurations. You can enable it by changing #access_log to access_log and reloading the nginx service. That will create a single log file that can get huge after a few days. You can configure log rotation with these instructions: http://www.nginxtips.com/how-to-rotate-nginx-logs/

Common errors

Object reference error when logging in

This should only happen the first time you log in after changing the web server.

Port already in use

If Nginx says the port is already in use make sure you configured TCAdmin to start the fastcgi server instead of the built in web server and restarted the monitor. Also check if there is a process using port 8880 and kill it:

netstat -tlnp|grep 8880

Website doesn't load

Try starting nginx:

service nginx start
Retrieved from "https://help.tcadmin.com/index.php?title=Configure_the_TCAdmin_website_to_run_with_Nginx&oldid=1196"