最早在云服务器上部署的时候就是用的nginx,然后一直听说Nginx Proxy Manager 多么多么方便,我自己实际用了一下,可能是因为本地化docker部署的原因,总是有各种奇怪的问题。加上自己需求也都比较简单,就简单做个http转https,然后转发一下。

我是将所有docker容器都放在/home/xxx/docker文件夹下面,xxx是你自己的用户名。

然后新建一个nginx的文件夹用于保存nginx相关的文件,挂载到容器里面,这样方便我们和容器交互,不然每次更新东西都需要进入容器里面来弄。

mkdir /home/xxx/docker/nginx
cd /home/xxx/docker/nginx
mkdir ssl
mkdir html
mkdir config

然后需要先在/home/xxx/docker/nginx/config 下创建一个nginx.conf文件,以后需要修改nginx相关的设置都在这里面修改。

user  nginx;
worker_processes  auto;

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

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    client_max_body_size 500m;

    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;


#################
#################
  include /etc/nginx/conf.d/*.conf;
}

命令行下运行以下命令即可~

docker run -d \
  --restart=always \
  -p 30080:80 \   #30080可以改成自己指定的http端口
  -p 30443:443 \  #30443可以改成自己指定的http端口
  -v /home/xxx/docker/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
  -v /home/xxx/docker/nginx/html:/usr/share/nginx/html \
  -v /home/xxx/docker/nginx/ssl:/ssl \
  --name nginx \
  nginx:alpine