Nginx

Nginx 简介

Nginx是一款轻量级的 Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。相较于 Apache,Apache 是同步多线程模型,一个连接对应一个线程,而 Nginx 是异步的,多个连接(万级别)可以对应一个线程。Nginx 的优势是处理静态请求,CPU、内存使用率低,Apache 适合处理动态请求,所以现在一般前端用 Nginx 作为反向代理抗住压力,Apache 作为后端处理动态请求。

反向代理(Reverse Proxy)是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。

Reference

Download

download

Install

$ rpm -ivh nginx-1.17.3-1.el7.ngx.x86_64.rpm

Usage

$ nginx [options]

# -------- options --------
# -?, -h: help
# -v : Print version.
# -V : Print NGINX version, compiler version and configure parameters.
# -t : Don’t run, just test the configuration file. NGINX checks configuration for correct syntax and then try to open files referred in configuration.
# -q : Suppress non-error messages during configuration testing.
# -s : signal, Send signal to a master process: `stop`, `quit`, `reopen`, `reload`. (version >= 0.7.53)
# -p : prefix, Set prefix path (default: /usr/local/nginx/). (version >= 0.7.53)
# -c : filename, Specify which configuration file NGINX should use instead of the default.
# -g : directives, Set global directives. (version >= 0.7.4)

Configure

# nginx default global conf
$ /etc/nginx/nginx.conf

# default server conf file diretory path
$ /etc/nginx/conf.d

# default server conf
$ /etc/nginx/conf.d/default.conf

# defalut resource store path
$ /usr/share/nginx/html

Start

$ systemctl start nginx
# 或者
$ nginx
# 或者
$ nginx -c my_nginx.conf

Examples

File Server

$ vim /etc/nginx/conf.d/file_server.conf
server {
    # 监听端口
    listen 80;
    # 指定 ip/host
    server_name 192.168.0.1;
    # 指定服务器路径
    root /data/nginx/;
    location / {
        # 显示目录
        autoindex on;
        # 显示文件大小
        autoindex_exact_size on;
        # 显示文件时间
        autoindex_localtime on;
    }
}

$ ls -l /data/nginx/
drwxr-xr-x  1 root root        5810 Sep  3 11:20 images

$ ls -l /data/nginx/images
-rw-r--r--  1 root root        5810 Sep  3 11:20 1.jpg
-rw-r--r--  1 root root        5810 Sep  3 11:20 2.jpg
-rw-r--r--  1 root root        5810 Sep  3 11:20 3.jpg

# 浏览器访问
http://192.168.0.1/images/1.jpg

Reverse Proxy

$ vim /etc/nginx/conf.d/reverse_proxy.conf
server {
    # 监听端口
    listen 80;
    # 指定 ip/host
    server_name 192.168.0.1;
    location / {
       // 反向代理地址
       proxy_pass https://arch-long.cn
    }
}

Load Balance

$ vim /etc/nginx/conf.d/load_balance.conf
server {
    # 监听端口
    listen 80;
    # 指定 ip/host
    server_name 192.168.0.1;
    # 指定一组服务器,组名为`backend`
    upstream backend {
        # 按照用户 IP 地址的 hash 值进行分配
        ip_hash;    
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
        server backend4.example.com;
    }
    location / {
       // 反向代理地址
       proxy_pass https://backend
    }
}

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,一毛也是爱

打开支付宝扫一扫,即可进行扫码打赏哦