0 Equilibrio de carga
El balanceo de carga, basado en la arquitectura de red existente, se proporciona un método barato y eficaz y transparente 扩展网络设备
, y 服务器的带宽
, 增加吞吐量
, 加强网络数据处理能力
, 提高网络的灵活性和可用性
.
El balanceo de carga, el nombre de Inglés para Load Balance
su significado es evaluado para ser ejecutado en múltiples unidades operativas, tales como servidores web, servidores FTP, servidores de aplicaciones críticas de negocio y otros servidores de misión crítica, con el fin de trabajar juntos para completar la tarea.
1 Nginx
Nginx es un servidor proxy HTTP del servidor de alto rendimiento / servidor proxy inverso y el correo electrónico (IMAP / POP3). El programa desarrollado por el diseñador ruso Igor Sysoev, el nginx oficial de pruebas 能够 支撑 5 万并发链接
, y cpu
, 内存
etc 资源消耗却非常低
, 运行非常稳定
.
China continental utilizar usuarios del sitio web nginx son: Sina, Netease, Tencent y así sucesivamente.
Nginx es una 轻量级和高性能的 Web 服务器
y 反向代理服务器
que ha tenido una gran cantidad de características muy superiores:
作为 Web 服务器
: En comparación con Apache, Nginx usar menos recursos para soportar conexiones concurrentes más, lo que refleja una mayor eficiencia, especialmente en este punto la web Nginx proveedor de alojamiento de bienvenida. En respuesta capaz de soportar hasta 50.000 conexiones simultáneas, gracias a Nginx elegimos epoll y kqueue como modelo de desarrollo para nosotros.作为负载均衡服务器
: Nginx o bien apoyan directamente Rails y PHP internamente, también puede apoyar como un servidor proxy HTTP en el servicio exterior. Nginx está escrito en C, independientemente de la eficiencia en el consumo de recursos del sistema o CPU es mucho mejor que Perlbal.作为邮件代理服务器
: Nginx es también un servidor proxy de correo muy bueno (uno de los primeros finalidad es el desarrollo de este producto como un servidor proxy de correo), Last.fm describe una experiencia exitosa y maravillosa.
instalación Nginx es un archivo muy simple, muy simple de configuración (también es compatible con la sintaxis de Perl), insectos muy poco servidor: inicia Nginx son particularmente vulnerables, y se puede hacer casi 7 * 24 de funcionamiento ininterrumpido, aunque unos pocos meses no tienen que correr de nuevo comenzar. También puede hacer 不间断服务的情况下进行软件版本的升级
.
Nginx siete equilibrio general de la carga de usuarios, el rendimiento de ciertas restricciones.
Para aumentar el rendimiento global será presentado entre el DNS y Nginx LVS (software equilibrador de carga), el F5 (equilibrador de carga duro) pueden hacer cuatro balanceo de carga, la resolución de DNS es el primero en LVS (F5), y LVS (F5 ) remitido a Nginx, y luego enviado al servidor real Nginx.
2 Windows
InstalaciónNginx
Página oficial: http://nginx.org/
1, Descargas:
2. Descomprimir el archivo descargado:
3, de inicio:
- Método 1:
Haga doble clic en:nginx.exe
- Segunda manera:
PS E:\dev\nginx-1.16.1> start nginx
Si se inicia Nginx tiene éxito, el registro de errores no debe ser contenido, de lo contrario habrá mensaje de error:
4, parada
./nginx.exe -s stop
3 MAC
InstalaciónNginx
3.1 Herramientas de instalación
homebrew (no se utiliza pequeños amigos pueden señalar enlace o para averiguar acerca de sus propias Baidu)
paso 3.2
1, abrir el terminal, introduzca el comando:
brew update
2, el terminal continúa ejecutando el comando:
查询要安装的软件是否存在
brew search nginx
3, donde llevamos a cabo varios pasos "pérdida" de comandos, pero nos ayudará la siguiente configuración:
brew info nginx
El resultado:
Podemos ver, nginx
que no se ha instalado localmente ( Not installed
), nginx
fuente ( From
), Docroot
de manera predeterminada /usr/local/var/www
, el /usr/local/etc/nginx/nginx.conf
puerto por defecto se configura como el archivo de configuración de 8080
modo que nginx
no requiere tiempo de ejecución adicional sudo
, nginx
se /usr/local/etc/nginx/servers/
cargar todos los archivos en un directorio, y podemos el comando simple " nginx
para comenzar nginx
.
4, se inició la instalación:
brew install nginx
5, ver el directorio de instalación de Nginx (como si dicha información):
open /usr/local/etc/nginx/
Éxito abierto nginx
directorio también se puede ver como info
se ha mencionado servers目录
, y nginx.conf
los archivos de configuración (se utilizará más adelante en el archivo de configuración). Pero no hemos encontrado nginx
para ser instalado en el.
Terminal sigue:其实这个才是nginx被安装到的目录
open /usr/local/Cellar/nginx
Para ver una instalada actualmente nginx
número de versión para el nombre del archivo de la carpeta, esto es lo que instalamos nginx
la raíz del asunto. Introduzca el 1.17.1/bin
directorio, verá nginx
el inicio archivos ejecutables.
Del mismo modo, en 1.17.1/
el directorio también podemos ver el nombre de la html
carpeta de acceso directo (por el momento, por lo que llamó), introduzca el directorio vamos a descubrir que está apuntando a /usr/local/var/www
la guía, nos vemos en la anterior info
información, se hace mención a Dcroot
()
6, comienza
nginx
, el comando siguiente terminal de entrada:
nginx
No hay error es el inicio con éxito.
7, la autenticación de acceso:
Si la pantalla normal:
Los siguientes son excepciones:
Abrir un navegador para el acceso localhost:8080
, aquí con algunos tutoriales en línea será algo diferente, en circunstancias normales, este paso será capaz de ver nginx
la pantalla de bienvenida, pero los bloggers se han encontrado con el padre situación foso (si normalmente puede ver la nginx
pantalla de bienvenida puede omitir este paso).
Sin duda, todo el mundo está familiarizado con este error, no voy a hacer más para explicar, a continuación, dirigir esa razón (la razón es sólo una especulación, porque no hay manera de verificar): instalado nginx
por defecto en html
(que es /usr/local/var/www
) guía para generar un archivo de página de bienvenida , la aparición de esta situación está por encima del archivo de página de bienvenida no se genera (de por qué hay generación no se conoce, todo es especulación).
Antes de que solucionan este problema, primer vistazo a nginx
la barra de perfil ( nginx.conf
):
cat /usr/local/etc/nginx/nginx.conf
Código muestra el archivo de configuración es:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
#侦听8080端口
listen 8080;
#定义使用 localhost访问
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#定义服务器的默认网站根目录位置
root html;
#定义首页索引文件的名称
index index.html index.htm;
}
...
...
... (注释代码太多,就不全部贴出来了)
include servers/*;
}
Por perfiles, podemos ver que el directorio raíz web por defecto html
(que es /usr/local/var/www
), y el archivo de índice predeterminado index.html
y index.htm
, en este para encontrar la causa, y que estábamos menos la raíz de los archivos de índice de Interior, a continuación, crear manualmente una que:
cd /usr/local/var/www/ //进入到www目录下
touch index.html //创建一个新的index.html文件
vim index.html //编辑该文件
El código siguiente se escribe index.html
archivo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
</head>
<body>
<div>
<h1>我的nginx欢迎页面</h1>
</div>
</body>
</html>
Pulse el esc
botón para entrar en :wq
el lanzamiento editar y guardar (esto creo que lo hará, pero aún así escribir en el trastorno obsesivo-compulsivo).
De vuelta al navegador ( localhost:8080
) Actualizar:
4 Linux
InstalaciónNginx
Página oficial: http://nginx.org/
4.1 Preparación del Medio Ambiente
CentOS7
Desactivar el firewall:
systemctl stop firewalld # 临时关闭
systemctl disable firewalld # 禁止开机启动
1. Instalar
gcc
gcc-c++
yum install -y gcc gcc-c++
2. Instalar
wget
yum -y install wget
3. Instalar la
PCRE
biblioteca
yum install -y pcre pcre-devel
5. Instalar
SSL
la biblioteca
yum install -y openssl openssl-devel
6. Instalación de
zlib
Inventario
yum install -y zlib zlib-devel
4.2 Instalación Nginx
cd /usr/local/
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
make && make install
Nota: recopilado
nginx
en/usr/local/nginx/
la siguiente
[root@docker nginx-1.16.1]# cd /usr/local/nginx/
[root@docker nginx]# ll
total 4
drwxr-xr-x. 2 root root 4096 Dec 7 23:59 conf # 配置文件
drwxr-xr-x. 2 root root 40 Dec 7 23:59 html # 根目录欢迎页
drwxr-xr-x. 2 root root 19 Dec 7 23:59 sbin # nginx 启动命令
[root@docker nginx]#
4.3 inicio Nginx
cd /usr/local/nginx/sbin/
./nginx
[root@docker ~]# cd /usr/local/nginx/sbin/
[root@docker sbin]# ./nginx
nginx: [emerg] mkdir() "/var/temp/nginx/client" failed (2: No such file or directory)
[root@docker sbin]#
Nota: Antes de comenzar nginx, en la parte superior del directorio de archivos temporales se especifica
/var/temp/nginx
, es necesario/var
en virtud de la creacióntemp
y elnginx
directorio
[root@localhost sbin]# mkdir /var/temp/nginx/client -p
iniciar
nginx
:
./nginx
Ver proceso:
ps aux | grep nginx
[root@docker sbin]# ps aux | grep nginx
root 4382 0.0 0.0 20556 616 ? Ss 00:06 0:00 nginx: master process ./nginx
nobody 4383 0.0 0.0 21008 1344 ? S 00:06 0:00 nginx: worker process
root 4386 0.0 0.0 112708 976 pts/0 S+ 00:07 0:00 grep --color=auto nginx
[root@docker sbin]#
ps aux
: Ver todos los procesosgrep nginx
: Filtrado de nginx
Cerrar manera de matar el proceso
nginx
kill -9 4382
Cerrar nginx:
[root @ localhost sbin] # ./nginx -s PARADA
Modo de empleo:
[root@localhost sbin]# ./nginx -s quit
Reiniciar
nginx
:
1, después de cerrar la primera apertura;
2, actualizar el archivo de configuración:
./nginx -s reload
[root@localhost sbin]# ./nginx -s reload
acceso
nginx
El valor por defecto es de 80 puertos.
** Nota: ** si desea apagar el servidor de seguridad.
5 Nginx
escenarios
1HTTP 服务器
. Nginx es un servicio http http puede proporcionar servicios de forma independiente. Usted puede hacer un servidor de páginas web estáticas.
2虚拟主机
. Se puede lograr un múltiples sitios virtuales en un único servidor, como el sitio web personal a través de una máquina virtual.
3反向代理,负载均衡
. Cuando el tráfico del sitio alcanza un cierto nivel, un único servidor no puede satisfacer la petición del usuario, la necesidad de utilizar varios servidores de grupos se pueden utilizar para hacer nginx proxy inverso. Circunstancias y varios servidores pueden compartir el promedio de carga, la carga no debe ser alto tiempo de inactividad para un servidor y un servidor inactivo.
4, nginx también se puede configurar 安全管理
, por ejemplo, se puede utilizar para construir Nginx gateway interfaz API para interceptar cada uno servicios de interfaz.
6 Nginx
Estructura de directorios
Nginx-
|_ conf 配置目录
|_ contrib
|_ docs 文档目录
|_ logs 日志目录
|_ temp 临时文件目录
|_ html 静态页面目录
|_ nginx.exe 主程序
7 Nginx
recursos estáticos
El acceso a los recursos almacenados en la página HTML estática nginx