mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Nginx example (#7207)
* Add sample nginx config file - Taken from 0.13.x branch * Add alternative setup for nginx * Add brief note in the docs
This commit is contained in:
parent
b5a3e4aac4
commit
6a9d833251
@ -1,7 +1,10 @@
|
||||
# Caddyfile for Inventree
|
||||
# Example Caddyfile for Inventree
|
||||
# The following environment variables may be used:
|
||||
# - INVENTREE_SITE_URL: The upstream URL of the Inventree site (default: inventree.localhost)
|
||||
# - INVENTREE_SERVER: The internal URL of the Inventree container (default: http://inventree-server:8000)
|
||||
#
|
||||
# Note that while this file is a good starting point, it may need to be modified to suit your specific requirements
|
||||
|
||||
|
||||
(log_common) {
|
||||
log {
|
||||
|
@ -120,3 +120,17 @@ services:
|
||||
- ${INVENTREE_EXT_VOLUME}:/var/log:z
|
||||
- ${INVENTREE_EXT_VOLUME}:/data:z
|
||||
- ${INVENTREE_EXT_VOLUME}:/config:z
|
||||
|
||||
# alternative: run nginx as reverse proxy
|
||||
# inventree-proxy:
|
||||
# container_name: inventree-proxy
|
||||
# image: nginx:stable
|
||||
# restart: always
|
||||
# depends_on:
|
||||
# - inventree-server
|
||||
# ports:
|
||||
# - ${INVENTREE_WEB_PORT:-80}:80
|
||||
# - 443:443
|
||||
# volumes:
|
||||
# - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro,z
|
||||
# - ${INVENTREE_EXT_VOLUME}:/var/www:z
|
||||
|
70
contrib/container/nginx.conf
Normal file
70
contrib/container/nginx.conf
Normal file
@ -0,0 +1,70 @@
|
||||
# An example configuration file for running InvenTree container behind an nginx proxy
|
||||
# While suitable for a simple installation, this file will likely require some modification
|
||||
# if you are running a more complex setup (e.g behind another proxy, or with HTTPS)
|
||||
|
||||
server {
|
||||
|
||||
# Listen for connection on (internal) port 80
|
||||
# If you are exposing this server to the internet, you should use HTTPS!
|
||||
# In which case, you should also set up a redirect from HTTP to HTTPS, and listen on port 443
|
||||
# See the Nginx documentation for more details
|
||||
listen 80;
|
||||
|
||||
real_ip_header proxy_protocol;
|
||||
|
||||
location / {
|
||||
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-By $server_addr:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header CLIENT_IP $remote_addr;
|
||||
|
||||
proxy_pass_request_headers on;
|
||||
|
||||
proxy_redirect off;
|
||||
|
||||
client_max_body_size 100M;
|
||||
|
||||
proxy_buffering off;
|
||||
proxy_request_buffering off;
|
||||
|
||||
# Do not touch this unless you have a specific reason - this and the docker-compose need to match
|
||||
proxy_pass http://inventree-server:8000;
|
||||
}
|
||||
|
||||
# Redirect any requests for static files
|
||||
location /static/ {
|
||||
alias /var/www/static/;
|
||||
autoindex on;
|
||||
|
||||
# Caching settings
|
||||
expires 30d;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
|
||||
# Redirect any requests for media files
|
||||
location /media/ {
|
||||
alias /var/www/media/;
|
||||
|
||||
# Media files require user authentication
|
||||
auth_request /auth;
|
||||
|
||||
# Content header to force download
|
||||
add_header Content-disposition "attachment";
|
||||
}
|
||||
|
||||
# Use the 'user' API endpoint for auth
|
||||
location /auth {
|
||||
internal;
|
||||
|
||||
proxy_pass http://inventree-server:8000/auth/;
|
||||
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Original-URI $request_uri;
|
||||
}
|
||||
|
||||
}
|
@ -117,12 +117,15 @@ Runs an InvenTree web server instance, powered by a Gunicorn web server.
|
||||
|
||||
Runs the InvenTree background worker process. This spins up a second instance of the *inventree* container, with a different entrypoint command.
|
||||
|
||||
#### File Server
|
||||
#### Proxy Server
|
||||
|
||||
Caddy working as a reverse proxy, separating requests for static and media files, and directing everything else to Gunicorn.
|
||||
|
||||
This container uses the official [caddy image](https://hub.docker.com/_/caddy).
|
||||
|
||||
!!! info "Nginx Proxy"
|
||||
An alternative is to run nginx as the reverse proxy. A sample configuration file is provided in the `./contrib/container/` source directory.
|
||||
|
||||
#### Redis Cache
|
||||
|
||||
Redis is used as cache storage for the InvenTree server. This provides a more performant caching system which can useful in larger installations.
|
||||
|
Loading…
Reference in New Issue
Block a user