searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

天翼云开源镜像站--nginx部署与控制

2024-11-08 09:21:31
18
0

一、Nginx 的概念

        Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。它以其高并发处理能力、低资源消耗和稳定性而闻名。Nginx 由 Igor Sysoev 开发,首次公开发布于 2004 年。Nginx 可以作为网页服务器、反向代理服务器、电子邮件代理服务器以及 TCP/UDP 负载均衡器。

  • Web 服务器:Nginx 可以直接提供静态内容(如 HTML、CSS、图片等)给客户端浏览器。
  • 反向代理服务器:Nginx 可以接收客户端请求,然后将请求转发到后端服务器,并将后端服务器的响应返回给客户端。这种方式可以隐藏真实的后端服务器,提高安全性,并实现负载均衡。其配置示例如下:

     

     

    http {
        upstream backend {
            server backend1.example.com;
            server backend2.example.com;
        }
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }
  • 负载均衡:Nginx 可以将请求分发到多台后端服务器上,以平衡负载,提高系统可用性和响应速度。可通过在配置中的upstream backend代码段内添加weight=x实现。
  • 动静分离:nginx能将动态内容(如 PHP、Java 等生成的内容)和静态内容(如 HTML、CSS、JavaScript、图片等)分开处理。静态内容可以直接由 Nginx 提供服务,而动态内容则通过反向代理传递给后端应用服务器处理。这样可以减轻后端服务器的压力,提高响应速度。其配置示例如下:
    http {
        upstream backend {
            server backend1.example.com;
        }
    
        server {
            listen 80;
            server_name example.com;
    
            # 静态内容配置
            location /static/ {
                alias /path/to/static/files/;
                expires 30d;
            }
    
            # 动态内容配置
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }

二、Nginx 常见字段含义

        在 Nginx 配置文件中,常用的字段包括:

  • server:定义虚拟主机。
  • location:匹配特定的 URL 路径,并对其应用特定的配置。
  • listen:指定 Nginx 监听的 IP 地址和端口。
  • root:指定网站根目录。
  • index:指定默认的索引文件。
  • proxy_pass:指定反向代理的目标地址。
  • upstream:定义一组后端服务器,用于负载均衡。

三、天翼云开源镜像站Nginx部署涉及步骤

部署 Nginx 通常涉及以下几个步骤:准备环境、安装 Nginx、配置 Nginx、启动和管理 Nginx 服务。下面是详细的部署过程:

①准备环境(CtyunOS/CentOS/RHEL)

sudo yum groupinstall "Development Tools"

sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel

②通过包管理器安装nginx

sudo yum install epel-release

sudo yum install nginx

③配置nginx

Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf (示例)或 /usr/local/nginx/conf/nginx.conf(示例),示例配置如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  ½048;
}

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;
}

在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 example.com.conf,并进行虚拟主机配置:

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.html index.htm;

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

    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

④启动和管理nginx服务

检查语法:sudo nginx -t

重新加载配置:sudo systemctl reload nginx 或者 sudo /usr/local/nginx/sbin/nginx -s reload

启动和停止服务:sudo systemctl start nginx/sudo systemctl stop nginx 或者 sudo /usr/local/nginx/sbin/nginx -s stop

⑤防火墙配置

sudo firewall-cmd --permanent --zone=public --add-service=http

sudo firewall-cmd --permanent --zone=public --add-service=https

sudo firewall-cmd --reload

⑥监控和日志

tail -f /var/log/nginx/access.log

tail -f /var/log/nginx/error.log

总结

  • 反向代理:Nginx 作为中间层,将客户端请求转发到后端服务器,并将响应返回给客户端。
  • 负载均衡:Nginx 将请求均匀分配到多个后端服务器,以提高系统性能和可用性。
  • 动静分离:Nginx 直接提供静态内容,将动态内容转发到后端应用服务器,从而优化性能。

通过以上配置,Nginx 可以有效地管理和优化 Web 应用程序的流量,并与CDN加速策略结合,使用CDN的标准能力分区域回源,使用SNAT限制访问,建设ovs内网通道,使用双活方案等,确保系统的安全性、稳定性和高性能。

0条评论
0 / 1000
达达达
9文章数
0粉丝数
达达达
9 文章 | 0 粉丝
原创

天翼云开源镜像站--nginx部署与控制

2024-11-08 09:21:31
18
0

一、Nginx 的概念

        Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。它以其高并发处理能力、低资源消耗和稳定性而闻名。Nginx 由 Igor Sysoev 开发,首次公开发布于 2004 年。Nginx 可以作为网页服务器、反向代理服务器、电子邮件代理服务器以及 TCP/UDP 负载均衡器。

  • Web 服务器:Nginx 可以直接提供静态内容(如 HTML、CSS、图片等)给客户端浏览器。
  • 反向代理服务器:Nginx 可以接收客户端请求,然后将请求转发到后端服务器,并将后端服务器的响应返回给客户端。这种方式可以隐藏真实的后端服务器,提高安全性,并实现负载均衡。其配置示例如下:

     

     

    http {
        upstream backend {
            server backend1.example.com;
            server backend2.example.com;
        }
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }
  • 负载均衡:Nginx 可以将请求分发到多台后端服务器上,以平衡负载,提高系统可用性和响应速度。可通过在配置中的upstream backend代码段内添加weight=x实现。
  • 动静分离:nginx能将动态内容(如 PHP、Java 等生成的内容)和静态内容(如 HTML、CSS、JavaScript、图片等)分开处理。静态内容可以直接由 Nginx 提供服务,而动态内容则通过反向代理传递给后端应用服务器处理。这样可以减轻后端服务器的压力,提高响应速度。其配置示例如下:
    http {
        upstream backend {
            server backend1.example.com;
        }
    
        server {
            listen 80;
            server_name example.com;
    
            # 静态内容配置
            location /static/ {
                alias /path/to/static/files/;
                expires 30d;
            }
    
            # 动态内容配置
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }

二、Nginx 常见字段含义

        在 Nginx 配置文件中,常用的字段包括:

  • server:定义虚拟主机。
  • location:匹配特定的 URL 路径,并对其应用特定的配置。
  • listen:指定 Nginx 监听的 IP 地址和端口。
  • root:指定网站根目录。
  • index:指定默认的索引文件。
  • proxy_pass:指定反向代理的目标地址。
  • upstream:定义一组后端服务器,用于负载均衡。

三、天翼云开源镜像站Nginx部署涉及步骤

部署 Nginx 通常涉及以下几个步骤:准备环境、安装 Nginx、配置 Nginx、启动和管理 Nginx 服务。下面是详细的部署过程:

①准备环境(CtyunOS/CentOS/RHEL)

sudo yum groupinstall "Development Tools"

sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel

②通过包管理器安装nginx

sudo yum install epel-release

sudo yum install nginx

③配置nginx

Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf (示例)或 /usr/local/nginx/conf/nginx.conf(示例),示例配置如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  ½048;
}

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;
}

在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 example.com.conf,并进行虚拟主机配置:

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.html index.htm;

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

    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

④启动和管理nginx服务

检查语法:sudo nginx -t

重新加载配置:sudo systemctl reload nginx 或者 sudo /usr/local/nginx/sbin/nginx -s reload

启动和停止服务:sudo systemctl start nginx/sudo systemctl stop nginx 或者 sudo /usr/local/nginx/sbin/nginx -s stop

⑤防火墙配置

sudo firewall-cmd --permanent --zone=public --add-service=http

sudo firewall-cmd --permanent --zone=public --add-service=https

sudo firewall-cmd --reload

⑥监控和日志

tail -f /var/log/nginx/access.log

tail -f /var/log/nginx/error.log

总结

  • 反向代理:Nginx 作为中间层,将客户端请求转发到后端服务器,并将响应返回给客户端。
  • 负载均衡:Nginx 将请求均匀分配到多个后端服务器,以提高系统性能和可用性。
  • 动静分离:Nginx 直接提供静态内容,将动态内容转发到后端应用服务器,从而优化性能。

通过以上配置,Nginx 可以有效地管理和优化 Web 应用程序的流量,并与CDN加速策略结合,使用CDN的标准能力分区域回源,使用SNAT限制访问,建设ovs内网通道,使用双活方案等,确保系统的安全性、稳定性和高性能。

文章来自个人专栏
zjd的日常
9 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
1
1