找回密码
 立即注册
查看: 430|回复: 1

[windows] Nginx服务器的配置与优化

[复制链接]

74

主题

5

回帖

273

积分

中级会员

积分
273
QQ
发表于 2024-5-20 13:27:34 | 显示全部楼层 |阅读模式
Nginx(“engine x”)是一款高性能的HTTP和反向代理服务器,以其轻量、高效、稳定和丰富的功能而广受欢迎。本文将详细介绍如何配置和优化Nginx服务器,以提高其性能和可靠性。


一、Nginx安装

1.在Ubuntu上安装Nginx:

   使用`apt`包管理器安装Nginx:

   ```bash
   sudo apt update
   sudo apt install nginx
   ```

2.在CentOS上安装Nginx:

   使用`yum`包管理器安装Nginx:

   ```bash
   sudo yum install epel-release
   sudo yum install nginx
   ```

3.启动和启用Nginx服务:

   在Ubuntu和CentOS上:

   ```bash
   sudo systemctl start nginx
   sudo systemctl enable nginx
   ```

二、基本配置

Nginx的主配置文件通常位于`/etc/nginx/nginx.conf`。该文件包含全局设置、HTTP模块设置和事件模块设置。

1.全局设置:

   主要设置工作进程数和用户:

   ```nginx
   user www-data;
   worker_processes auto;
   pid /run/nginx.pid;
   include /etc/nginx/modules-enabled/.conf;
   ```

2.事件模块:

   配置事件模型和连接数:

   ```nginx
   events {
       worker_connections 1024;
   }
   ```

3.HTTP模块:

   配置HTTP服务器的基本设置,如日志、MIME类型和Gzip压缩:

   ```nginx
   http {
       include /etc/nginx/mime.types;
       default_type application/octet-stream;

       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 /var/log/nginx/access.log main;

       sendfile on;
       tcp_nopush on;
       tcp_nodelay on;
       keepalive_timeout 65;
       types_hash_max_size 2048;

       include /etc/nginx/conf.d/.conf;
       include /etc/nginx/sites-enabled/;
   }
   ```

三、虚拟主机配置

Nginx通过虚拟主机(Server Blocks)支持多个站点。虚拟主机配置文件通常位于`/etc/nginx/sites-available/`(Ubuntu)或`/etc/nginx/conf.d/`(CentOS)。

1.创建虚拟主机配置文件:

   创建一个新的虚拟主机配置文件:

   ```nginx
   server {
       listen 80;
       server_name example.com www.example.com;

       root /var/www/example.com/html;
       index index.html index.htm index.nginx-debian.html;

       location / {
           try_files $uri $uri/ =404;
       }

       error_page 404 /404.html;
       location = /404.html {
           internal;
       }

       error_page 500 502 503 504 /50x.html;
       location = /50x.html {
           internal;
       }

       access_log /var/log/nginx/example.com_access.log;
       error_log /var/log/nginx/example.com_error.log;
   }
   ```

2.启用虚拟主机:

   在Ubuntu上,启用虚拟主机:

   ```bash
   sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
   sudo systemctl reload nginx
   ```

   在CentOS上,无需创建符号链接,虚拟主机配置文件会自动加载,只需重启Nginx服务:

   ```bash
   sudo systemctl restart nginx
   ```

四、安全优化

1.禁用服务器版本信息:

   在配置文件中添加以下行,隐藏Nginx的版本信息:

   ```nginx
   server_tokens off;
   ```

2.设置文件和目录权限:

   确保Nginx用户对网站目录具有适当的权限:

   ```bash
   sudo chown -R www-data:www-data /var/www/example.com/html
   sudo chmod -R 755 /var/www
   ```

3.启用SSL/TLS:

   使用Let’s Encrypt为站点启用SSL/TLS,确保数据传输安全。

   安装Certbot:

   在Ubuntu上:

   ```bash
   sudo apt install certbot Python3-certbot-nginx
   ```

   在CentOS上:

   ```bash
   sudo yum install certbot python2-certbot-nginx
   ```

   生成并安装证书:

   ```bash
   sudo certbot --nginx
   ```

   配置自动续订:

   ```bash
   sudo crontab -e
   ```

   添加以下行以每天自动检查证书续订:

   ```cron
   0 0 /usr/bin/certbot renew --quiet
   ```

五、性能优化

1.启用Gzip压缩:

   在HTTP模块中启用Gzip压缩,提高传输效率:

   ```nginx
   http {
       gzip on;
       gzip_disable "msie6";
       gzip_vary on;
       gzip_proxied any;
       gzip_comp_level 6;
       gzip_buffers 16 8k;
       gzip_http_version 1.1;
       gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
   }
   ```

2.配置缓存:

   使用`proxy_cache`配置反向代理缓存,提高后端服务器的性能:

   ```nginx
   http {
       proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

       server {
           location / {
               proxy_pass http://backend_server;
               proxy_cache my_cache;
               proxy_cache_valid 200 302 10m;
               proxy_cache_valid 404 1m;
           }
       }
   }
   ```

3.优化连接数和超时设置:

   调整Nginx的连接数和超时设置,以优化性能:

   ```nginx
   http {
       keepalive_timeout 30;
       client_max_body_size 100M;
       client_body_buffer_size 1M;
       client_header_buffer_size 1k;
       large_client_header_buffers 4 4k;
   }
   ```

4.负载均衡:

   使用Nginx的负载均衡功能,将流量分发到多个后端服务器:

   ```nginx
   http {
       upstream backend {
           server backend1.example.com weight=5;
           server backend2.example.com;
           server backend3.example.com backup;
       }

       server {
           location / {
               proxy_pass http://backend;
           }
       }
   }
   ```

六、日志与监控

1.配置日志:

   Nginx的默认日志配置通常位于`/var/log/nginx/`目录下。可以在虚拟主机配置中自定义日志格式和位置:

   ```nginx
   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 /var/log/nginx/access.log main;
   ```

2.监控服务器性能:

   使用监控工具(如Prometheus、Grafana、Nginx Amplify)监控Nginx服务器的性能指标,如请求率、流量、响应时间等。

3.分析日志:

   使用日志分析工具(如GoAccess、AWStats)对访问日志进行分析,了解网站的访问情况和用户行为,优化网站性能和用户体验。

通过以上步骤,您可以成功配置和优化Nginx服务器,确保其高效、安全、稳定地运行。定期维护和优化服务器配置,将有助于提升网站的性能和可靠性。

免实名服务器!不限内容!可测试!联系TG:@RMB5206——@qq12345b

74

主题

5

回帖

273

积分

中级会员

积分
273
QQ
 楼主| 发表于 2024-5-20 13:28:07 | 显示全部楼层
:loveliness
免实名服务器!不限内容!可测试!联系TG:@RMB5206——@qq12345b
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-5 02:38 , Processed in 0.075090 second(s), 25 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表