-
Star
(118)
You must be signed in to star a gist -
Fork
(44)
You must be signed in to fork a gist
-
-
Save petitviolet/d36f33d145d0bbf4b54eb187b79d0244 to your computer and use it in GitHub Desktop.
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: nginx-conf | |
| data: | |
| nginx.conf: | | |
| user nginx; | |
| worker_processes 3; | |
| error_log /var/log/nginx/error.log; | |
| events { | |
| worker_connections 10240; | |
| } | |
| http { | |
| log_format main | |
| 'remote_addr:$remote_addr\t' | |
| 'time_local:$time_local\t' | |
| 'method:$request_method\t' | |
| 'uri:$request_uri\t' | |
| 'host:$host\t' | |
| 'status:$status\t' | |
| 'bytes_sent:$body_bytes_sent\t' | |
| 'referer:$http_referer\t' | |
| 'useragent:$http_user_agent\t' | |
| 'forwardedfor:$http_x_forwarded_for\t' | |
| 'request_time:$request_time'; | |
| access_log /var/log/nginx/access.log main; | |
| server { | |
| listen 80; | |
| server_name _; | |
| location / { | |
| root html; | |
| index index.html index.htm; | |
| } | |
| } | |
| include /etc/nginx/virtualhost/virtualhost.conf; | |
| } | |
| virtualhost.conf: | | |
| upstream app { | |
| server localhost:8080; | |
| keepalive 1024; | |
| } | |
| server { | |
| listen 80 default_server; | |
| root /usr/local/app; | |
| access_log /var/log/nginx/app.access_log main; | |
| error_log /var/log/nginx/app.error_log; | |
| location / { | |
| proxy_pass http://app/; | |
| proxy_http_version 1.1; | |
| } | |
| } | |
| --- | |
| apiVersion: apps/v1beta1 | |
| kind: Deployment | |
| metadata: | |
| name: nginx | |
| spec: | |
| replicas: 1 | |
| template: | |
| metadata: | |
| labels: | |
| app: nginx | |
| spec: | |
| containers: | |
| - name: nginx | |
| image: nginx | |
| ports: | |
| - containerPort: 80 | |
| volumeMounts: | |
| - mountPath: /etc/nginx # mount nginx-conf volumn to /etc/nginx | |
| readOnly: true | |
| name: nginx-conf | |
| - mountPath: /var/log/nginx | |
| name: log | |
| volumes: | |
| - name: nginx-conf | |
| configMap: | |
| name: nginx-conf # place ConfigMap `nginx-conf` on /etc/nginx | |
| items: | |
| - key: nginx.conf | |
| path: nginx.conf | |
| - key: virtualhost.conf | |
| path: virtualhost/virtualhost.conf # dig directory | |
| - name: log | |
| emptyDir: {} | |
| --- | |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| name: nginx | |
| spec: | |
| type: LoadBalancer | |
| ports: | |
| - port: 80 | |
| targetPort: 80 | |
| selector: | |
| app: nginx | |
apiVersion: apps/v1beta1 deployment version should be changed to apiVersion: apps/v1
I need help to optimize the Nginx
- What should be the worker_Processes configuration? I thought it should be a number per core. So for example, if we are giving the 1000m CPU ( request ) to the POD, what should be worker_processes in this case - I think 1?
- Similarly what should be the memory request I should give that to Pod?
- What should be a number of worker_connections?
Thanks
Can we provide the server configuration wihtout having the config map?
I don't want to use config map, I want to apply the setting configuration in the deployment directly. Is it possible?
Hello,
I have created config map to mount nginx.conf inside the nginx contianer.
But I am seeing the nginx default page inside pod not the one I have mounted via configmap.
PS: I am trying this on OpenShift 4.6 cluster.
My files are:
Config map
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-conf
namespace: nginx-ingress
data:
nginx.conf: |-
user nginx;
worker_processes 10;
events {
worker_connections 10240;
}
http {
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html; #Change this line
index index.html index.htm;
}
}
}
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: nginx-ingress
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
nodeSelector:
compute1: worker1
volumes:
- name: nginx-conf
configMap:
name: nginx-conf
items:
- key: nginx.conf
path: nginx.conf
containers:
- name: nginx-alpine-perl
image: docker.io/library/nginx@sha256:51212c2cc0070084b2061106d5711df55e8aedfc6091c6f96fabeff3e083f355
ports:
- containerPort: 80
securityContext:
allowPrivilegeEscalation: false
#runAsUser: 0
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx
#subPath: nginx.conf
readOnly: true
I tried it with specific path as well like: /etc/nginx/nginx.conf but it doesn't create container.
Any help would be appreciated?
Do i need to install nginx (using yum etc) or configmap will create nginx files automatically.
Only mount specific file instead of entire directory.