


Bagaimanakah Nginx boleh menggunakan beberapa tapak dengan cekap pada satu pelayan?
Mari kita lihat keperluan kita. Saya mempunyai tiga projek tapak web yang perlu digunakan (bersamaan dengan tiga nama domain secara bergilir-gilir Pelayan Linux disediakan untuk membolehkan akses kepada nama domain yang sepadan untuk melompat ke tapak web yang sepadan .
Mari kita lihat gambarajah seni bina yang saya reka untuk menyelesaikan masalah ini:
Di sini kita menganggap bahawa pelayan Linux dalam gambar adalah rangkaian awam IP ialah 192.168.2.100, dan kemudian diandaikan bahawa tiga tapak akan dibina pada pelayan ini: www.nginxtest.net, admin.nginxtest.net, app.nginxtest.net.
Baiklah, mari kita konfigurasikannya secara terperinci:
1 Konfigurasikan proksi terbalik nginx
Kami masih menyambung ke ssh dahulu, dan kemudian melaksanakan perkara berikut. operasi (biasanya tidak disyorkan untuk mengubah suai fail konfigurasi utama lalai nginx.conf, jadi kami mencipta fail konfigurasi pengimbangan beban baharu fxdl.conf untuk memastikan keselamatan pelayan, seperti berikut):
$ ssh root@192.168.2.100 //ssh连接 # cd /usr/local/nginx/conf # touch fxdl.conf //创建代理配置文件 # vi fxdl.conf //用vi编辑器打开文件,然后按键盘的i
Nota: Dalam vi editor, tekan i pada papan kekunci untuk memasukkan status sisipan, tekan esc untuk keluar dari status sisipan.
Kemudian masukkan kod konfigurasi berikut (sesuaikan bahagian nama domain kepada nama domain anda sendiri, dan buka bahagian komen seperti yang diperlukan):
#设置低权限用户,为了安全而设置的 user nobody; #工作衍生进程数 worker_processes 4; #设置错误文件存放路径 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #设置pid存放路径(pid是控制系统中重要文件) #pid logs/nginx.pid; #设置最大连接数 events{ worker_connections 1024; } http { #用来设置日志格式 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 /data/wwwlogs/access_nginx.log main; #开启高效文件传输模式 sendfile on; #防止网络阻塞 tcp_nopush on; #防止网络阻塞 tcp_nodelay on; #长连接超时时间,单位是秒 keepalive_timeout 65; #散列表的冲突率,默认1024,越大则内存消耗更多,但散列key的冲突率会降低,检索速度就更快 types_hash_max_size 2048; #文件扩展名与文件类型映射表 include /usr/local/nginx/conf/mime.types; #默认文件类型 default_type application/octet-stream; #include /etc/nginx/conf.d/*.conf; #主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询 upstream tomcat_client { server localhost:8080; } #开启gzip压缩,开启后,访问网页会自动压缩 #gzip on; #指定服务器的名称和参数 server { listen 80; server_name app.nginxtest.net; location / { proxy_pass http://tomcat_client; proxy_redirect default; #设置代理 proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; } } server { listen 80; server_name admin.nginxtest.net; location / { proxy_pass http://tomcat_client; proxy_redirect default; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; } } server { listen 80; server_name www.nginxtest.net; location / { proxy_pass http://tomcat_client; proxy_redirect default; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; } location = / { #判断是否为手机移动端 if ($http_user_agent ~* '(iphone|ipod|ipad|android|windows phone|mobile|nokia)') { rewrite . http://www.nginxtest.net/phone break; } rewrite . http://www.nginxtest.net/pc break; } } }
Baiklah, semudah itu, proksi terbalik nginx dikonfigurasikan. Turun dan konfigurasikan tomcat:
2 Konfigurasikan tomcat untuk menggunakan berbilang tapak
$ ssh root@192.168.2.100 //ssh连接 # cd /usr/local/tomcat # cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml_bk //备份server.xml原文件 # vi server.xml //用vi编辑器打开文件,然后按键盘的i
Kami mengedit server.xml dan menambah nod hos berikut di bawah nod enjin (the. nama domain dan nama domain dalam nod Direktori projek tapak perlu disesuaikan dan diubah suai kepada anda sendiri):
<host name="www.nginxtest.net" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="/" docbase="/data/wwwroot/www.nginxtest.net/webcontent" reloadable="true"/> </host> <host name="admin.nginxtest.net" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="/" docbase="/data/wwwroot/admin.nginxtest.net/webcontent" reloadable="true"/> </host> <host name="app.nginxtest.net" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="/" docbase="/data/wwwroot/app.nginxtest.net/webcontent" reloadable="true"/> </host>
Nota: Jika anda ingin mengakses terus IP rangkaian awam tanpa kesan halaman web, padamkan
<host name="localhost" ..>..</host>
di bawah nod enjin .
Selepas melengkapkan input, tekan esc, dan kemudian masukkan:
:wq!
untuk menyimpan dan keluar dari fail konfigurasi. Pada ketika ini, tomcat juga dikonfigurasikan.
Seterusnya kami boleh meletakkan berbilang kod projek tapak kami di bawah /data/wwwroot/. Kemudian mulakan nginx dan tomcat.
Kini anda boleh mencubanya dan mengakses nama domain peringkat kedua www.nginxtest.net, admin.nginxtest.net, app.nginxtest.net masing-masing Kami mendapati bahawa kami boleh melompat ke tapak yang sepadan tapak ( Jika anda menggunakan pelayan untuk setiap tapak, anda akan melihat kesan yang sama).
Atas ialah kandungan terperinci Bagaimanakah Nginx boleh menggunakan beberapa tapak dengan cekap pada satu pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara mengkonfigurasi nama domain Nginx pada pelayan awan: Buat rekod yang menunjuk ke alamat IP awam pelayan awan. Tambah blok hos maya dalam fail konfigurasi Nginx, menyatakan port pendengaran, nama domain, dan direktori akar laman web. Mulakan semula nginx untuk memohon perubahan. Akses konfigurasi ujian nama domain. Nota Lain: Pasang sijil SSL untuk membolehkan HTTPS, pastikan firewall membenarkan trafik port 80, dan tunggu resolusi DNS berkuatkuasa.

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Kaedah yang boleh menanyakan versi nginx adalah: gunakan perintah nginx -v; Lihat arahan versi dalam fail nginx.conf; Buka halaman ralat Nginx dan lihat tajuk halaman.

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Docker Container Startup Langkah: Tarik Imej Bekas: Run "Docker Pull [Mirror Name]". Buat bekas: Gunakan "Docker Buat [Pilihan] [Nama Mirror] [Perintah dan Parameter]". Mulakan bekas: Jalankan "Docker Start [Nama Container atau ID]". Semak Status Kontena: Sahkan bahawa bekas sedang berjalan dengan "Docker PS".

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Buat bekas di Docker: 1. Tarik Imej: Docker Pull [Nama Cermin] 2. Buat bekas: Docker Run [Options] [Mirror Name] [Command] 3. Mulailah bekas: Docker Start [Nama Container]
