The present invention relates to the field of servers, and more particularly, to a server and an associated method capable of selecting one of a plurality of different CGI modules according to the contents of a request command.
In a server structure, if a server supports two or more ports, the two or more web page service modules may be required to execute corresponding request commands, in which the web page service modules are independent of each other. Furthermore, when a user enters a URL on a browser, the user may also have to enter a corresponding port to access desired services through the web page service modules. For example, if the user needs to use a system management interface in the server, a corresponding port value should be entered in the end location of the URL, e.g. http://IP:999, where the number 999 is the corresponding port value of the system management interface. This causes the user some inconvenience when setting the domain name of the server in this way.
An objective of the present invention is to provide a server comprising a single web page service module, wherein the web page service module may refer to the contents of the request command to select one of a plurality of different common gateway interface (CGI) modules in order to execute the request command, wherein the different CGI modules correspond to different respective ports. Through the embodiments of the present invention, the user no longer needs to enter the port value when entering an URL to a browser. Further, the user may easily set the domain name of the server, thus improving the user experience.
According to an embodiment of the present invention, a server is provided. The server comprises a web page service module, a first common gateway interface (CGI) module and a second CGI module. The web page service module is arranged to receive a request command external to the server. The second CGI module and the first CGI module correspond to applications which should be executed by different respective authorities. The web page service module determines contents of the request command to select the first CGI module or the second CGI module in order to execute the request command.
According to another embodiment of the present invention, a method for executing a request command is provided. The method comprises: receiving a request command external to a server; determining contents of the request command in order to select a first CGI module or a second CGI module to execute the request command, wherein the second CGI module and the first CGI module correspond to applications which should be executed by respective different authorities.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
In practice, the web page service module 122, fast CGI module 124 and SCGI module 126 may be implemented by software. The processor 110 executes one or more program codes in the storage unit 120, so that the program codes execute the operations of the web page service module 122, fast CGI module 124 and SCGI module 126.
When the web page service module 122 executes the request command from the user, the web page service module 122 assigns at least one worker to execute the operation request. In this embodiment, the web page service module 122 is implemented with the structure of an Nginx web page server. Specifically, there are two execution modes related to the workers in the Nginx web page server: the master process, and the worker process, in which the master process is arranged to monitor the states and numbers of the worker processes. The master process will create multiple workers when the server 100 is powered on, and the external request commands will be executed by these workers. The fast CGI module 124 and SCGI module 126 may also set multiple workers to execute the received request commands.
The web page service module 122 may include a configuration file, which records features corresponding to each port or each CGI module. When receiving an external request command/URL, the web page service module 122 may determine whether the request command/URL conforms to the features recorded in the configuration file, to thereby select a corresponding port and a corresponding CGI module.
As mentioned above, the web page service module 122 refers to the contents of the request command for selecting a CGI module to execute the request command, in order to correctly access files and execute the expected applications. As the user no longer needs to enter the port value when entering the URL on the browser, the user experience is improved. Further, the web page service module 122 may link the fast CGI module 124 and SCGI module 126 through the TCP and/or Unix domain socket, thus separating execution authorities of the web page service module 122 from the fast CGI module 124 and the SCGI module 126.
The way the server 100 processes the request command may allow the user to more easily customize the domain name of the server 100. The implementation details are as follows.
Public domain names need to be registered to a domain name registrar before being searched through the internet. After the ownership of a domain name is granted, the domain name system (DNS) can be set, and the domain name can be resolved to the mapped internet protocol (IP). The above operations are complicated and require certain technical skill. In order to simplify the above steps of setting the domain name, in an embodiment of the present invention, the operating system (OS) of the server 100 may utilize the NetBIOS communications protocol used by Microsoft Windows, or the mDNS communications protocol used by Unix, to achieve the goal of setting the domain name and resolving the IP address. Specifically, the user of the server 100 may directly set a desired domain name in a local area network (LAN), utilize the NetBIOS or mDNS communications protocol to resolve the IP address, and broadcast the designated domain name to a private network environment or the LAN. The user of the server 100 can therefore easily set the domain name, and other users in the same LAN may directly link to the server 100 by entering “http://Diskstation” or “http://Diskstation.local” on their browser, which improves the user experience. The aforementioned domain name set by the user may be directly bound to a specific application. When the user enters the domain name that has been set, the electronic device may directly link to specific applications of the server 100, without needing to use the system management interface. For example, the user may set a first domain name to link to a file management system application of the server 100, and further set a second domain name to link to a music playing application of the server 100.
The aforementioned method adopting the NetBIOS or mDNS communications protocol is only applicable to LANs. When Internet access is needed, another associating server, such as the dynamic DNS (DDNS) provided by the Synology™ company, must be used.
In the aforementioned embodiments, the web page service module 122 in the server 100 includes a profile describing the executable domain name of each port.
Step 700: Start.
Step 702: Receive a request command external to the server.
Step 704: Determine the contents of the request command to select a first CGI module or a second CGI module in order to execute the request command.
To summarize, in the server and associated execution method of the present invention, a single web page service module is utilized to receive a request command. The request command is executed by one of a plurality of different CGI modules based on the contents of the received request command, in which the different CGI modules correspond to different respective ports. The user therefore no longer needs to enter the port value when inputting the URL on the browser. Further, through utilizing the embodiments of the present invention, it is easier for users to set the domain name of the server, thus improving the entire user experience.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
105107277 A | Mar 2016 | TW | national |
Number | Name | Date | Kind |
---|---|---|---|
6170019 | Dresel | Jan 2001 | B1 |
6192415 | Haverstock | Feb 2001 | B1 |
6941369 | Krack | Sep 2005 | B1 |
7272628 | Pravetz | Sep 2007 | B1 |
7464142 | Flurry | Dec 2008 | B2 |
20010054086 | Miyahira | Dec 2001 | A1 |
20030014504 | Hess | Jan 2003 | A1 |
20070143434 | Daigle | Jun 2007 | A1 |
20100218106 | Chen | Aug 2010 | A1 |
20100257231 | Yu | Oct 2010 | A1 |
20120158823 | Ahuja | Jun 2012 | A1 |
20130117350 | Beck | May 2013 | A1 |
20140208294 | Randhir | Jul 2014 | A1 |
20170046449 | Levi | Feb 2017 | A1 |
Number | Date | Country |
---|---|---|
201039594 | Nov 2010 | TW |
I379231 | Dec 2012 | TW |
201401081 | Jan 2014 | TW |
Entry |
---|
Md. Faizul Bari et al., Advanced pWeb Features, David R. Cheriton School of Computer Science, University of Waterloo, XP055367157, Jun. 2012, URL:https://cs.uwaterloo.ca/sites/ca.computer-science/files/uploads/files/CS-2013-13.pdf. |
Heiko Webers, Web Application Security Put Into Practice Ruby on Rails Security, OWASP, XP055367117, Aug. 8, 2007, URL:https://www.owasp.org/images/archive/2/26/20071031153117!Owasp-rails-security.pdf. |
Reyk Floeter, Introducing OpenBSD's new httpd, Esdenera Networks GmbH, XP055366919, Mar. 2015, URL:http://www.openbsd.org/papers/httpd-asiabsdcon2015.pdf. |
George Gousios et al, A Comparison of Portable Dynamic Web Content Technologies for the Apache Server, May 2002, XP055367124, pp. 1-15, URL:http://www.dmst.aueb.gr/dds/pubs/conf/2002-SANE-DynCont/html/dyncont.pdf. |
Number | Date | Country | |
---|---|---|---|
20170264666 A1 | Sep 2017 | US |