mirror of
https://github.com/frappe/bench.git
synced 2025-01-10 00:37:51 +00:00
roles to setup production environment
This commit is contained in:
parent
e360b0702a
commit
2e6ca1613d
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensure nginx is installed.
|
|
||||||
apt:
|
|
||||||
pkg: nginx
|
|
||||||
state: installed
|
|
||||||
default_release: "{{ nginx_default_release }}"
|
|
@ -343,6 +343,9 @@ def parse_commandline_args():
|
|||||||
|
|
||||||
parser.add_argument('--site', dest='site', action='store', default='site1.local',
|
parser.add_argument('--site', dest='site', action='store', default='site1.local',
|
||||||
help='Specifiy name for your first ERPNext site')
|
help='Specifiy name for your first ERPNext site')
|
||||||
|
|
||||||
|
parser.add_argument('--without-site', dest='without_site', action='store_true',
|
||||||
|
default=False)
|
||||||
|
|
||||||
parser.add_argument('--verbose', dest='verbosity', action='store_true', default=False,
|
parser.add_argument('--verbose', dest='verbosity', action='store_true', default=False,
|
||||||
help='Run the script in verbose mode')
|
help='Run the script in verbose mode')
|
||||||
|
76
playbooks/production/files/nginx.conf
Normal file
76
playbooks/production/files/nginx.conf
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
user nginx;
|
||||||
|
worker_processes auto;
|
||||||
|
worker_rlimit_nofile 65535;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/error.log warn;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections {{ nginx_worker_connections or 2048 }};
|
||||||
|
multi_accept on;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
tcp_nopush on;
|
||||||
|
tcp_nodelay on;
|
||||||
|
server_tokens off;
|
||||||
|
|
||||||
|
# keepalive_timeout 10;
|
||||||
|
# keepalive_requests 10;
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_disable "msie6";
|
||||||
|
gzip_http_version 1.1;
|
||||||
|
gzip_comp_level 5;
|
||||||
|
gzip_min_length 256;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_types
|
||||||
|
application/atom+xml
|
||||||
|
application/javascript
|
||||||
|
application/json
|
||||||
|
application/rss+xml
|
||||||
|
application/vnd.ms-fontobject
|
||||||
|
application/x-font-ttf
|
||||||
|
application/font-woff
|
||||||
|
application/x-web-app-manifest+json
|
||||||
|
application/xhtml+xml
|
||||||
|
application/xml
|
||||||
|
font/opentype
|
||||||
|
image/svg+xml
|
||||||
|
image/x-icon
|
||||||
|
text/css
|
||||||
|
text/plain
|
||||||
|
text/x-component
|
||||||
|
;
|
||||||
|
|
||||||
|
server_names_hash_max_size 4096;
|
||||||
|
|
||||||
|
open_file_cache max=65000 inactive=1m;
|
||||||
|
open_file_cache_valid 5s;
|
||||||
|
open_file_cache_min_uses 1;
|
||||||
|
open_file_cache_errors on;
|
||||||
|
|
||||||
|
ssl_protocols SSLv3 TLSv1;
|
||||||
|
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
client_max_body_size 50m;
|
||||||
|
large_client_header_buffers 4 32k;
|
||||||
|
|
||||||
|
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=web-cache:8m max_size=1000m inactive=600m;
|
||||||
|
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
- hosts: localhost
|
- hosts: localhost
|
||||||
vars:
|
vars:
|
||||||
bench_path: "/home/{{ ansible_user_id }}/frappe-bench"
|
bench_path: "/home/{{ ansible_user_id }}/{{ bench_name }}"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
|
@ -3,60 +3,6 @@
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
- name: Add nginx apt repository key for Debian < 8
|
|
||||||
apt_key:
|
|
||||||
url: http://nginx.org/keys/nginx_signing.key
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
become_user: root
|
|
||||||
when: ansible_distribution == 'Debian' and ansible_distribution_version | version_compare('8', 'lt')
|
|
||||||
|
|
||||||
- name: Add nginx apt repository for Debian < 8
|
|
||||||
apt_repository:
|
|
||||||
repo: 'deb [arch=amd64,i386] http://nginx.org/packages/debian/ {{ ansible_distribution_release }} nginx'
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
become_user: root
|
|
||||||
when: ansible_distribution == 'Debian' and ansible_distribution_version | version_compare('8', 'lt')
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Ubuntu Production Environment Setup
|
|
||||||
- name: Install production pre-requisites
|
|
||||||
become: yes
|
|
||||||
become_user: root
|
|
||||||
apt: pkg={{ item }} state=present
|
|
||||||
with_items:
|
|
||||||
- nginx
|
|
||||||
- screen
|
|
||||||
- vim
|
|
||||||
- htop
|
|
||||||
- git
|
|
||||||
- postfix
|
|
||||||
- supervisor
|
|
||||||
when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian'
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# CentOS Production Environment Setup
|
|
||||||
- name: Install production pre-requisites
|
|
||||||
become: yes
|
|
||||||
become_user: root
|
|
||||||
yum: pkg={{ item }} state=present
|
|
||||||
with_items:
|
|
||||||
- nginx
|
|
||||||
- screen
|
|
||||||
- vim
|
|
||||||
- htop
|
|
||||||
- git
|
|
||||||
- postfix
|
|
||||||
- MySQL-python
|
|
||||||
when: ansible_distribution == 'CentOS'
|
|
||||||
|
|
||||||
- name: Install supervisor using yum for Centos 7
|
|
||||||
yum: pkg=supervisor state=present
|
|
||||||
become: yes
|
|
||||||
become_user: root
|
|
||||||
when: ansible_distribution == 'CentOS' and ansible_lsb.major_release == '7'
|
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# Replace default nginx config with nginx template
|
# Replace default nginx config with nginx template
|
||||||
- name: Rename default nginx.conf to nginx.conf.old
|
- name: Rename default nginx.conf to nginx.conf.old
|
||||||
@ -146,12 +92,3 @@
|
|||||||
become_user: root
|
become_user: root
|
||||||
when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian'
|
when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian'
|
||||||
|
|
||||||
- name: insert/update inputrc for history
|
|
||||||
blockinfile:
|
|
||||||
dest: "/home/{{ ansible_user_id }}/.inputrc"
|
|
||||||
create: yes
|
|
||||||
block: |
|
|
||||||
## arrow up
|
|
||||||
"\e[A":history-search-backward
|
|
||||||
## arrow down
|
|
||||||
"\e[B":history-search-forward
|
|
@ -1,15 +1,42 @@
|
|||||||
---
|
---
|
||||||
- hosts: localhost
|
|
||||||
|
|
||||||
# Install the common pre-requisites for the setting up bench
|
# Install the common pre-requisites for the setting up bench
|
||||||
- include: ../develop/install.yml
|
- include: ../develop/install.yml
|
||||||
|
|
||||||
# Install the production environment
|
#install production pre-requisites
|
||||||
- include: includes/setup_prod_env.yml
|
- name: Apply basic roles
|
||||||
|
hosts: localhost
|
||||||
|
become: yes
|
||||||
|
become_user: root
|
||||||
|
vars:
|
||||||
|
- nginx_conf_file: ../files/nginx.conf
|
||||||
|
roles:
|
||||||
|
- locale
|
||||||
|
- swap
|
||||||
|
- logwatch
|
||||||
|
- bash_screen_wall
|
||||||
|
- frappe_selinux
|
||||||
|
- dns_caching
|
||||||
|
- ntpd
|
||||||
|
- nginx
|
||||||
|
- fail2ban
|
||||||
|
tasks:
|
||||||
|
- name: Set hostname
|
||||||
|
hostname: name='{{ hostname }}'
|
||||||
|
when: hostname is defined
|
||||||
|
|
||||||
|
- name: Start NTPD
|
||||||
|
service: name=ntpd state=started
|
||||||
|
|
||||||
|
- name: insert/update inputrc for history
|
||||||
|
blockinfile:
|
||||||
|
dest: "/home/{{ ansible_user_id }}/.inputrc"
|
||||||
|
create: yes
|
||||||
|
block: |
|
||||||
|
## arrow up
|
||||||
|
"\e[A":history-search-backward
|
||||||
|
## arrow down
|
||||||
|
"\e[B":history-search-forward
|
||||||
|
|
||||||
# Setup Bench for production environment
|
# Setup Bench for production environment
|
||||||
- include: includes/setup_bench_production.yml
|
- include: includes/setup_bench_production.yml
|
||||||
when: not run_travis
|
when: not run_travis
|
||||||
|
|
||||||
# Setup SELinux Policy, Optional can be done later
|
|
||||||
# - include: includes/setup_selinux_policy.yml
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
if [ $TERM != 'screen' ]
|
||||||
|
then
|
||||||
|
PS1='HEY! USE SCREEN '$PS1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sw() {
|
||||||
|
screen -x $1 || screen -S $1
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
- name: Setup bash screen wall
|
||||||
|
copy: src=screen_wall.sh dest=/etc/profile.d/screen_wall.sh
|
3
playbooks/production/roles/dns_caching/handlers/main.yml
Normal file
3
playbooks/production/roles/dns_caching/handlers/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
- name: restart network manager
|
||||||
|
service: name=NetworkManager state=restarted
|
20
playbooks/production/roles/dns_caching/tasks/main.yml
Normal file
20
playbooks/production/roles/dns_caching/tasks/main.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- name: check NetworkManager.conf exists
|
||||||
|
stat:
|
||||||
|
path: /etc/NetworkManager/NetworkManager.conf
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: unmask NetworkManager service
|
||||||
|
command: systemctl unmask NetworkManager
|
||||||
|
when: result.stat.exists
|
||||||
|
|
||||||
|
- name: add dnsmasq to network config
|
||||||
|
lineinfile: >
|
||||||
|
dest=/etc/NetworkManager/NetworkManager.conf
|
||||||
|
regexp="dns="
|
||||||
|
line="dns=dnsmasq"
|
||||||
|
state=present
|
||||||
|
when: result.stat.exists
|
||||||
|
notify:
|
||||||
|
- restart network manager
|
||||||
|
|
2
playbooks/production/roles/fail2ban/defaults/main.yml
Normal file
2
playbooks/production/roles/fail2ban/defaults/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
fail2ban_nginx_access_log: /var/log/nginx/access.log
|
3
playbooks/production/roles/fail2ban/handlers/main.yml
Normal file
3
playbooks/production/roles/fail2ban/handlers/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
- name: restart fail2ban
|
||||||
|
service: name=fail2ban state=restarted
|
23
playbooks/production/roles/fail2ban/tasks/main.yml
Normal file
23
playbooks/production/roles/fail2ban/tasks/main.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
- name: Install fail2ban
|
||||||
|
yum: name=fail2ban state=present
|
||||||
|
|
||||||
|
- name: Enable fail2ban
|
||||||
|
service: name=fail2ban enabled=yes
|
||||||
|
|
||||||
|
- name: Create jail.d
|
||||||
|
file: path=/etc/fail2ban/jail.d state=directory
|
||||||
|
|
||||||
|
- name: Setup filters
|
||||||
|
template: src="{{item}}-filter.conf.j2" dest="/etc/fail2ban/filter.d/{{item}}.conf"
|
||||||
|
with_items:
|
||||||
|
- nginx-proxy
|
||||||
|
notify:
|
||||||
|
- restart fail2ban
|
||||||
|
|
||||||
|
- name: setup jails
|
||||||
|
template: src="{{item}}-jail.conf.j2" dest="/etc/fail2ban/jail.d/{{item}}.conf"
|
||||||
|
with_items:
|
||||||
|
- nginx-proxy
|
||||||
|
notify:
|
||||||
|
- restart fail2ban
|
@ -0,0 +1,10 @@
|
|||||||
|
# Block IPs trying to use server as proxy.
|
||||||
|
[Definition]
|
||||||
|
failregex = <HOST>.*\" 400
|
||||||
|
<HOST>.*"[A-Z]* /(cms|muieblackcat|db|cpcommerce|cgi-bin|wp-login|joomla|awstatstotals|wp-content|wp-includes|pma|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|pmadb|phpmyadmin1|phpmyadmin2).*" 4[\d][\d]
|
||||||
|
<HOST>.*".*supports_implicit_sdk_logging.*" 4[\d][\d]
|
||||||
|
<HOST>.*".*activities?advertiser_tracking_enabled.*" 4[\d][\d]
|
||||||
|
<HOST>.*".*/picture?type=normal.*" 4[\d][\d]
|
||||||
|
<HOST>.*".*/announce.php?info_hash=.*" 4[\d][\d]
|
||||||
|
|
||||||
|
ignoreregex =
|
@ -0,0 +1,8 @@
|
|||||||
|
## block hosts trying to abuse our server as a forward proxy
|
||||||
|
[nginx-proxy]
|
||||||
|
enabled = true
|
||||||
|
filter = nginx-proxy
|
||||||
|
logpath = {{ fail2ban_nginx_access_log }}
|
||||||
|
action = iptables-multiport[name=NoNginxProxy, port="http,https"]
|
||||||
|
maxretry = 2
|
||||||
|
bantime = 86400
|
@ -29,4 +29,4 @@ allow httpd_t user_home_t:file open;
|
|||||||
allow httpd_t user_home_t:file read;
|
allow httpd_t user_home_t:file read;
|
||||||
|
|
||||||
#!!!! This avc is allowed in the current policy
|
#!!!! This avc is allowed in the current policy
|
||||||
allow httpd_t user_home_t:lnk_file read;
|
allow httpd_t user_home_t:lnk_file read;
|
29
playbooks/production/roles/frappe_selinux/tasks/main.yml
Normal file
29
playbooks/production/roles/frappe_selinux/tasks/main.yml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
- name: Install deps
|
||||||
|
yum: name="{{item}}" state=present
|
||||||
|
with_items:
|
||||||
|
- policycoreutils-python
|
||||||
|
- selinux-policy-devel
|
||||||
|
when: ansible_distribution == 'CentOS'
|
||||||
|
|
||||||
|
- name: Install SELinux for Ubuntu
|
||||||
|
apt: name={{ item }} state=present
|
||||||
|
with_items:
|
||||||
|
- selinux
|
||||||
|
- selinux-policy-dev
|
||||||
|
when: ansible_distribution == 'Ubuntu'
|
||||||
|
|
||||||
|
- name: Check enabled SELinux modules
|
||||||
|
shell: semanage module -l
|
||||||
|
register: enabled_modules
|
||||||
|
|
||||||
|
- name: Copy frappe_selinux policy
|
||||||
|
copy: src=frappe_selinux.te dest=/root/frappe_selinux.te
|
||||||
|
register: dest_frappe_selinux_te
|
||||||
|
|
||||||
|
- name: Compile frappe_selinux policy
|
||||||
|
shell: "make -f /usr/share/selinux/devel/Makefile frappe_selinux.pp && semodule -i frappe_selinux.pp"
|
||||||
|
args:
|
||||||
|
chdir: /root/
|
||||||
|
when: "enabled_modules.stdout.find('frappe_selinux') == -1 or dest_frappe_selinux_te.changed"
|
||||||
|
|
2
playbooks/production/roles/locale/defaults/main.yml
Normal file
2
playbooks/production/roles/locale/defaults/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
locale_keymap: us
|
||||||
|
locale_lang: en_US.utf8
|
19
playbooks/production/roles/locale/tasks/main.yml
Normal file
19
playbooks/production/roles/locale/tasks/main.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
- name: Check current locale
|
||||||
|
shell: localectl
|
||||||
|
register: locale_test
|
||||||
|
|
||||||
|
- name: Set Locale
|
||||||
|
command: "localectl set-locale LANG={{ locale_lang }}"
|
||||||
|
when: locale_test.stdout.find('LANG={{ locale_lang }}') == -1
|
||||||
|
|
||||||
|
- name: Set keymap
|
||||||
|
command: "localectl set-keymap {{ locale_keymap }}"
|
||||||
|
when: "locale_test.stdout.find('Keymap: {{locale_keymap}}') == -1"
|
||||||
|
|
||||||
|
- name: Set Locale as en_US
|
||||||
|
lineinfile: dest=/etc/environment backup=yes line="{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- "LC_ALL=en_US.UTF-8"
|
||||||
|
- "LC_CTYPE=en_US.UTF-8"
|
||||||
|
- "LANG=en_US.UTF-8"
|
3
playbooks/production/roles/logwatch/defaults/main.yml
Normal file
3
playbooks/production/roles/logwatch/defaults/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
logwatch_emails: "{{ admin_emails }}"
|
||||||
|
logwatch_detail: High
|
6
playbooks/production/roles/logwatch/tasks/main.yml
Normal file
6
playbooks/production/roles/logwatch/tasks/main.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: Install logwatch
|
||||||
|
yum: name=logwatch state=present
|
||||||
|
|
||||||
|
- name: Copy logwatch config
|
||||||
|
template: src=logwatch.conf.j2 dest=/etc/logwatch/conf/logwatch.conf backup=yes
|
@ -0,0 +1,2 @@
|
|||||||
|
MailTo = {{ logwatch_emails }}
|
||||||
|
Detail = {{ logwatch_detail }}
|
@ -15,6 +15,10 @@
|
|||||||
- include: setup-Debian.yml
|
- include: setup-Debian.yml
|
||||||
when: ansible_os_family == 'Debian'
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
# Replace default nginx config with nginx template
|
||||||
|
- name: Rename default nginx.conf to nginx.conf.old
|
||||||
|
command: mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old
|
||||||
|
|
||||||
# Nginx setup.
|
# Nginx setup.
|
||||||
- name: Copy nginx configuration in place.
|
- name: Copy nginx configuration in place.
|
||||||
template:
|
template:
|
18
playbooks/production/roles/nginx/tasks/setup-Debian.yml
Normal file
18
playbooks/production/roles/nginx/tasks/setup-Debian.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
- name: Add nginx apt repository key for Debian < 8
|
||||||
|
apt_key:
|
||||||
|
url: http://nginx.org/keys/nginx_signing.key
|
||||||
|
state: present
|
||||||
|
when: ansible_distribution == 'Debian' and ansible_distribution_version | version_compare('8', 'lt')
|
||||||
|
|
||||||
|
- name: Add nginx apt repository for Debian < 8
|
||||||
|
apt_repository:
|
||||||
|
repo: 'deb [arch=amd64,i386] http://nginx.org/packages/debian/ {{ ansible_distribution_release }} nginx'
|
||||||
|
state: present
|
||||||
|
when: ansible_distribution == 'Debian' and ansible_distribution_version | version_compare('8', 'lt')
|
||||||
|
|
||||||
|
- name: Ensure nginx is installed.
|
||||||
|
apt:
|
||||||
|
pkg: nginx
|
||||||
|
state: installed
|
||||||
|
default_release: "{{ nginx_default_release }}"
|
9
playbooks/production/roles/ntpd/tasks/main.yml
Normal file
9
playbooks/production/roles/ntpd/tasks/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: Install ntpd
|
||||||
|
yum: name="{{item}}" state=installed
|
||||||
|
with_items:
|
||||||
|
- ntp
|
||||||
|
- ntpdate
|
||||||
|
|
||||||
|
- name: enable ntpd
|
||||||
|
service: name=ntpd enabled=yes state=started
|
1
playbooks/production/roles/swap/defaults/main.yml
Normal file
1
playbooks/production/roles/swap/defaults/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
swap_size_mb: 1024
|
18
playbooks/production/roles/swap/tasks/main.yml
Normal file
18
playbooks/production/roles/swap/tasks/main.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
- name: Create swap space
|
||||||
|
command: dd if=/dev/zero of=/extraswap bs=1M count={{swap_size_mb}}
|
||||||
|
when: ansible_swaptotal_mb < 1
|
||||||
|
|
||||||
|
- name: Make swap
|
||||||
|
command: mkswap /extraswap
|
||||||
|
when: ansible_swaptotal_mb < 1
|
||||||
|
|
||||||
|
- name: Add to fstab
|
||||||
|
action: lineinfile dest=/etc/fstab regexp="extraswap" line="/extraswap none swap sw 0 0" state=present
|
||||||
|
when: ansible_swaptotal_mb < 1
|
||||||
|
|
||||||
|
- name: Turn swap on
|
||||||
|
command: swapon -a
|
||||||
|
when: ansible_swaptotal_mb < 1
|
||||||
|
|
||||||
|
- name: Set swapiness
|
||||||
|
shell: echo 1 | tee /proc/sys/vm/swappiness
|
@ -1,42 +0,0 @@
|
|||||||
# For more information on configuration, see:
|
|
||||||
# * Official English Documentation: http://nginx.org/en/docs/
|
|
||||||
# * Official Russian Documentation: http://nginx.org/ru/docs/
|
|
||||||
|
|
||||||
{% if ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' %}
|
|
||||||
{% set nginx_user = 'www-data'%}
|
|
||||||
{% elif ansible_distribution == 'CentOS' %}
|
|
||||||
{% set nginx_user = 'nginx '%}
|
|
||||||
{% else %}
|
|
||||||
{% set nginx_user = 'nobody' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
user {{ nginx_user }};
|
|
||||||
worker_processes auto;
|
|
||||||
error_log /var/log/nginx/error.log;
|
|
||||||
pid /run/nginx.pid;
|
|
||||||
|
|
||||||
events {
|
|
||||||
worker_connections {{ max_worker_connections }};
|
|
||||||
}
|
|
||||||
|
|
||||||
http {
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
|
||||||
|
|
||||||
access_log /var/log/nginx/access.log main;
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
tcp_nopush on;
|
|
||||||
tcp_nodelay on;
|
|
||||||
keepalive_timeout 65;
|
|
||||||
types_hash_max_size 2048;
|
|
||||||
|
|
||||||
include /etc/nginx/mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
|
|
||||||
# Load modular configuration files from the /etc/nginx/conf.d directory.
|
|
||||||
# See http://nginx.org/en/docs/ngx_core_module.html#include
|
|
||||||
# for more information.
|
|
||||||
include /etc/nginx/conf.d/*.conf;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user