


Bagaimana untuk membina persekitaran VPS yang selamat menggunakan NGINX dan PM2
Cara menggunakan NGINX dan PM2 untuk membina persekitaran VPS yang selamat
Dengan populariti Internet, VPS (Virtual Private Server) telah menjadi pilihan popular untuk banyak tapak web dan persekitaran penggunaan pilihan aplikasi. Walau bagaimanapun, isu keselamatan menjadi semakin penting. Dalam artikel ini, kami akan membincangkan cara menggunakan NGINX dan PM2 untuk membina persekitaran VPS yang selamat dan menyediakan contoh kod khusus.
NGINX ialah pelayan proksi HTTP yang pantas dan berprestasi tinggi yang boleh membantu kami mencapai pengimbangan beban dan melindungi pelayan daripada serangan berniat jahat. PM2 ialah pengurus proses aplikasi Node.js moden yang boleh memastikan aplikasi Node.js kami sentiasa berjalan dengan stabil pada pelayan.
Berikut adalah langkah khusus untuk membina persekitaran VPS yang selamat:
- Pasang NGINX
Pertama, kita perlu memasang NGINX pada VPS. Untuk langkah pemasangan khusus, sila rujuk dokumentasi rasmi NGINX. Selepas pemasangan selesai, kami perlu mengkonfigurasi parameter keselamatan dengan mengedit fail konfigurasi NGINX. -
Mengkonfigurasi HTTPS
Protokol HTTPS memastikan komunikasi selamat antara tapak web dan aplikasi. Kami boleh melaksanakan HTTPS menggunakan sijil Let's Encrypt percuma. Pertama, kita perlu memasang alat Certbot dan memohon serta memperbaharui sijil melaluinya.sudo apt-get install certbot sudo certbot certonly --nginx
Arahan ini akan mengkonfigurasi sijil secara automatik menggunakan pemalam NGINX.
Mengkonfigurasi proksi songsang
Proksi terbalik boleh memberikan manfaat keselamatan dan prestasi tambahan. Kita boleh menggunakan NGINX sebagai pelayan proksi terbalik untuk memajukan permintaan kepada aplikasi Node.js yang dijalankan pada PM2. Berikut ialah contoh fail konfigurasi NGINX:server { listen 80; server_name example.com; location / { proxy_pass http://localhost:3000; # 此处的3000是Node.js应用程序的端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Fail konfigurasi ini memajukan semua permintaan daripada example.com ke aplikasi Node.js yang dijalankan pada localhost.
Konfigurasi Firewall
Firewall ialah bahagian penting dalam melindungi pelayan anda daripada serangan berniat jahat. Kita boleh menggunakan UFW (Uncomplicated Firewall) untuk mengkonfigurasi peraturan firewall.sudo ufw allow OpenSSH # 允许SSH访问 sudo ufw allow 'Nginx HTTP' # 允许HTTP访问 sudo ufw enable # 启用防火墙
Menggunakan arahan di atas, kami boleh membenarkan akses SSH dan HTTP serta membolehkan tembok api menapis dan menyekat sambungan buruk yang lain.
Gunakan PM2 untuk mengurus aplikasi Node.js
PM2 boleh memastikan bahawa aplikasi Node.js kami sentiasa berjalan dengan stabil pada pelayan dan dimulakan dan dipantau secara automatik apl. Berikut adalah contoh arahan untuk mengurus aplikasi menggunakan PM2:pm2 start app.js --name myapp # 启动应用程序 pm2 list # 查看当前运行的应用程序 pm2 restart myapp # 重启应用程序
PM2 menyediakan lebih banyak arahan dan ciri yang boleh diubah dan disesuaikan mengikut keperluan anda.
Melalui langkah di atas, kita boleh menggunakan NGINX dan PM2 untuk membina persekitaran VPS yang selamat. Sudah tentu, ini hanyalah contoh konfigurasi asas, anda boleh mengubah suai dan memperbaikinya mengikut keperluan khusus anda. Sila pastikan anda membaca dokumentasi yang berkaitan dengan teliti dan ikuti amalan keselamatan terbaik apabila menggunakannya.
Atas ialah kandungan terperinci Bagaimana untuk membina persekitaran VPS yang selamat menggunakan NGINX dan PM2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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)

TosetupannginxServerBlock, FirstUnderstRuctureUsureUsingTheserverdirectiveWithSettingsLikeListen, Server_name, andlocation; Next, createadirectoryStructureForeforeforeforeforeforeforyoursiteSuchas/var/www/example.com/htmlandSetPerpersmissions;

Untuk menyekat ejen pengguna tertentu, ia boleh dilaksanakan di Nginx, Apache, atau kod (seperti PHP, Python). 1. Dalam nginx, hakim $ http_user_agent oleh jika dan kembali 403; 2. Di Apache, gunakan setenvifnocase dan menafikan untuk menafikan akses; 3. Hakim pengguna-ejen dalam program dan memintas permintaan. UAS biasa yang perlu disekat termasuk python-requests, curl, kosong UA, dan lain-lain. Memilih kaedah yang sesuai dapat mengurangkan trafik sampah dan risiko keselamatan.

Untuk menyediakan fail video MP4 dengan cekap, anda perlu membolehkan permintaan pelbagai byte, mengoptimumkan struktur fail, pengekodan rasional dan pemampatan, dan mengadopsi caching strategik. Pertama, membolehkan permintaan Byte Range (menerima: bytes) untuk menyokong lompatan video, siaran terganggu dan aliran kadar bit adaptif; Kedua, gunakan alat seperti QT-FastStart untuk memindahkan atom Moov ke permulaan fail untuk mencapai bermain bawah; Ketiga, gunakan pengekodan H.264/H.265, dengan munasabah menetapkan kadar bit dan membolehkan pengekodan dua lulus untuk mengurangkan saiz fail sambil memastikan kualiti; Akhirnya, dengan menetapkan tajuk kawalan cache jangka panjang dan menggunakan CDN untuk caching tepi, mengurangkan beban pelayan dan meningkatkan kelajuan tindak balas.

Langkah -langkah utama untuk melindungi keselamatan pelayan Nginx termasuk: 1. Konfigurasi sambungan HTTPS yang disulitkan, gunakan Sijil Percuma Let'sEncrypt dan mengkonfigurasi secara automatiknya melalui CertBot, menubuhkan lompatan paksa dan suite penyulitan yang sesuai, dan membolehkan pembaharuan automatik; 2. Mengehadkan keizinan akses, melindungi laluan sensitif melalui kawalan IP dan pengesahan BasicAuth; 3. Matikan kebocoran maklumat, sembunyikan nombor versi, melarang pelayaran direktori, dan menyesuaikan halaman ralat untuk mengurangkan permukaan serangan.

Kegagalan Nginx untuk memulakan biasanya disebabkan oleh kesilapan konfigurasi, konflik pelabuhan, atau isu kebenaran. Mula-mula semak log ralat Nginx, gunakan arahan Sudotail-f/var/log/nginx/error.log untuk melihat maklumat ralat terkini dalam masa nyata; Kedua, uji sintaks fail konfigurasi, jalankan Sudonginx-T untuk memastikan tiada kesilapan sintaks; kemudian sahkan sama ada proses lain menduduki port 80 atau 443, dan gunakan Sudonetstat-Tulpn | grep ': 80 \ |: 443' untuk mengesan dan mengendalikan konflik; Akhirnya sahkan keizinan dan pemilikan fail untuk memastikan bahawa NGINX mempunyai kebenaran untuk mengakses direktori dan fail yang berkaitan.

Bagaimana untuk melaksanakan pengimbangan beban http menggunakan nginx? Jawapannya adalah seperti berikut: 1. Gunakan modul hulu untuk menentukan kumpulan pelayan backend dan hantar permintaan melalui proxy_pass di pelayan atau lokasi; 2. Pengundian sokongan, pengundian wajaran, sambungan minimum dan dasar hashing IP; 3. Anda boleh mengkonfigurasi, sandaran, fail_timeout dan max_fails parameter untuk meningkatkan kestabilan; 4. Selepas mengubah suai konfigurasi, laksanakan sintaks semak NGINX-T dan gunakan Nginx-Sreload untuk berkuatkuasa. Contohnya, struktur konfigurasi asas merangkumi tiga nod backend menggunakan pengundian untuk mengedarkan lalu lintas secara lalai, sementara pengundian berwajaran membolehkan peruntukan permintaan mengikut berat, paling tidak_conn akan menghantar permintaan tersebut

Apabila menggunakan server_name dalam nginx untuk memadankan pelbagai domain atau subdomain, ia boleh dicapai melalui wildcards dan ungkapan biasa. 1. Apabila menggunakan Wildcards, asterisk hanya boleh digunakan untuk permulaan atau berakhir, dan mesti menjadi sempadan label lengkap. Sebagai contoh, .example.com boleh memadankan subdomain peringkat pertama tetapi tidak termasuk domain akar atau subdomain pelbagai peringkat. Jika anda perlu memadankan kedua-dua domain akar dan subdomain peringkat pertama, ia harus ditulis sebagai example.com*.example.com; 2. Apabila menggunakan ungkapan biasa, anda mesti bermula dengan ~, seperti ~^\ w. (Dev | test) $ boleh memadankan nama domain yang berakhir dengan .dev atau .test, dan panggilan menangkap panggilan kumpulan; 3. Keutamaan yang sepadan adalah nama tepat> awalan wildcard terpanjang> akhiran wildcard terpanjang &

Tetapkan pekerja_processes ke auto (iaitu, bilangan teras CPU) untuk memanfaatkan sepenuhnya prestasi pelbagai teras; 2. Tetapkan Worker_Connections (seperti 1024 atau lebih tinggi) mengikut batasan deskriptor fail sistem dan trafik yang diharapkan untuk memastikan bahawa ULIMIT-N cukup besar; 3. Bilangan maksimum sambungan serentak = worker_processes × worker_connections, konfigurasi yang munasabah dapat menyokong ribuan kepada puluhan ribu sambungan, elakkan kesesakan, dan meningkatkan prestasi persekitaran pengeluaran nginx.
