您的位置:

nginx经典教程详解

一、安装部署

1、安装

# 在Ubuntu上安装Nginx
sudo apt-get update
sudo apt-get install nginx

2、配置Nginx

# Nginx配置文件路径:/etc/nginx/nginx.conf
http {
    ...
    server {
        listen       80;
        server_name  localhost;
        ...
    }
}

3、启动Nginx

# 启动Nginx
sudo systemctl start nginx

# 停止Nginx
sudo systemctl stop nginx

# 重新加载配置文件
sudo systemctl reload nginx

二、反向代理与负载均衡

1、反向代理

# 配置反向代理
http {
    ...
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen       80;
        server_name  localhost;

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

2、负载均衡

# 配置负载均衡
http {
    ...
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen       80;
        server_name  localhost;

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

三、静态文件服务

1、配置静态文件服务

# 配置静态文件服务
http {
    ...
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /path/to/your/website;
            index  index.html index.htm;
        }
    }
}

2、配置缓存

# 配置缓存
http {
    ...
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /path/to/your/website;
            index  index.html index.htm;
            expires 1d;
        }
    }
}

四、安全加固

1、访问控制

# 配置访问控制
http {
    ...
    server {
        listen       80;
        server_name  localhost;

        # 不允许通过ip地址直接访问
        location / {
            deny  all;
        }

        # 允许某个ip地址访问
        location /private/ {
            allow 192.168.1.100;
            deny  all;
        }
    }
}

2、SSL配置

# 配置SSL
http {
    ...
    server {
        listen       443 ssl;
        ssl_certificate      /path/to/your_certificate.pem;
        ssl_certificate_key  /path/to/your_private_key.pem;

        location / {
            root   /path/to/your/website;
            index  index.html index.htm;
        }
    }
}

五、Websocket支持

1、配置Websocket支持

# 配置Websocket
http {
    ...
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }

        location /ws {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
}

六、本地开发

1、配置本地开发环境

# 配置本地开发环境
http {
    ...
    server {
        listen       80;
        server_name  localhost;

        # 静态文件服务
        location /static/ {
            alias /path/to/your/static/files;
        }

        # API代理
        location /api/ {
            proxy_pass http://backend;
        }

        # WebSocket代理
        location /ws/ {
            proxy_pass http://backend;
            proxy_http_version  1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
}

七、小结

nginx是一款高性能的Web服务器,常用于静态文件服务、反向代理、负载均衡、Websocket支持等场景,同时也能进行安全加固并配置本地开发环境。以上是nginx经典教程的详细解释,仅供参考。