Nginx部署指南:从安装到配置丨青训营笔记

209 阅读5分钟

Nginx部署指南:从安装到配置

引言

Nginx是一个高性能的HTTP和反向代理服务器,也是一个常用的邮件代理服务器和通用TCP/UDP代理服务器。它以其高稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。本文将指导你如何部署Nginx,从安装到配置,让你的网站或应用运行得更加顺畅。

第一步:安装Nginx

在Linux上安装

对于大多数Linux发行版,你可以通过包管理器安装Nginx。以下是在Ubuntu和CentOS上安装Nginx的命令:

  • Ubuntu/Debian:

     sudo apt update
     sudo apt install nginx
    
  • CentOS/RHEL:

     sudo yum install epel-release
     sudo yum install nginx
    
  • 安装完成后,你可以通过运行以下命令来启动Nginx服务:

     sudo systemctl start nginx
    

在Windows上安装

在Windows上,你可以下载Nginx的Windows版本,并将其作为一个服务运行。访问Nginx官网下载Windows版本,然后按照提供的指南进行安装和配置。

第二步:验证安装

安装完成后,你可以通过访问http://localhost或你的服务器IP地址来验证Nginx是否正在运行。如果一切正常,你将看到Nginx的默认欢迎页面。

第三步:配置Nginx

Nginx的配置文件通常位于/etc/nginx/nginx.conf。你可以编辑这个文件来配置Nginx的行为。

基本配置

以下是Nginx配置文件的一个基本示例:

 user  nginx;
 worker_processes  1;
 ​
 error_log  /var/log/nginx/error.log warn;
 pid        /var/run/nginx.pid;
 ​
 events {
     worker_connections  1024;
 }
 ​
 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;
 ​
     keepalive_timeout  65;
     #gzip  on;
 ​
     include /etc/nginx/conf.d/*.conf;
     include /etc/nginx/sites-available/*;
 }

配置网站

要配置一个新的网站,你需要创建一个新的配置文件。例如,你可以在/etc/nginx/sites-available/目录下创建一个名为mywebsite的文件:

 server {
     listen 80;
     server_name mywebsite.com www.mywebsite.com;
 ​
     location / {
         root   /usr/share/nginx/html;
         index  index.html index.htm;
     }
 ​
     location /images/ {
         root /usr/share/nginx/html;
     }
 ​
     # 其他配置...
 }

然后,你需要创建一个符号链接到sites-enabled目录:

 sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/

重启Nginx

每次修改配置文件后,你需要重启Nginx以使更改生效:

 sudo systemctl restart nginx

第四步:安全和性能优化

  • 启用SSL/TLS: 为了安全地部署网站,你应该配置SSL/TLS加密。你可以使用Let's Encrypt提供的免费证书。
  • 性能调优: 根据你的服务器硬件和网站需求,你可能需要调整worker_processesworker_connections等参数。

Nginx的管理

1. 理解Nginx配置文件

Nginx的配置文件主要分为三个部分:main(全局配置)、events(影响连接的配置)和http(具体的网站配置)。配置文件通常位于/etc/nginx/nginx.conf

2. 如何编辑配置文件

你可以使用任何文本编辑器来编辑Nginx的配置文件。在Linux系统中,常用的编辑器有vinano等。例如,你可以使用以下命令来打开配置文件:

 sudo nano /etc/nginx/nginx.conf

3. 修改配置文件

在配置文件中,你可以修改或添加以下内容:

  • 监听端口listen指令用来指定Nginx监听的端口,比如listen 80;表示监听80端口(HTTP)。
  • 服务器名称server_name指令用来指定域名,比如server_name example.com;
  • 静态文件位置root指令用来指定静态文件的存放目录,比如root /var/www/html;
  • 默认页面index指令用来指定默认页面,比如index index.html index.htm;

4. 检查配置文件

在保存修改后,你需要检查配置文件是否有语法错误。可以使用以下命令:

 sudo nginx -t

如果显示“syntax is ok”,则表示配置文件没有问题。

5. 重新加载Nginx

配置无误后,你需要重新加载Nginx以使更改生效。可以使用以下命令:

 sudo nginx -s reload

这个命令会重新加载配置文件,而不会中断正在运行的服务。

6. 常见配置示例

假设你想配置一个简单的网站,可以添加如下配置到nginx.conf文件中:

 server {
     listen 80;
     server_name example.com;
     location / {
         root /var/www/html;
         index index.html index.htm;
     }
 }

这段配置表示Nginx将监听80端口,并且当访问example.com时,会从/var/www/html目录中寻找index.htmlindex.htm作为首页。

7. 注意事项

  • 确保在修改配置文件后检查语法,避免出现配置错误导致Nginx服务无法启动。
  • 重新加载Nginx服务时,使用nginx -s reload命令,这样可以不中断服务的情况下应用新的配置。
  • 如果你对Nginx的配置不熟悉,建议先在测试环境中进行修改和测试。

1. Nginx参数应用策略

监听端口(listen) :这个参数指定Nginx监听的端口,例如listen 80;表示监听HTTP的80端口。如果你需要支持HTTPS,可以添加listen 443 ssl;来监听443端口,并启用SSL。

服务器名称(server_name) :这个参数用于指定域名,例如server_name example.com;。这告诉Nginx所有指向example.com的请求都由这个server块处理。

静态资源位置(root)root指令指定静态文件的存放目录,例如root /var/www/html;。所有指向该域名的静态文件请求都会从这个目录中寻找文件。

默认页面(index)index指令指定默认页面,例如index index.html index.htm;。当访问根目录如http://example.com时,Nginx会查找并返回index.htmlindex.htm文件。

文件描述符限制(worker_rlimit_nofile) :这个参数增加Nginx可以打开的文件描述符数量,以处理更多的并发连接,例如worker_rlimit_nofile 65535;

启用Gzip压缩(gzip) :通过启用Gzip压缩可以减少数据传输量,提高响应速度,例如gzip on;

缓存配置(expires) :配置浏览器缓存,减少重复请求,例如expires 30d;,这会设置静态资源在客户端缓存30天。

2. 配置静态资源访问

对于静态资源,如HTML、CSS、JavaScript和图片,你可以将它们放在Nginx指定的目录下,并通过以下配置来访问:

 server {
     listen 80;
     server_name example.com;
     location / {
         root /var/www/html;
         index index.html index.htm;
         try_files $uri $uri/ =404;
     }
     location ~* .(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {
         expires 30d;
         access_log off;
     }
 }

在这个配置中,所有以.css.js等结尾的文件将会被设置为在客户端缓存30天,这样可以减少服务器的负载并提高访问速度。

3. 配置后端服务

如果你需要将Nginx作为反向代理服务器来访问后端服务,可以配置如下:

 upstream backend {
     server backend1.example.com;
     server backend2.example.com;
     keepalive 64;  # 保持活动的连接数
 }
 server {
     listen 80;
     location / {
         proxy_pass http://backend;
     }
 }

在这个配置中,Nginx将请求代理到backend上游,这可以是一个负载均衡的后端服务集群。

4. 高可用性配置

为了实现高可用性,你可以使用Keepalived与Nginx配合使用来实现故障转移。Keepalived可以配置虚拟IP,并在主Nginx服务器上运行主实例,在从服务器上运行从实例。

5. 性能优化配置

性能优化包括内核参数调整、Worker进程数、Worker连接数、使用HTTP/2、文件描述符限制等。例如,可以调整worker_processes为等于服务器的CPU核心数,worker_connections根据服务器的内存大小和系统负载来合理设置。## Nginx部署指南:从安装到配置

引言

Nginx是一个高性能的HTTP和反向代理服务器,也是一个常用的邮件代理服务器和通用TCP/UDP代理服务器。它以其高稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。本文将指导你如何部署Nginx,从安装到配置,让你的网站或应用运行得更加顺畅。

第一步:安装Nginx

在Linux上安装

对于大多数Linux发行版,你可以通过包管理器安装Nginx。以下是在Ubuntu和CentOS上安装Nginx的命令:

  • Ubuntu/Debian:

     sudo apt update
     sudo apt install nginx
    
  • CentOS/RHEL:

     sudo yum install epel-release
     sudo yum install nginx
    
  • 安装完成后,你可以通过运行以下命令来启动Nginx服务:

     sudo systemctl start nginx
    

在Windows上安装

在Windows上,你可以下载Nginx的Windows版本,并将其作为一个服务运行。访问Nginx官网下载Windows版本,然后按照提供的指南进行安装和配置。

第二步:验证安装

安装完成后,你可以通过访问http://localhost或你的服务器IP地址来验证Nginx是否正在运行。如果一切正常,你将看到Nginx的默认欢迎页面。

第三步:配置Nginx

Nginx的配置文件通常位于/etc/nginx/nginx.conf。你可以编辑这个文件来配置Nginx的行为。

基本配置

以下是Nginx配置文件的一个基本示例:

 user  nginx;
 worker_processes  1;
 ​
 error_log  /var/log/nginx/error.log warn;
 pid        /var/run/nginx.pid;
 ​
 events {
     worker_connections  1024;
 }
 ​
 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;
 ​
     keepalive_timeout  65;
     #gzip  on;
 ​
     include /etc/nginx/conf.d/*.conf;
     include /etc/nginx/sites-available/*;
 }

配置网站

要配置一个新的网站,你需要创建一个新的配置文件。例如,你可以在/etc/nginx/sites-available/目录下创建一个名为mywebsite的文件:

 server {
     listen 80;
     server_name mywebsite.com www.mywebsite.com;
 ​
     location / {
         root   /usr/share/nginx/html;
         index  index.html index.htm;
     }
 ​
     location /images/ {
         root /usr/share/nginx/html;
     }
 ​
     # 其他配置...
 }

然后,你需要创建一个符号链接到sites-enabled目录:

 sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/

重启Nginx

每次修改配置文件后,你需要重启Nginx以使更改生效:

 sudo systemctl restart nginx

第四步:安全和性能优化

  • 启用SSL/TLS: 为了安全地部署网站,你应该配置SSL/TLS加密。你可以使用Let's Encrypt提供的免费证书。
  • 性能调优: 根据你的服务器硬件和网站需求,你可能需要调整worker_processesworker_connections等参数。

Nginx的管理

1. 理解Nginx配置文件

Nginx的配置文件主要分为三个部分:main(全局配置)、events(影响连接的配置)和http(具体的网站配置)。配置文件通常位于/etc/nginx/nginx.conf

2. 如何编辑配置文件

你可以使用任何文本编辑器来编辑Nginx的配置文件。在Linux系统中,常用的编辑器有vinano等。例如,你可以使用以下命令来打开配置文件:

 sudo nano /etc/nginx/nginx.conf

3. 修改配置文件

在配置文件中,你可以修改或添加以下内容:

  • 监听端口listen指令用来指定Nginx监听的端口,比如listen 80;表示监听80端口(HTTP)。
  • 服务器名称server_name指令用来指定域名,比如server_name example.com;
  • 静态文件位置root指令用来指定静态文件的存放目录,比如root /var/www/html;
  • 默认页面index指令用来指定默认页面,比如index index.html index.htm;

4. 检查配置文件

在保存修改后,你需要检查配置文件是否有语法错误。可以使用以下命令:

 sudo nginx -t

如果显示“syntax is ok”,则表示配置文件没有问题。

5. 重新加载Nginx

配置无误后,你需要重新加载Nginx以使更改生效。可以使用以下命令:

 sudo nginx -s reload

这个命令会重新加载配置文件,而不会中断正在运行的服务。

6. 常见配置示例

假设你想配置一个简单的网站,可以添加如下配置到nginx.conf文件中:

 server {
     listen 80;
     server_name example.com;
     location / {
         root /var/www/html;
         index index.html index.htm;
     }
 }

这段配置表示Nginx将监听80端口,并且当访问example.com时,会从/var/www/html目录中寻找index.htmlindex.htm作为首页。

7. 注意事项

  • 确保在修改配置文件后检查语法,避免出现配置错误导致Nginx服务无法启动。
  • 重新加载Nginx服务时,使用nginx -s reload命令,这样可以不中断服务的情况下应用新的配置。
  • 如果你对Nginx的配置不熟悉,建议先在测试环境中进行修改和测试。

1. Nginx参数应用策略

监听端口(listen) :这个参数指定Nginx监听的端口,例如listen 80;表示监听HTTP的80端口。如果你需要支持HTTPS,可以添加listen 443 ssl;来监听443端口,并启用SSL。

服务器名称(server_name) :这个参数用于指定域名,例如server_name example.com;。这告诉Nginx所有指向example.com的请求都由这个server块处理。

静态资源位置(root)root指令指定静态文件的存放目录,例如root /var/www/html;。所有指向该域名的静态文件请求都会从这个目录中寻找文件。

默认页面(index)index指令指定默认页面,例如index index.html index.htm;。当访问根目录如http://example.com时,Nginx会查找并返回index.htmlindex.htm文件。

文件描述符限制(worker_rlimit_nofile) :这个参数增加Nginx可以打开的文件描述符数量,以处理更多的并发连接,例如worker_rlimit_nofile 65535;

启用Gzip压缩(gzip) :通过启用Gzip压缩可以减少数据传输量,提高响应速度,例如gzip on;

缓存配置(expires) :配置浏览器缓存,减少重复请求,例如expires 30d;,这会设置静态资源在客户端缓存30天。

2. 配置静态资源访问

对于静态资源,如HTML、CSS、JavaScript和图片,你可以将它们放在Nginx指定的目录下,并通过以下配置来访问:

 server {
     listen 80;
     server_name example.com;
     location / {
         root /var/www/html;
         index index.html index.htm;
         try_files $uri $uri/ =404;
     }
     location ~* .(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {
         expires 30d;
         access_log off;
     }
 }

在这个配置中,所有以.css.js等结尾的文件将会被设置为在客户端缓存30天,这样可以减少服务器的负载并提高访问速度。

3. 配置后端服务

如果你需要将Nginx作为反向代理服务器来访问后端服务,可以配置如下:

 upstream backend {
     server backend1.example.com;
     server backend2.example.com;
     keepalive 64;  # 保持活动的连接数
 }
 server {
     listen 80;
     location / {
         proxy_pass http://backend;
     }
 }

在这个配置中,Nginx将请求代理到backend上游,这可以是一个负载均衡的后端服务集群。

4. 高可用性配置

为了实现高可用性,你可以使用Keepalived与Nginx配合使用来实现故障转移。Keepalived可以配置虚拟IP,并在主Nginx服务器上运行主实例,在从服务器上运行从实例。

5. 性能优化配置

性能优化包括内核参数调整、Worker进程数、Worker连接数、使用HTTP/2、文件描述符限制等。例如,可以调整worker_processes为等于服务器的CPU核心数,worker_connections根据服务器的内存大小和系统负载来合理设置。