infraestrutura:eadnginx

Proxy HTTP Reverso

Virtual Private Server - VPS, hospedado no Cluster VMware localizado na sala de maquinas do Ponto de Presença da RNP/PoP-CE. Atua como proxy reverso e como primeiro nó do cluster php5-fpm na infraestrutura utilizada pela Diretoria de EaD.

Hostname: virtual.ifce.edu.br
IPv4: 200.129.11.242
OS: Ubuntu-14.04.1-LTS-amd64
Username: operador
Passwd: 1Password @ Dominios -> ifce.edu.br -> HP BladeSystem -> virtual
vCPU's: 8
RAM: 6GiB
HDD: 10GiB
nginx-1.4.6-1ubuntu3.1
nginx-common-1.4.6-1ubuntu3.1
nginx-extras-1.4.6-1ubuntu3.1
php-apc-4.0.2-2build1
php-pear-5.5.9+dfsg-1ubuntu4.7
php5-apcu-4.0.2-2build1
php5-cli-5.5.9+dfsg-1ubuntu4.7
php5-common-5.5.9+dfsg-1ubuntu4.7
php5-curl-5.5.9+dfsg-1ubuntu4.7
php5-dev-5.5.9+dfsg-1ubuntu4.7
php5-fpm-5.5.9+dfsg-1ubuntu4.7
php5-gd-5.5.9+dfsg-1ubuntu4.7
php5-imagick-3.1.2-1build1
php5-imap-5.4.6-0ubuntu5
php5-intl-5.5.9+dfsg-1ubuntu4.7
php5-json-1.3.2-2build1
php5-ldap-5.5.9+dfsg-1ubuntu4.7
php5-mcrypt-5.4.6-0ubuntu5
php5-memcache-3.0.8-4build1
php5-ming-1:0.4.5-1ubuntu5
php5-mysql-5.5.9+dfsg-1ubuntu4.7
php5-pgsql-5.5.9+dfsg-1ubuntu4.7
php5-ps-1.3.7-1ubuntu1
php5-pspell-5.5.9+dfsg-1ubuntu4.7
php5-readline-5.5.9+dfsg-1ubuntu4.7
php5-recode-5.5.9+dfsg-1ubuntu4.7
php5-snmp-5.5.9+dfsg-1ubuntu4.7
php5-sqlite-5.5.9+dfsg-1ubuntu4.7
php5-tidy-5.5.9+dfsg-1ubuntu4.7
php5-xmlrpc-5.5.9+dfsg-1ubuntu4.7
php5-xsl-5.5.9+dfsg-1ubuntu4.7
vim-2:7.4.052-1ubuntu3
nfs-common-1:1.2.8-6ubuntu1.1

Os pacotes referentes ao serviço de proxy reveço nginx, daemon php php5-fpm e cliente nfs podem ser instalado via apt-get:

operador@virtual:~$ sudo apt-get install php-apc php-pear php5-apcu php5-cli php5-common php5-curl php5-dev php5-fpm php5-gd php5-imagick php5-imap php5-intl php5-json php5-ldap php5-mcrypt php5-memcache php5-ming php5-mysql php5-pgsql php5-ps php5-pspell php5-readline php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl nfs-common vim nginx nginx-common nginx-extras

Os diretórios relevantes para o funcionamento do servicó são:

  • /var/moodledata - Arquivos submetidos pelos usuários para a o AVA, são escritos neste diretório, que por sua vez é montado via NFS;
  • /var/www/moodle - Arquivos fonte do AVA;
  • /var/www/logs - Arquivos de log;

Arquivos de configuração

  • Encontram-se no diretório /etc/fstab, os arquivos de configuração do ponto de montagem NFS;
  • Encontram-se no diretório /etc/nginx/, os arquivos de configuração do proxy reverso;
  • Encontram-se no diretório /etc/php5/, os arquivos de configuração do daemon php;
  • Encontram-se no diretório /var/www/moodle/, os arquivos de configuração do AVA;

Iniciando o serviço

Inicia-se o serviço do proxy reverso através do comando:

operador@virtual:~$ sudo service nginx start

Inicia-se o daemon do php através do comando:

operador@virtual:~$ sudo service php5-fpm start

Parando o serviço

Para-se o serviço do proxy reverso através do comando:

operador@virtual:~$ sudo service nginx stop

Para-se o daemon do php através do comando:

operador@virtual:~$ sudo service php5-fpm stop

Reiniciando o serviço

Reinicia-se o serviço do proxy reverso através do comando:

operador@virtual:~$ sudo service nginx restart

Reinicia-se o daemon do php através do comando:

operador@virtual:~$ sudo service php5-fpm restart

NGiNX

defaulf
server {
        listen 80;
        server_name virtual-novo.ifce.edu.br;
        access_log /var/www/logs/access.log;
        error_log /var/www/logs/error.log error;
        root /var/www/moodle;
        client_max_body_size 1G;
 
        location / {
                index index.php index.html index.htm;
                try_files $uri $uri/ /index.html;
        }
 
        location ~ \.php {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_param  PATH_INFO          $fastcgi_path_info;
                fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;
                fastcgi_param  QUERY_STRING       $query_string;
                fastcgi_param  REQUEST_METHOD     $request_method;
                fastcgi_param  CONTENT_TYPE       $content_type;
                fastcgi_param  CONTENT_LENGTH     $content_length;
                fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
                fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                fastcgi_param  REQUEST_URI        $request_uri;
                fastcgi_param  DOCUMENT_URI       $document_uri;
                fastcgi_param  DOCUMENT_ROOT      $document_root;
                fastcgi_param  SERVER_PROTOCOL    $server_protocol;
                fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                fastcgi_param  SERVER_SOFTWARE    nginx;
                fastcgi_param  REMOTE_ADDR        $remote_addr;
                fastcgi_param  REMOTE_PORT        $remote_port;
                fastcgi_param  SERVER_ADDR        $server_addr;
                fastcgi_param  SERVER_PORT        $server_port;
                fastcgi_param  SERVER_NAME        $server_name;
		fastcgi_read_timeout		  1800;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
}
}

php5-fpm

php-fpm.conf
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
 
[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
emergency_restart_threshold = 0
emergency_restart_interval = 0
 
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
include=/etc/php5/fpm/pool.d/*.conf

php5-fpm pool

www.conf
[virtual]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 70
pm.max_requests = 10000
pm.process_idle_timeout = 3600s
pm.max_requests = 100
request_terminate_timeout = 1800s
catch_workers_output = yes
chdir = /

php5

php.ini
[PHP]
 
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
disable_classes =
zend.enable_gc = On
 
;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;
expose_php = On
 
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
 
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
variables_order = "GPCS"
request_order = "GP"
register_globals = Off
register_long_arrays = Off
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 1G
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
 
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
doc_root =
user_dir =
enable_dl = Off
 
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
file_uploads = On
upload_tmp_dir = /tmp/
upload_max_filesize = 1000M
max_file_uploads = 100
 
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
 
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
 
[Date]
date.timezone = America/Fortaleza
 
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[Syslog]
define_syslog_variables  = Off
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[xsl]

Luca do Amaral Saboya 2015/03/23 17:48

  • infraestrutura/eadnginx.txt
  • Última modificação: 2021/08/25 10:33
  • (edição externa)