Featured image of post Nginx

Nginx

Welcome use nginx

Download & Install

https://nginx.org/en/download.html
docker安装:

  • 先创建一个nginx容器 docker run -d --name=nginx --restart unless-stopped nginx:latest
  • 拷贝容器内的配置到本地 docker cp nginx:/etc/nginx /mnt/sda1/dockers/nginx
  • 删除容器 docker rm -f nginx
  • 创建一个开放8080,8081端口,映射本地配置的容器
1
2
3
4
5
6
7
 docker run -d \
  --name=nginx \
  -p 8080:8080 \
  -p 8081:8081 \
  -v /mnt/sda1/dockers/nginx/conf.d:/etc/nginx/conf.d \
  --restart unless-stopped \
  nginx:latest

配置文件路径:

  • 本地: /mnt/sda1/dockers/nginx/conf.d/default.conf
  • docker内部: /etc/nginx/conf.d/default.conf

指向本地的文件夹

1
2
3
4
5
6
7
8
9
server {
    listen  8081;
    server_name localhost;

    location / {
        root /etc/nginx/sites;
        index index.html;
    }
}

浏览器访问 http://docker_ip:8081

反向代理http

可以域名不同,但端口号相同

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
    listen       8080;
    listen  [::]:8080;
    server_name  sites.ifelse01.top;

    location / {
        proxy_pass          http://192.168.50.4:23000;
        proxy_redirect      off;
        proxy_set_header    Host    $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen       8080;
    listen  [::]:8080;
    server_name  adminer.ifelse01.top;

    location / {
        proxy_pass          http://192.168.50.3:28080;
        proxy_redirect      off;
        proxy_set_header    Host    $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

浏览器分别访问 sites.ifelse01.top, adminer.ifelse01.top

反向代理https

可以域名不同,但端口号相同

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
    listen       8080 ssl;         # 增加ssl
    listen  [::]:8080 ssl;         # 增加ssl
    server_name  pwd.ifelse01.top;

    # ssl证书的pem文件路径: /etc/nginx/cert/***
    ssl_certificate  ./cert/ifelse01.top.pem;
    # ssl证书的key文件路径
    ssl_certificate_key ./cert/ifelse01.top.key;

    location = /identity/accounts/prelogin {
        rewrite ^/identity/accounts/prelogin$ /api/accounts/prelogin;
    }

    location / {
        proxy_pass          http://192.168.50.4:480;
        proxy_redirect      off;
        proxy_set_header    Host    $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

url的二级目录指向另外的文件夹

主要是alias的使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
server {
    listen       8080;
    listen  [::]:8080;
    server_name  sites.ifelse01.top;

    location ^~ /sites {
        alias  /etc/nginx/sites;
        index index.html;
    }

    location / {
        proxy_pass          http://192.168.50.4:23000;
        proxy_redirect      off;
        proxy_set_header    Host    $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
最后更新于 Feb 05, 2024 19:54 CST
comments powered by Disqus