NGINX
7161
Comment: add anchors
|
7379
AIO notes
|
Deletions are marked like this. | Additions are marked like this. |
Line 28: | Line 28: |
* /!\ NOTE: The primary reason for this, in Ubuntu, is third-party module interaction for Universe-pocket flavors of NGINX; this may be reversed in the future, but currently is not going to be enabled at this time/ |
What is NGINX?
NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers.
Who maintains NGINX in Ubuntu?
The NGINX software and packaging is maintained in Ubuntu jointly by Thomas Ward, and the rest of the Server Team, as well as the Security team for Ubuntu Trusty 14.04 LTS and onwards as part of the 'main' repository (for security updates).
Requesting Additional Features
The standard procedure for requesting additional features or changes to a package is to open a bug and make sure it's marked as a feature request, to mark as a Wishlist item. Any deviation from this is documented below.
Enablement of a Core (upstream provided) feature
The standard procedure for requesting additional features that are provided as a part of the pure source code from NGINX is to file a bug.
There are certain features that will not be enabled, however, even if requested, due to various reasons:
- AIO Support
AIO support causes a lot of unintended side effects when debugging NGINX behavior. While this may not be intentional, it causes a lot of issues. AIO support was requested in Debian Bug #784240, but was rejected as "Won't Enable" for this reason.
NOTE: The primary reason for this, in Ubuntu, is third-party module interaction for Universe-pocket flavors of NGINX; this may be reversed in the future, but currently is not going to be enabled at this time/
Requesting Inclusion of a Third-Party Module
NGINX has *numerous* third-party plugins not maintained by the NGINX upstream teams or the Ubuntu teams, and is able to be extended with such plugins (as has been done in Debian with some of the modules enabled/available for the nginx-full and nginx-extras flavors). Because of this ability to be extended we have received a good deal of requests here in Ubuntu to include third-party modules not yet included in the package.
When it comes to determining inclusion, there's many factors, including that we also have to be concerned if Debian does not support it, as we merge from Debian to Ubuntu when possible, and introducing new versions or software code can break these modules to varying degrees.
Given the complexity of NGINX, the varied level of version support by third party module developers, and the varied levels of triviality to support a given third-party module, we are not accepting additional third-party module requests for Ubuntu. Any requests for third-party modules to be added to the packaging should originate in Debian, and be filed against the 'src:nginx' package on Debian's Bug Tracker, where it will be considered whether or not to include that module.
Bug Triage Guidelines
For the most part, standard triage rules apply. There are several special-case issues which have different handling processes, however, detailed below.
Bug in an NGINX Version with ~CODENAME or +CODENAME in Version
(NOTE: CODENAME would be "Xenial" for 16.04, for example)
Triage Handling:
Status (Ubuntu): Invalid
- If version string contains '+CODENAME#' (where # is a number):
"Also affects project", make sure NGINX project is selected (https://launchpad.net/nginx)
- If version string contains '~CODENAME':
Point users towards the NGINX Trac bugtracker for bug reports.
"Please add" a third-party module to nginx - Feature Request
Triage Handling:
Status: Won't Fix
Importance: Wishlist
Or...
Mark as a duplicate of Launchpad Bug #1442731
Error: "Address in use" / "bind() ... failed"
Example Log Excerpts:
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Triage Handling:
Status: Invalid
- Reason:
- This is known to be a local-system-related issue and not an issue in the packaging.
- This usually happens if Apache or some other service is listening already on the IP/port combination set forth in the NGINX listen configurations.
Error: "No Such File or Directory" for nginx.conf or config files
Example Log Excerpts:
- nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
Triage Handling:
Status: Invalid
- Reason:
- This is known to be a local-system-related issue and not an issue in the packaging.
- This can happen when some packages are installed or removed, and alter configurations. This can also happen due to user error or mistakes, which remove the configuration files. In each case, this is a local-system issue.
- WORKAROUND / FIX:
- It is possible to completely remove and reinstall the default configuration for NGINX. The workaround is to execute the following commands in sequence:
- sudo apt-get remove --purge nginx-common
- sudo apt-get install nginx nginx-common
- If a user wants a specific flavor of nginx, and not deal with the 'nginx' metapackage, they can replace 'nginx' with 'nginx-light', 'nginx-extras', 'nginx-full', or 'nginx-core'.
- It is possible to completely remove and reinstall the default configuration for NGINX. The workaround is to execute the following commands in sequence:
Versions in Ubuntu Repository
We currently support the following Versions in the Ubuntu repositories, for a given release. Note the "Tracking" column indicates whether we are tracking NGINX's Stable or Mainline branch for that release. (This does not include packaging version string changes, or Security updates unless a version bump has happened for the Security updates.)
Ubuntu Release |
NGINX Version |
Upstream Branch |
12.04 |
1.1.19 |
Development* |
14.04 |
1.4.6 |
Stable |
16.04 |
1.10.0 |
Stable |
16.10 |
1.10.1 |
Stable |
17.04 (dev) |
1.10.3 |
Stable |
* The "Development" branch is now called the Mainline branch, as the namings have changed at NGINX since 2012.
Additional Resources and References
ServerTeam/NGINX (last edited 2024-06-17 17:50:46 by teward)