Heim Backend-Entwicklung PHP-Tutorial So stellen Sie statische Seiten mit Nginx bereit

So stellen Sie statische Seiten mit Nginx bereit

Jun 04, 2018 am 10:40 AM
nginx statisch

Dieser Artikel stellt hauptsächlich die Methode zur Verwendung von Nginx zum Bereitstellen statischer Seiten vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen Einführung

Nginx ist ein von Russen geschriebener sehr leichter HTTP-Server. Nginx, ausgesprochen als „Engine X“, ist ein leistungsstarker HTTP- und Reverse-Proxy. Der Server ist auch ein IMAP/POP3/SMTP-Proxyserver. Nginx wurde vom Russen Igor Sysoev für Russlands am zweithäufigsten besuchte Website Rambler.ru entwickelt und ist dort seit mehr als zweieinhalb Jahren aktiv. Igor Sysoev hat das Projekt unter der BSD-Lizenz erstellt.
Nginx verfügt als HTTP-Server über die folgenden Grundfunktionen:

Verarbeitung statischer Dateien, Indexdateien und automatische Indizierung;

  1. Cachelose Reverse-Proxy-Beschleunigung, einfacher Lastausgleich und Fehlertoleranz.

  2. FastCGI, einfacher Lastausgleich und Fehlertoleranz.

  3. Modularer Aufbau. Einschließlich Filter wie Gzipping, Bytebereiche, Chunked-Antworten und SSI-Filter. Wenn mehrere auf einer einzelnen Seite vorhandene SSIs von Fast CGI oder einem anderen Proxyserver verarbeitet werden, kann diese Verarbeitung parallel ablaufen, ohne aufeinander zu warten.

  4. Unterstützt SSL und TLSSNI.

  5. Das sind die Vorteile von Nginx: geringes Gewicht, hohe Leistung und starke Parallelitätsfähigkeiten. Es ist auch sehr praktisch, statische Seiten bereitzustellen.

  6. Diese hohe Leistung ist auf das Nginx-Framework zurückzuführen. Nach dem Start von Nginx gibt es einen Master-Prozess und mehrere Worker-Prozesse. Der Master-Prozess wird hauptsächlich zum Verwalten von Arbeitsprozessen verwendet, einschließlich: Empfangen von Signalen von der Außenwelt, Senden von Signalen an jeden Arbeitsprozess, Überwachen des Betriebsstatus des Arbeitsprozesses und automatischer Neustart eines neuen Arbeitsprozesses, wenn der Arbeitsprozess beendet wird (siehe unten). ungewöhnliche Umstände). Grundlegende Netzwerkereignisse werden im Arbeitsprozess verarbeitet. Mehrere Worker-Prozesse sind Peer-to-Peer. Sie konkurrieren gleichermaßen um Anfragen von Kunden und jeder Prozess ist unabhängig voneinander. Eine Anfrage kann nur in einem Arbeitsprozess verarbeitet werden, und ein Arbeitsprozess kann keine Anfragen von anderen Prozessen verarbeiten. Die Anzahl der Arbeitsprozesse kann im Allgemeinen so eingestellt werden, dass sie mit der Anzahl der CPU-Kerne der Maschine übereinstimmt. Dies hängt mit dem Prozessmodell und dem Ereignisverarbeitungsmodell von Nginx zusammen.

Warum Nginx wählen

Wenn es um Nginx geht, ist die erste Reaktion möglicherweise Reverse Proxy und Lastausgeglichen. Was ist also ein Reverse-Proxy und was ist Lastausgleich?

Reverse-Proxy

Verstehen Sie zunächst, was ein Forward-Proxy ist. Proxy, auch Netzwerk-Proxy genannt, ist ein spezieller Netzwerkdienst, der im Allgemeinen als Vermittler zwischen dem Client und dem Zielserver fungiert, die Anfrage des Clients empfängt und dann basierend auf der Anfrage des Clients die entsprechende Anfrage an den Zielserver initiiert .Anfrage: Rufen Sie die angegebene Ressource vom Zielserver ab und geben Sie sie an den Client zurück. Und der Proxyserver kann die Ressourcen des Zielservers in den lokalen Cache herunterladen. Wenn sich die Ressource, die der Client erhalten möchte, im Cache des Proxyservers befindet, initiiert der Proxyserver keine Anfrage an den Zielserver, sondern kehrt direkt zurück die zwischengespeicherte Ressource. Tatsächlich sind Proxy-Server sehr verbreitet. Beispielsweise verwenden einige wissenschaftliche Internet-Agenten, die aufgrund von GWF existieren, ausländische Server als Proxy-Server, um Domänennamen korrekt aufzulösen und so einen wissenschaftlichen Internetzugang zu erhalten. Proxyserver können auch die echte IP verbergen. Beispielsweise verwendet der berühmte Tor (Onion Router) mehrere Proxys und einige Verschlüsselungstechnologien, um eine anonyme Kommunikation zu erreichen.

Der Reverse-Proxy wird als Proxy auf der Serverseite verwendet, nicht auf der Clientseite. Das heißt, der Forward-Proxy ist ein Proxy für interne Netzwerkbenutzer, um auf die Verbindungsanforderung des Servers im Internet zuzugreifen. Der Reverse-Proxy verwendet den Proxyserver, um die Verbindungsanforderung im Internet anzunehmen, und leitet die Anforderung dann an den weiter Server im internen Netzwerk und überträgt die Anfrage von Server zu Server. Die erhaltenen Ergebnisse werden an den Client zurückgegeben, der eine Verbindung im Internet anfordert. Zu diesem Zeitpunkt erscheint der Proxyserver als Server nach außen.

Lastausgleich

Die Reverse-Proxy-Lastausgleichstechnologie leitet Verbindungsanfragen aus dem Internet dynamisch an mehrere Server im internen Netzwerk weiter. Jeder Server führt die Verarbeitung durch Lastausgleich erreichen.

Was für ein Zufall, Nginx hat alles geschafft

Nginx muss als hervorragender Proxyserver über Reverse-Proxy und Lastausgleich verfügen. Wenn Sie mehr über dieses Wissen und seine Verwendung erfahren möchten, lesen Sie bitte die Referenzmaterialien am Ende des Artikels: Nginx-Erste Schritte.

Nginx-Installation

Ich verwende den Tencent Cloud-Server, die Version ist: Ubuntu Server 14.04.1 LTS 32-Bit.

$ apt-get install nginx
Nach dem Login kopieren

Mac OS-System bezieht sich auf diesen Artikel: Nginx unter Mac OS X installieren

Nginx-Konfiguration

Konfigurieren Sie einfach die Nginx-Konfigurationsdatei, um diese Konfigurationen beim Starten von Nginx zu aktivieren. Dies ist auch der Schwerpunkt dieses Artikels.

Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,一般地,我们只需要配置主配置文件就行了。例如在我的服务器上是在:/etc/nginx/nginx.conf

指令上下文

nginx.conf 中的配置信息,根据其逻辑上的意义,对它们进行了分类,也就是分成了多个作用域,或者称之为配置指令上下文。不同的作用域含有一个或者多个配置项。

其中每个配置项由配置指令和指令参数构成,形成一个键值对,# 后面地为注释,理解起来也非常容易。

一般配置文件的结构和通用配置如下:

user www-data;  # 运行 nginx 的所属组和所有者
worker_processes 1;  # 开启一个 nginx 工作进程,一般 CPU 几核就写几
pid /run/nginx.pid;  # pid 路径

events {
    worker_connections 768;  # 一个进程能同时处理 768 个请求
    # multi_accept on;
}

# 与提供 http 服务相关的配置参数,一般默认配置就可以,主要配置在于 http 上下文里的 server 上下文
http {
    ##
    # Basic Settings
    ##

    ... 此处省略通用默认配置

    ##
    # Logging Settings
    ##
    ... 此处省略通用默认配置

    ##
    # Gzip Settings
    ##

    ... 此处省略通用默认配置

    ##
    # nginx-naxsi config
    ##

    ... 此处省略通用默认配置

    ##
    # nginx-passenger config
    ##

    ... 此处省略通用默认配置

    ##
    # Virtual Host Configs
    ##

    ... 此处省略通用默认配置

    # 此时,在此添加 server 上下文,开始配置一个域名,一个 server 配置段一般对应一个域名
    server {
        listen 80;        # 监听本机所有 ip 上的 80 端口
        server_name _;      # 域名:www.example.com 这里 "_" 代表获取匹配所有
        root /home/filename/;  # 站点根目录

        location / {       # 可有多个 location 用于配置路由地址
            try_files index.html =404;
        }
}

# 邮箱的配置,因为用不到,所以把这个 mail 上下文给注释掉
#mail {
#    # See sample authentication script at:
#    # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#    
#    # auth_http localhost/auth.php;
#    # pop3_capabilities "TOP" "USER";
#    # imap_capabilities "IMAP4rev1" "UIDPLUS";
#   
#    server {
#        listen   localhost:110;
#        protocol  pop3;
#        proxy    on;
#    }
#
#    server {
#        listen   localhost:143;
#        protocol  imap;
#        proxy    on;
#    }
#}
Nach dem Login kopieren

这里需要注意的是 http 上下文里的 server 上下文。

server {
    listen 80;        # 监听本机所有 ip 上的 80 端口
    server_name _;      # 域名:www.example.com 这里 "_" 代表获取匹配所有
    root /home/filename/;  # 站点根目录

    location / {       # 可有多个 location 用于配置路由地址
      try_files index.html =404;
    }
}
Nach dem Login kopieren

这里的 root 字段最好写在 location 字段的外边,防止出现无法加载 css、js 的情况。因为 css、js 的加载并不是自动的,nginx 无法执行,需要额外的配置来返回资源,所以,对于静态页面的部署,这样做是最为方便的。

这里对 root 作进一步解释,例如在服务器上有 /home/zhihu/ 目录,其下有 index.html 文件和 css/ 以及 img/ , root /home/zhihu/; 就将指定服务器加载资源时是在 /home/zhihu/ 下查找。

其次, location 后的匹配分多种,其各类匹配方式优先级也各不相同。这里列举一精确匹配例子:

server {
    listen 80;        
    server_name _;      
    root /home/zhihu/;  

    location = /zhihu {
      rewrite ^/.* / break;
      try_files index.html =404;
    }
}
Nach dem Login kopieren

此时,访问 www.example.com/zhihu 就会加载 zhihu.html 出来了。由于 location 的精确匹配,只有访问 www.example.com/zhihu 这个路由时才会正确响应,而且此时要通过 rewrite 正则匹配,把 /zhihu 解析替换成原来的 / 。关于更多 location 字段用法,可以在文章最后给出的参考资料中查看。

关于使用 nginx 部署静态页面,最简单便捷的配置方法

上面说了挺多关于配置的说明,下面推荐一种个人认为最为便捷的配置方法。(特此感谢 guyskk 学长的答疑解惑)

首先创建一个目录,例如: /home/ubuntu/website 然后在这个 website 文件夹下可以放置你需要部署的静态页面文件,例如 website 下我有 google、zhihu、fenghuang 这三个文件夹,其中 server 字段配置如下:

server {
    listen 80;
    server_name _;
    root /home/ubuntu/website;
    index index.html;
}
Nach dem Login kopieren

这里每个文件夹下面的静态页面文件名都是 index.html ,我以前有个很不好的习惯,比如 zhihu 页面就喜欢命名为 zhihu.html ,但就从前端来看,这也是不符合规范的。

这样配置的话,例如当你访问 www.showzeng.cn/google/ 时,nginx 就会去 website 目录下的 google 文件夹下寻找到 index.html 并把 google 页面返回,同理,访问 www.showzeng.cn/zhihu/ 时,会寻找到 zhihu 文件夹下的 index.html 并把 zhihu 页面返回。

而在 zhihu、google 、fenghuang 文件夹的同级目录上,再添加你的域名首页 index.html 时,访问 www.example.com 时就会返回了。

这里唯一美中不足的是,访问域名中 www.showzeng.cn/zhihu 末尾会自动加上 / ,在浏览器中按 F12 调试会发现 www.showzeng.cn/zhihu 为 301 状态码,因为 index.html 是在 zhihu/ 文件夹下,所以在搜索过程中会重定向到 www.showzeng.cn/zhihu/ ,起初我是接受不了的,那一 / 看起来太难受了,但是只要一想到要一个一个 location 字段去匹配,我一下子就接受了。不知道你怎么看,反正我是接受了。

Nginx 启动运行

$ sudo nginx -s reload
Nach dem Login kopieren

使用 reload 方法不用重启服务,直接重新加载配置文件,客户端感觉不到服务异常,实现平滑切换。当然你也可以重新启动 nginx 服务。

$ sudo service nginx restart
Nach dem Login kopieren

Nginx 停止运行

$ sudo nginx -s stop
Nach dem Login kopieren

相关推荐:

nginx应用:使用nginx进行负载均衡

使用nginx搭建高可用,高并发的wcf集群

Das obige ist der detaillierte Inhalt vonSo stellen Sie statische Seiten mit Nginx bereit. 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)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate 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 starten Sie Nginx unter Linux So starten Sie Nginx unter Linux Apr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

So lösen Sie Nginx403 -Fehler So lösen Sie Nginx403 -Fehler Apr 14, 2025 pm 12:54 PM

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So starten Sie den Nginx -Server So starten Sie den Nginx -Server Apr 14, 2025 pm 12:27 PM

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

Wie kann ich überprüfen, ob Nginx begonnen wird? Wie kann ich überprüfen, ob Nginx begonnen wird? Apr 14, 2025 pm 12:48 PM

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

So lösen Sie das Problem der Nginx Cross-Domain So lösen Sie das Problem der Nginx Cross-Domain Apr 14, 2025 am 10:15 AM

Es gibt zwei Möglichkeiten, das Problem mit dem Cross-Domain-Problem mit dem NGINX-Problem zu lösen: Änderungen der Cross-Domänen-Antwort-Header: Fügen Sie Anweisungen hinzu, um Cross-Domain-Anforderungen zu ermöglichen, zulässigen Methoden und Header anzugeben und die Cache-Zeit festzulegen. Verwenden Sie das CORS-Modul: Aktivieren Sie Module und konfigurieren Sie die CORS-Regeln, um Cross-Domain-Anforderungen, Methoden, Header und Cache-Zeit zu ermöglichen.

So lösen Sie Nginx403 So lösen Sie Nginx403 Apr 14, 2025 am 10:33 AM

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

See all articles