Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Amalan Terbaik: Panduan Penalaan Prestasi untuk Membina Pelayan Web pada CentOS

Amalan Terbaik: Panduan Penalaan Prestasi untuk Membina Pelayan Web pada CentOS

王林
王林asal
2023-08-04 12:17:041281semak imbas

Amalan Terbaik: Panduan Penalaan Prestasi untuk Membina Pelayan Web pada CentOS

Abstrak: Artikel ini bertujuan untuk menyediakan beberapa amalan terbaik penalaan prestasi untuk pengguna membina pelayan web pada CentOS, bertujuan untuk meningkatkan prestasi dan kelajuan tindak balas pelayan. Beberapa parameter penalaan utama dan kaedah pengoptimuman yang biasa digunakan akan diperkenalkan dan beberapa kod sampel akan disediakan untuk membantu pembaca memahami dan menggunakan kaedah ini dengan lebih baik.

1. Matikan perkhidmatan yang tidak diperlukan

Apabila membina pelayan web pada CentOS, beberapa perkhidmatan yang tidak diperlukan akan dimulakan secara lalai. Oleh itu, kita harus menutup perkhidmatan yang tidak diperlukan ini untuk membebaskan sumber.

Gunakan arahan berikut untuk menyenaraikan perkhidmatan yang sedang dijalankan:

systemctl list-units --type=service --state=running

Pilih untuk menutup perkhidmatan yang tidak diperlukan mengikut situasi sebenar, seperti mematikan perkhidmatan mel:

systemctl stop postfix
systemctl disable postfix

2. Laraskan parameter kernel

Mengoptimumkan parameter kernel ialah satu langkah penting untuk meningkatkan prestasi pelayan. Parameter kernel boleh dilaraskan dengan mengubah suai fail /etc/sysctl.conf. Berikut ialah beberapa penyelesaian penalaan parameter kernel yang biasa digunakan: /etc/sysctl.conf文件来调整内核参数。以下是一些常用的内核参数调优方案:

  1. 提高文件句柄数限制
# 增加系统最大文件句柄数
fs.file-max = 65535

# 增加每个进程可以打开的文件句柄数限制
ulimit -n 65535
  1. 提高TCP连接数限制
# 增加系统的最大并发TCP连接数
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_syn_backlog = 1024
net.core.somaxconn = 65535
  1. 消除群聊分片
# 消除群聊分片
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_dsack = 0
  1. 提高系统TCP缓冲区大小
# 提高TCP接收窗口缓冲区大小(单位:字节)
net.ipv4.tcp_rmem = 4096 87380 4194304

# 提高TCP发送窗口缓冲区大小(单位:字节)
net.ipv4.tcp_wmem = 4096 16384 4194304

# 提高系统的TCP连接跟踪表的大小
net.netfilter.nf_conntrack_max = 65536

修改完上述参数后,使用以下命令使其生效:

sysctl -p

三、使用高性能的web服务器

选择合适的web服务器也对性能有着重要的影响。在CentOS上,Nginx和Apache是比较常用的web服务器。

  1. Nginx

Nginx是一个高性能的HTTP和反向代理服务器,它使用异步非阻塞的事件驱动架构,可以轻松处理大流量的请求。

安装Nginx:

yum install nginx

配置Nginx:

编辑/etc/nginx/nginx.conf文件:

user www-data;
worker_processes auto;
worker_cpu_affinity auto;

events {
    worker_connections 1024;
    use epoll;
    multi_accept on;
}

http {
    # 配置HTTP服务器
    ...
}
  1. Apache

Apache是一个功能丰富且广泛使用的web服务器,虽然性能上稍逊于Nginx,但在某些特定的场景下仍然可以提供良好的性能。

安装Apache:

yum install httpd

配置Apache:

编辑/etc/httpd/conf/httpd.conf文件:

ServerLimit 2048
MaxClients 2048

四、使用缓存加速

使用缓存技术可以有效地提升web服务器的性能。可以使用如下两种方式进行缓存加速:

  1. HTTP缓存

通过设置合适的Cache-ControlExpires响应头,让客户端缓存静态资源,减少服务器的负载,提升用户的访问体验。示例代码如下:

location /static {
    expires 7d;
}
  1. 反向代理缓存

使用反向代理缓存来缓存动态内容,减少对后端服务器的请求。可以使用Nginx的proxy_cache

Tingkatkan had pada bilangan pemegang fail

proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
server {
    ...
    location / {
        proxy_cache my_cache;
        proxy_cache_valid 200 301 302 5m;
        proxy_pass http://backend;
    }
}

    Naikkan had pada bilangan sambungan TCP

    rrreee
        Hapuskan kumpulan Sembang tentang sharding
      1. rrreee
        1. Tingkatkan saiz penimbal TCP sistem
        rrreee🎜Selepas mengubah suai parameter di atas, gunakan arahan berikut untuk menjadikannya berkesan: 🎜rrreee 🎜 3. Gunakan pelayan web berprestasi tinggi🎜 🎜Memilih pelayan web yang betul juga mempunyai kesan penting terhadap prestasi. Pada CentOS, Nginx dan Apache adalah pelayan web yang biasa digunakan. 🎜🎜🎜Nginx🎜🎜🎜Nginx ialah HTTP berprestasi tinggi dan pelayan proksi terbalik yang menggunakan seni bina dipacu peristiwa tidak menyekat tak segerak dan boleh mengendalikan permintaan trafik yang besar dengan mudah. 🎜🎜Pasang Nginx: 🎜rrreee🎜Konfigurasi Nginx: 🎜🎜Edit fail /etc/nginx/nginx.conf: 🎜rrreee
          🎜Apache🎜🎜🎜🎜 ialah a. fungsi Pelayan web yang kaya dan digunakan secara meluas, walaupun prestasinya lebih rendah sedikit daripada Nginx, ia masih boleh memberikan prestasi yang baik dalam beberapa senario tertentu. 🎜🎜Pasang Apache: 🎜rrreee🎜Konfigurasikan Apache: 🎜🎜Edit fail /etc/httpd/conf/httpd.conf: 🎜rrreee🎜 4. Gunakan pecutan cache 🎜 meningkatkan teknologi web🎜 dengan berkesan prestasi pelayan. Dua kaedah berikut boleh digunakan untuk pecutan cache: 🎜🎜🎜Caching HTTP🎜🎜🎜 Dengan menetapkan pengepala respons Cache-Control dan Expires yang sesuai, pelanggan boleh cache statik sumber , mengurangkan beban pada pelayan dan meningkatkan pengalaman akses pengguna. Kod sampel adalah seperti berikut: 🎜rrreee
            🎜Cache proksi songsang🎜🎜🎜Gunakan cache proksi terbalik untuk cache kandungan dinamik dan kurangkan permintaan ke pelayan bahagian belakang. Anda boleh menggunakan modul proxy_cache Nginx untuk melaksanakan caching proksi terbalik. Kod sampel adalah seperti berikut: 🎜rrreee🎜Kesimpulan🎜🎜Dengan menutup perkhidmatan yang tidak diperlukan, melaraskan parameter kernel, menggunakan pelayan web berprestasi tinggi dan menggunakan pecutan cache, pelayan web yang dibina pada CentOS boleh mencapai prestasi dan kelajuan tindak balas yang lebih baik. Saya harap panduan penalaan prestasi yang disediakan dalam artikel ini akan membantu semua orang. 🎜🎜Pautan rujukan: 🎜🎜🎜https://www.digitalocean.com/community/tutorials/5-tips-to-speed-up-your-nginx-web-server🎜🎜https://www.digitalocean.com /community/tutorials/how-to-optimize-nginx-configuration🎜🎜

Atas ialah kandungan terperinci Amalan Terbaik: Panduan Penalaan Prestasi untuk Membina Pelayan Web pada CentOS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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