Serviço Nginx (compilação e instalação-controle de acesso-host virtual) detalhado

1. Noções básicas de serviço Nginx

1.1, visão geral do Nginx

Nginx é um servidor proxy reverso e HTTP de alto desempenho, bem como um servidor proxy IMAP / POP3 / SMTP.
Nginx é um servidor web / servidor proxy reverso leve e um servidor proxy de e-mail, e é emitido sob um protocolo semelhante ao BSD. Desenvolvido pelo programador russo lgor Sysoev, é usado pelo portal de grande escala e pelo motor de busca Rambler da Rússia. Sua característica é que ele ocupa menos memória e tem forte concorrência.Na verdade, a concorrência do nginx tem um desempenho melhor no mesmo tipo de servidor web.
Comparado com o Apache \ lighttpd, o Nginx tem as vantagens de menos memória e maior estabilidade, e é conhecido por sua forte concorrência, rica biblioteca de módulos e configuração amigável e flexível. No sistema operacional Linux, o nginx usa o modelo de evento epoll, graças a isso o nginx é muito eficiente no sistema operacional Linux. Ao mesmo tempo, o Nginx usa um modelo de evento eficiente kqueue semelhante ao Epoll no sistema operacional OpenBSD ou FreeBSD. Um
software de serviço da Web leve e de alto desempenho,
alta estabilidade, baixo
consumo de recursos do sistema, alta
capacidade de processamento para conexões simultâneas HTTP e um
único servidor físico Suporta 30.000 ~ 50.000 solicitações simultâneas

1.2. Compilar e instalar o Nginx

1.2.1, etapas de compilação e instalação

1. Monte a pasta compartilhada do host e leia o arquivo de origem baixado

2. Descompacte o pacote de componentes de plataforma cruzada e o pacote de código-fonte
Mova o pacote de componentes de plataforma cruzada para o diretório do pacote de origem

3. Instale o compilador e outras ferramentas

yum -y install gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel \
pcre

4. configurar a configuração

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

5. fazer compilar e instalar

6. Otimização de caminho

ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin	'//nginx命令执行路径优化'
useradd -M -s /sbin/nologin nginx

1.2.2, use o controle systemctl

vim /lib/systemd/system/nginx.service		'//添加使用systemctl工具进行管理'
[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

chmod 754 /lib/systemd/system/nginx.service

1.2.3, abra o nginx, feche o firewall

[root@localhost system]# chmod +754 nginx.service 
[root@localhost system]# systemctl start nginx.service 
[root@localhost system]# netstat -ntap |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5396/nginx: master  
tcp        0      0 192.168.197.192:56680   192.168.100.3:445       ESTABLISHED -                   
[root@localhost system]# systemctl stop firewalld.service 
[root@localhost system]# setenforce 0

Após a instalação, inicie o serviço, digite o IP no navegador, esta tela aparece e o serviço inicia com sucesso
Insira a descrição da imagem aqui

1.3, estatísticas de status de acesso do Nginx

Ginx tem um módulo de estatísticas de status http_stub_status integrado, que é usado para realimentar o acesso à Web atual. Ao configurar os parâmetros de compilação, você pode adicionar
–with-http_stub_status_module para habilitar o suporte a este módulo. Você pode usar o comando / usr / local / nginx / sbin / nginx -V para visualizar O nginx instalado inclui o módulo http_stub_status?
Para usar a função de estatísticas de status do nginx, além de habilitar o módulo integrado, você também precisa modificar o arquivo de configuração nginx.conf, especificar o local de acesso e adicionar o código de configuração stub_status

1.3.1, experimento estatístico

Modifique o arquivo de configuração nginx.conf

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
http{
    
    
	server {
    
    
		listen 80;
		server name localhost;
		charset utf-8;
		location / {
    
    
			root html;
			index index.html index.php;
        }
		location ~/status {
    
    		'//添加此段'
			stub_ status on;
			access_ log off;
        }
    }
}

Após a modificação, salve wq e use Nginx -t para verificar se há algum erro na sintaxe. Se não houver erro, atualize o arquivo de configuração
. Digite 20.0.0.25 na máquina real
Insira a descrição da imagem aqui

Dois, controle de acesso Nginx

2.1, controle de acesso baseado em autorização

Gerar arquivo de autenticação de senha de usuário

[root@localhost ~]# yum install -y httpd-tools	##因为没有htpasswd工具,所以需要安装##
[root@localhost ~]# htpasswd -c /usr/local/nginx/.passwd.db test
New password:
Re-type new password:
Adding password for user test
root@localhost ~]# cat /usr/local/nginx/.passwd.db
test:$apr1$x.UaSXIM$RRLa2KJcKwsGBVsikGcrR/

Modifique o arquivo de configuração principal para o diretório correspondente, adicione itens de configuração de autenticação

root@localhost ~]# chmod 400 /usr/local/nginx/.passwd.db
[root@localhost ~]# chown nginx /usr/local/nginx/.passwd.db

Reinicie o serviço, teste de acesso

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
	location / {
    
    
		auth_basic "secret";
		auth_basic_user_file /usr/local/nginx/.passwd.db;
	}
[root@localhost ~]# killall -s HUP nginx	

Digite 20.0.0.25 no navegador da máquina real e solicite a senha da conta. Após
Insira a descrição da imagem aqui
clicar em login, será exibido o welcome to nginx
Insira a descrição da imagem aqui

2.2. Controle de acesso baseado no cliente

Determine se deseja permitir o acesso à página por meio do endereço IP do cliente

Regras de configuração:
negar segmento IP / IP: negar acesso do cliente a um determinado IP ou segmento IP

permitir segmento IP / IP: permite 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

Etapas de configuração:
modifique o arquivo de configuração principal nginx.conf, adicione os itens de configuração correspondentes,
exceto o host 20.0.0.1 para permitir que outros clientes acessem

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
location / {
    
    
            Order deny,allow;
            Deny from 20.0.0.1;
        }
[root@localhost ~]# killall -s HUP nginx

Insira a descrição da imagem aqui

Três, host virtual Nginx

3.1, host virtual baseado no nome de domínio

Prepare o diretório do site e teste os arquivos

[root@localhost ~]# mkdir -p /var/www/html/51xit/
[root@localhost ~]# mkdir -p /var/www/html/52xit/
[root@localhost ~]# echo "www.51xit.top" >> /var/www/html/51xit/index.html
[root@localhost ~]# echo "www.52xit.top" >> /var/www/html/52xit/index.html
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
        listen       80;
        server_name  www.51xit.top;
        charset utf-8;
        access_log  logs/www.51xit.top.access.log;
       location / {
    
    
            root /var/www/html/51xit;
            index  index.html index.htm;
        }
        location /status {
    
    
            stub_status on;
            access_log off;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
server {
    
    
        listen       80;
        server_name  www.52xit.top;
        charset utf-8;
        access_log  logs/www.52xit.top.access.log;
       location / {
    
    
            root /var/www/html/52xit;
            index  index.html index.htm;
        }
        location /status {
    
    
            stub_status on;
            access_log off;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
[root@localhost ~]# killall -s HUP nginx

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

3.2. Host virtual baseado em IP

O host está configurado com dois endereços IP

Modifique o arquivo de configuração

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
	listen	20.0.0.25:80;
	server name 20.0.0.25:80;
	....}
server {
    
    
	listen	192.168.100.25:80;
	server name 192.168.100.25:80;
	....}
[root@localhost ~]# killall -s HUP nginx

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

3.3, host virtual baseado em porta

Modifique o arquivo de configuração

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
	listen	20.0.0.25:6666;
	server name 20.0.0.25:6666;
	......}
server {
    
    
	listen	20.0.0.25:8888;
	server name 20.0.0.25:8888;
	......}
[root@localhost ~]# killall -s HUP nginx

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_48191211/article/details/108516987
Recomendado
Clasificación