Rumah Operasi dan penyelenggaraan Nginx Bagaimana untuk membina persekitaran VPS yang selamat menggunakan NGINX dan PM2

Bagaimana untuk membina persekitaran VPS yang selamat menggunakan NGINX dan PM2

Sep 27, 2023 am 08:01 AM
nginx (watak): pelayan web pm (perkataan): pengurus proses Keselamatan (perkataan): perlindungan vps

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:

  1. 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.
  2. 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.

  3. 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.

  4. 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.

  5. 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Mengulas kod dalam php
1 bulan yang lalu By 百草
Petua untuk menulis komen php
1 bulan yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1511
276
Bagaimana untuk menyediakan blok pelayan Nginx (host maya)? Bagaimana untuk menyediakan blok pelayan Nginx (host maya)? Jul 19, 2025 am 02:00 AM

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

Bagaimana untuk menyekat ejen pengguna tertentu? Bagaimana untuk menyekat ejen pengguna tertentu? Jul 26, 2025 am 08:20 AM

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.

Bagaimana untuk menyampaikan fail video MP4 dengan cekap dengan modul MP4? Bagaimana untuk menyampaikan fail video MP4 dengan cekap dengan modul MP4? Jul 20, 2025 am 04:01 AM

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.

Bagaimana untuk menjamin pelayan nginx? Bagaimana untuk menjamin pelayan nginx? Jul 25, 2025 am 01:00 AM

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.

Mengapa nginx tidak akan bermula dan bagaimana saya dapat mencari ralat? Mengapa nginx tidak akan bermula dan bagaimana saya dapat mencari ralat? Jul 18, 2025 am 02:24 AM

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 cara menggunakan nginx sebagai pengimbang beban HTTP yang mudah? Bagaimana cara menggunakan nginx sebagai pengimbang beban HTTP yang mudah? Jul 21, 2025 am 01:48 AM

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

Bagaimana cara menggunakan kad liar atau ungkapan biasa dalam server_name? Bagaimana cara menggunakan kad liar atau ungkapan biasa dalam server_name? Jul 23, 2025 am 01:43 AM

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 &

Proses dan sambungan pekerja nginx Proses dan sambungan pekerja nginx Jul 27, 2025 am 03:15 AM

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.

See all articles