Inhaltsverzeichnis
1. Nginx
nginx-Anwendungsszenarien
2. Nginx-Dienstkonstruktion
1. Verwenden Sie apt, um
2 zu installieren :
3, starten und den Effekt überprüfen
: Die Konfiguration wirkt sich auf Nginx aus globale Anweisungen. Im Allgemeinen gibt es eine Benutzergruppe zum Ausführen des Nginx-Servers, des Nginx-Prozess-PID-Speicherpfads, des Protokollspeicherpfads, der Einführung der Konfigurationsdatei, der Anzahl der Arbeitsprozesse, die generiert werden dürfen usw.
3、负载均衡配置
4、虚拟主机配置
Heim Betrieb und Instandhaltung Nginx So erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu

So erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu

May 19, 2023 pm 05:47 PM
nginx ubuntu

1. Nginx

Nginx („Engine x“) ist ein leistungsstarker Web- und Reverse-Proxy-Server, der vom russischen Programmierer Igor Sysoev entwickelt wurde. Er ist auch ein IMAP/POP3/SMTP-Proxy-Server.

Einer der drei großen WEB-Server: Apache, Nginx, Lighttpd. Nginx ist eine gute Alternative und eignet sich besser als der Apache-Server, wenn Sie viele gleichzeitige Verbindungen verarbeiten müssen.

nginx-Anwendungsszenarien

  • statischer Server. (Bild- und Videodienst) Ein weiterer ist lighttpd. Zehntausende gleichzeitiger Vorgänge, HTML, JS, CSS, FLV, JPG, GIF usw.

  • Dynamischer Dienst, Nginx-Fastcgi-Modus zum Ausführen von PHP, JSP. (PHP-Parallelität beträgt 500–1500, MySQL-Parallelität beträgt 300–1500).

  • Reverse-Proxy, Lastausgleich. Wenn der tägliche PV unter 2000 W liegt, können Sie Nginx direkt als Proxy verwenden.

  • Caching-Dienst. Ähnlich wie SQUID, LACK.

Die offizielle Website bietet drei Arten von Versionen:

Die offizielle Website von Nginx bietet drei Arten von Versionen.
Hauptversion: Mainline ist die Version, an der Nginx derzeit arbeitet. Man kann sagen, dass es sich um die Entwicklungsversion handelt.
Stabile Version : die neueste stabile Version, Produktionsumgebung. Die empfohlene Version ist
Legacy-Versionen: die stabile Version der alten Version

So erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu

2. Nginx-Dienstkonstruktion

1. Verwenden Sie apt, um

sudo apt install nginx
Nach dem Login kopieren

2 zu installieren :

  • /usr/ sbin/nginx: Hauptprogramm

  • /etc/nginx: Konfigurationsdateien speichern

  • /usr/share/nginx: Statische Dateien speichern

  • /var/log/nginx : Protokolle speichern

3, starten und den Effekt überprüfen

service nginx start  # 启动nginx
service nginx reload  # 重新加载nginx配置文件
Nach dem Login kopieren

Geben Sie Ihre IP-Adresse in den Browser ein. Wenn „Willkommen bei Nginx“ angezeigt wird, ist die Konfiguration erfolgreich.

Weitere zwei Befehle

So erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu

4. Überprüfen Sie die Versionsnummer:

nginx -s reopen            # 重启 Nginx
nginx -s stop              # 停止 Nginx
Nach dem Login kopieren

3. Einführung in die Nginx-Konfigurationsdatei

So erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu

Global block

: Die Konfiguration wirkt sich auf Nginx aus globale Anweisungen. Im Allgemeinen gibt es eine Benutzergruppe zum Ausführen des Nginx-Servers, des Nginx-Prozess-PID-Speicherpfads, des Protokollspeicherpfads, der Einführung der Konfigurationsdatei, der Anzahl der Arbeitsprozesse, die generiert werden dürfen usw.

  • Ereignisblock: Konfiguration, die sich auf den Nginx-Server oder die Netzwerkverbindung zum Benutzer auswirkt. Es gibt die maximale Anzahl von Verbindungen pro Prozess, welches ereignisgesteuerte Modell zur Verarbeitung von Verbindungsanforderungen ausgewählt werden soll, ob die gleichzeitige Annahme mehrerer Netzwerkverbindungen zugelassen werden soll, ob die Serialisierung mehrerer Netzwerkverbindungen aktiviert werden soll usw.

  • http-Block: Sie können mehrere Server verschachteln, Proxys, Caches, Protokolldefinitionen und andere Funktionen sowie Modulkonfigurationen von Drittanbietern konfigurieren. Wie Dateieinführung, Mime-Typ-Definition, Protokollanpassung, ob sendfile zum Übertragen von Dateien verwendet werden soll, Verbindungszeitlimit, Anzahl einzelner Verbindungsanforderungen usw.

  • Serverblock: Konfigurieren Sie die relevanten Parameter des virtuellen Hosts. Es können mehrere Server in einem http vorhanden sein.

  • Standortblock: Konfigurieren Sie die Weiterleitung von Anfragen und die Verarbeitung verschiedener Seiten.

  • ~$ nginx -v
     nginx version: nginx/1.14.0 (Ubuntu)
    Nach dem Login kopieren

    2. Standardkonfiguration

    ...              # 全局块。配置影响nginx全局的指令。
    
    events {         # events块。配置影响nginx服务器或与用户的网络连接。
       ...
    }
    
    http      # http块。可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
    {
        ...   # http全局块
        server        # server块。配置虚拟主机的相关参数,一个http中可以有多个server。 
        { 
            ...       # server全局块
            location [PATTERN]   # location块。配置请求的路由,以及各种页面的处理情况。
            {
                ...
            }
            location [PATTERN] 
            {
                ...
            }
        }
        server
        {
          ...
        }
        ...     # http全局块
    }
    Nach dem Login kopieren
    3. Nginx-Virtual-Host-Konfiguration

    ##
    # You should look at the following URL's in order to grasp a solid understanding
    # of Nginx configuration files in order to fully unleash the power of Nginx.
    # https://www.nginx.com/resources/wiki/start/
    # https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
    # https://wiki.debian.org/Nginx/DirectoryStructure
    #
    # In most cases, administrators will remove this file from sites-enabled/ and
    # leave it as reference inside of sites-available where it will continue to be
    # updated by the nginx packaging team.
    #
    # This file will automatically load configuration files provided by other
    # applications, such as Drupal or Wordpress. These applications will be made
    # available underneath a path with that package name, such as /drupal8.
    #
    # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
    ##
    
    # Default server configuration
    #
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;
    
        root /var/www/html;
    
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    
        server_name _;
    
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
        }
    
        # pass PHP scripts to FastCGI server
        #
        #location ~ \.php$ {
        #    include snippets/fastcgi-php.conf;
        #
        #    # With php-fpm (or other unix sockets):
        #    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #    # With php-cgi (or other tcp sockets):
        #    fastcgi_pass 127.0.0.1:9000;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny all;
        #}
    }
    
    
    # Virtual Host configuration for example.com
    #
    # You can move that to a different file under sites-available/ and symlink that
    # to sites-enabled/ to enable it.
    #
    #server {
    #    listen 80;
    #    listen [::]:80;
    #
    #    server_name example.com;
    #
    #    root /var/www/example.com;
    #    index index.html;
    #
    #    location / {
    #        try_files $uri $uri/ =404;
    #    }
    #}
    Nach dem Login kopieren
  • Verifizierungskonfigurationsdatei:
########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}
http {
    include       mime.types;   #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    #access_log off; #取消服务日志    
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
    access_log log/access.log myFormat;  #combined为日志格式的默认值
    sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
    keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。

    upstream mysvr {   
      server 127.0.0.1:7878;
      server 192.168.10.121:3333 backup;  #热备
    }
    error_page 404 https://www.baidu.com; #错误页
    server {
        keepalive_requests 120; #单连接请求上限次数。
        listen       80;   #监听端口
        server_name  127.0.0.1;   #监听地址       
        location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
           #root path;  #根目录
           #index vv.txt;  #设置默认页
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
           deny 127.0.0.1;  #拒绝的ip
           allow 172.18.5.54; #允许的ip           
        } 
    }
}
Nach dem Login kopieren

Um Kunden zu erfassen Für die IP-Adresse des Clients können Sie $remote_addr und $http_x_forwarded_for

verwenden.$remote_user: wird zum Aufzeichnen des Client-Benutzernamens verwendet

$request: wird verwendet, um die URL und das http-Protokoll der Anfrage aufzuzeichnen;
  • $status: wird verwendet, um den Anforderungsstatus aufzuzeichnen; Erfolg ist 200; die an den Client gesendete Datei;
  • $http_referer: Wird verwendet, um den Zugriff über diesen Seitenlink aufzuzeichnen;
  • #下面是server虚拟主机的配置段
     server
      {
        listen 80;#监听端口
        server_name localhost;#域名
        index index.html index.htm index.php;
        root /usr/local/webserver/nginx/html;#站点目录
          location ~ .*\.(php|php5)?$
        {
          #fastcgi_pass unix:/tmp/php-cgi.sock;
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          include fastcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
        {
          expires 30d;
        #access_log off;
        }
        location ~ .*\.(js|css)?$
        {
          expires 15d;
         #access_log off;
        }
        access_log off;
      }
    Nach dem Login kopieren

    . Nginx-Hauptkonfiguration
  • 1. Konfiguration des statischen HTTP-Servers

    Zuerst Nginx Es ist ein HTTP-Server, der dem Client über das HTTP-Protokoll statische Dateien (wie HTML und Bilder) auf dem Server anzeigen kann.
  • Konfiguration:
  • root@ubuntu: nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    Nach dem Login kopieren

    2. Reverse-Proxy-Server-Konfiguration

  • Was ist ein Reverse-Proxy?
  • Der Client kann über das HTTP-Protokoll direkt auf einen Website-Anwendungsserver zugreifen. Wenn der Website-Administrator in der Mitte einen Nginx hinzufügt, fordert Nginx den Anwendungsserver an und gibt das Ergebnis dann an den Client zurück. Nginx ist der Reverse-Proxy-Server.

  • Reverse-Proxy-Konfiguration:

    server {
        listen 80;
        location / {
            proxy_pass http://192.168.0.112:8080;   # 应用服务器HTTP地址
        }
    }
    Nach dem Login kopieren

    既然服务器可以直接HTTP访问,为什么要在中间加上一个反向代理,不是多此一举吗?反向代理有什么作用?继续往下看,下面的负载均衡、虚拟主机,都基于反向代理实现,当然反向代理的功能也不仅仅是这些。

    3、负载均衡配置

    当网站访问量非常大,也摊上事儿了。因为网站越来越慢,一台服务器已经不够用了。因此,可以将同一应用部署在多台服务器上,以将众多用户请求分配至多台机器进行处理。即使其中一台服务器故障,只要其他服务器正常运行,用户仍然可以正常使用,这是多台服务器带来的好处。Nginx可以通过反向代理来实现负载均衡。

    So erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu

    负载均衡配置:

    upstream myapp {
        server 192.168.0.111:8080;   # 应用服务器1
        server 192.168.0.112:8080;   # 应用服务器2
    }
    server {
        listen 80;
        location / {
            proxy_pass http://myweb;
        }
    }
    Nach dem Login kopieren

    4、虚拟主机配置

    有的网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。
    例如将www.aaa.com和www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

    虚拟主机配置:

    server {
        listen 80 default_server;
        server_name _;
        return 444;   # 过滤其他域名的请求,返回444状态码
    }
    server {
        listen 80;
        server_name www.aaa.com;   # www.aaa.com域名
        location / {
            proxy_pass http://localhost:8080;   # 对应端口号8080
        }
    }
    server {
        listen 80;
        server_name www.bbb.com;   # www.bbb.com域名
        location / {
            proxy_pass http://localhost:8081;   # 对应端口号8081
        }
    }
    Nach dem Login kopieren

    在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。

    虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,有兴趣的同学可以研究一下HTTP协议。

    另外,server_name配置还可以过滤有人恶意将某些域名指向你的主机服务器。

    Das obige ist der detaillierte Inhalt vonSo erstellen und konfigurieren Sie den Nginx-Dienst unter Ubuntu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server Apr 21, 2024 am 07:22 AM

Um dem Tomcat-Server den Zugriff auf das externe Netzwerk zu ermöglichen, müssen Sie Folgendes tun: Ändern Sie die Tomcat-Konfigurationsdatei, um externe Verbindungen zuzulassen. Fügen Sie eine Firewallregel hinzu, um den Zugriff auf den Tomcat-Server-Port zu ermöglichen. Erstellen Sie einen DNS-Eintrag, der den Domänennamen auf die öffentliche IP des Tomcat-Servers verweist. Optional: Verwenden Sie einen Reverse-Proxy, um Sicherheit und Leistung zu verbessern. Optional: Richten Sie HTTPS für mehr Sicherheit ein.

Android TV Box erhält inoffizielles Ubuntu 24.04-Upgrade Android TV Box erhält inoffizielles Ubuntu 24.04-Upgrade Sep 05, 2024 am 06:33 AM

Für viele Benutzer klingt das Hacken einer Android-TV-Box entmutigend. Allerdings stand Entwickler Murray R. Van Luyn während der Broadcom-Chipknappheit vor der Herausforderung, nach geeigneten Alternativen zum Raspberry Pi zu suchen. Seine Zusammenarbeit mit der Armbia

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Willkommen bei Nginx! Wie kann ich es lösen? Willkommen bei Nginx! Wie kann ich es lösen? Apr 17, 2024 am 05:12 AM

Um den Fehler „Willkommen bei Nginx!“ zu beheben, müssen Sie die Konfiguration des virtuellen Hosts überprüfen, den virtuellen Host aktivieren, Nginx neu laden. Wenn die Konfigurationsdatei des virtuellen Hosts nicht gefunden werden kann, erstellen Sie eine Standardseite und laden Sie Nginx neu. Anschließend wird die Fehlermeldung angezeigt verschwindet und die Website wird normal angezeigt.

So kommunizieren Sie zwischen Docker-Containern So kommunizieren Sie zwischen Docker-Containern Apr 07, 2024 pm 06:24 PM

In der Docker-Umgebung gibt es fünf Methoden für die Containerkommunikation: freigegebenes Netzwerk, Docker Compose, Netzwerk-Proxy, freigegebenes Volume und Nachrichtenwarteschlange. Wählen Sie abhängig von Ihren Isolations- und Sicherheitsanforderungen die am besten geeignete Kommunikationsmethode, z. B. die Nutzung von Docker Compose zur Vereinfachung von Verbindungen oder die Verwendung eines Netzwerk-Proxys zur Erhöhung der Isolation.

So stellen Sie das NodeJS-Projekt auf dem Server bereit So stellen Sie das NodeJS-Projekt auf dem Server bereit Apr 21, 2024 am 04:40 AM

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten

So generieren Sie eine URL aus einer HTML-Datei So generieren Sie eine URL aus einer HTML-Datei Apr 21, 2024 pm 12:57 PM

Für die Konvertierung einer HTML-Datei in eine URL ist ein Webserver erforderlich. Dazu sind die folgenden Schritte erforderlich: Besorgen Sie sich einen Webserver. Richten Sie einen Webserver ein. Laden Sie eine HTML-Datei hoch. Erstellen Sie einen Domainnamen. Leiten Sie die Anfrage weiter.

Was sind die häufigsten Anweisungen in einer Docker-Datei? Was sind die häufigsten Anweisungen in einer Docker-Datei? Apr 07, 2024 pm 07:21 PM

Die am häufigsten verwendeten Anweisungen in Dockerfile sind: FROM: Neues Image erstellen oder neues Image ableiten RUN: Befehle ausführen (Software installieren, System konfigurieren) COPY: Lokale Dateien in das Image kopieren ADD: Ähnlich wie COPY kann es automatisch dekomprimiert werden tar-Archive oder URL-Dateien abrufen CMD: Geben Sie den Befehl an, wenn der Container gestartet wird. EXPOSE: Deklarieren Sie den Container-Überwachungsport (aber nicht öffentlich). ENV: Legen Sie die Umgebungsvariable fest. VOLUME: Mounten Sie das Hostverzeichnis oder das anonyme Volume. WORKDIR: Legen Sie das Arbeitsverzeichnis im fest Container ENTRYPOINT: Geben Sie an, was beim Start des Containers ausgeführt werden soll. Ausführbare Datei (ähnlich wie CMD, kann aber nicht überschrieben werden)

See all articles