Serviço do site Nginx
Uma base de serviço nginx
1.1 Visão geral do nginx
Nginx é um servidor web / servidor proxy reverso leve e servidor proxy de e-mail (IMAP / POP3), lançado sob o protocolo semelhante ao BSD. Suas características são que ele ocupa menos memória e tem fortes recursos de simultaneidade. Na verdade, os recursos de simultaneidade do nginx têm melhor desempenho no mesmo tipo de servidor da Web. Os usuários da China continental de sites nginx incluem: Baidu, JD, Sina, NetEase, Tencent, Taobao, etc.
vantagem
No caso de alta simultaneidade de conexões, o Nginx é uma boa alternativa aos serviços do Apache: o Nginx nos Estados Unidos é uma das plataformas de software que os chefes que fazem negócios de hospedagem virtual costumam escolher. Ele pode suportar respostas de até 50.000 conexões simultâneas. Obrigado Nginx por escolher epoll e kqueue como o modelo de desenvolvimento para nós.
1.2 etapas de instalação do nginx
Desligue e desative o firewall primeiro
systemctl stop firewalld
systemctl disabled firewalld
Copie o pacote de software nginx para o diretório / opt,
descompacte e instale o nginx
cd /opt
tar xzvf nginx-1.15.9.tar.gz
useradd -M -s /bin/nologin nginx #创建运行用户、组
Instale o software de suporte, compile e instale
yum -y install gcc gcc-c++ make pcre-devel zlib-devel
cd nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module #开启stub_status状态统计模块
make && make install
1.3 otimização nginx
Otimização de caminho
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx
Iniciar, reconfigurar, parar o nginx
nginx ## 启动 Nginx
netstat -anpt |grep nginx ## 过滤Nginx的进程
yum -y install psmisc ###最小安装没有killall令需要安装
killall -s HUP nginx ## 重载Nginx配置文件(相当于刷新)
killall -s QUIT nginx ## 退出 Nginx
Adicionar serviço do sistema
Método um:
vi /lib/systemd/system/nginx.service
编辑模式
[Unit]
Description=nginx ###描述
After=network.target ####描述服务类别
[Service]
Type=forking ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID #根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID #根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target #最小安装方式适用
:wq保存退出
chmod 754 /lib/systemd/system/nginx.service
systemctl enable nginx.service
systemctl start nginx
Método Dois
[root@localhost ~]# cd /etc/inid.d #添加使用service工具进行管理
[root@localhost init.d]# ls
[root@localhost init.d]# vim nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@localhost init.d]# chmod +x nginx
[root@localhost init.d]# chkconfig --add nginx
[root@localhost init.d]# chkconfig --level 35 nginx on
Neste ponto, após o firewall ser fechado e o serviço nginx aberto, o acesso é bem-sucedido
1.4 Estatísticas de status de acesso
Ativar módulo de estatísticas de status HTTP_ STUB_ STATUS Ao
configurar os parâmetros de compilação, participe de –with-http_stub_status_module
nginx -V para verificar se o Nginx instalado contém módulo HTTP_STUB_STATUS
Modifique o arquivo de configuração /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {
root html;
index index.html index.htm;
}
添加如下内容
location /status {
stub_status on;
access_log off;
}
:wq保存退出
systemctl restart nginx
As conexões ativas indicam o número atual de conexões ativas que o
servidor aceita solicitações tratadas indica as informações de conexão que foram processadas
1 1 1 indica:
o número de conexões processadas 1, o número de handshakes TCP bem-sucedidos 1, o número de solicitações processadas 1
Dois controles de acesso Nginx
2.1 Controle de acesso baseado em autorização
yum -y install httpd-tools
创建用户test并设置密码
htpasswd -c /usr/local/nginx/passwd.db test
New password:
Re-type new password:
查看密码(已加密)
cat /usr/local/nginx/passwd.db
修改文件权限为只读
chmod 400 /usr/local/nginx/passwd.db
将所有者修改为 nginx ,设置nginx的运行用户能够读取
chown nginx /usr/local/nginx/passwd.db
ll -d /usr/local/nginx/passwd.db
修改主配置文件nginx.conf,对相应目录添加认证配置项
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {
root html;
index index.html index.htm;
#添加如下两行
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
}
[root@localhost ~]# nginx -t #检测语法
[root@localhost ~]# systemctl restart nginx
Digite o nome de usuário e a senha para fazer o login com sucesso
2.2 Controle de acesso baseado no cliente
Regras de configuração
negar segmento IP / IP: negar acesso do cliente a um determinado IP ou segmento IP
permitir segmento IP / IP: permitir o acesso do cliente de um determinado IP ou segmento IP
A regra é executada de cima para baixo, se corresponder, parará e não corresponderá mais
Nota
Negar e permitir são apenas negar / permitir relacionamentos
配置步骤
修改主配置文件nginx.conf,添加相应配置项,除主机20.0.0.1之外允许其他客户端访问
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {
root html;
index index.html index.htm;
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
deny 20.0.0.1;
allow all;
}
[root@localhost ~]# systemctl restart nginx
Três hosts virtuais nginx
Com a hospedagem virtual, não há necessidade de fornecer um servidor Nginx separado ou executar um grupo de processos Nginx separadamente para cada site em execução. A hospedagem virtual oferece a função de executar vários sites no mesmo servidor e o mesmo grupo de processos Nginx.
3.1 Hospedagem virtual baseada no nome de domínio
1.修改Windows客户机的C:\Windows\System32\drivers\etc/hosts文件
20.0.0.11 www.61ser.top www.51ser.top
2.准备各个网站的目录和测试首页
mkdir -p /var/www/html/61ser/
mkdir -p /var/www/html/51ser/
echo "www.61ser.top" >> /var/www/html/61ser/index.html
echo "www.51ser.top" >> /var/www/html/51ser/index.html
3.修改配置文件,把配置文件中的server{}代码段全部去掉,加入2个新的server{}段,对应2个域名
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.61ser.top;
charset utf-8;
access_log logs/www.61ser.top.access.log;
location / {
root /var/www/html/61ser;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
server {
listen 80;
server_name www.51ser.top;
charset utf-8;
access_log logs/www.51ser.top.access.log;
location / {
root /var/www/html/51ser;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
systemctl restart nginx
测试
www.61ser.top
www.51ser.top
3.2 hospedagem virtual baseada em IP
Adicionar placa de rede virtual
Modificar UUID
Modificar endereço IP: 192.168.100.11
Modificar gateway: 192.168.100.1
Para a operação específica de adicionar uma placa de rede, consulte este blog: Portal: configurações básicas da placa de rede Linux e comandos comuns para teste de rede
主机配置两个IP地址
vim /usr/local/nginx/conf/nginx.conf
server {
listen 20.0.0.11:80;
server_name 20.0.0.11:80;
}
server {
listen 192.168.100.11:80;
server_name 192.168.100.11:80;
}
[root@localhost ~]# systemctl restart nginx
3.3 Hospedagem web virtual baseada em porta
vim /usr/local/nginx/conf/nginx.conf
server {
listen 20.0.0.11:666;
server_name 20.0.0.11:666;
}
server {
listen 20.0.0.11:888;
server_name 20.0.0.11:888;
}
[root@localhost ~]# systemctl restart nginx