时间:2023-02-10 19:27:01 | 来源:建站知识
时间:2023-02-10 19:27:01 来源:建站知识
docker pull nignx
docker run -d -p 80:80 -p 443:443 --restart always --name nf -v /root/xxx/nginx_config/www:/usr/share/nginx/html -v /root/xxx/nginx_config/nginx:/etc/nginx -v /root/xxx/nginx_config/logs:/var/log/nginx nginx# 或者docker run -d -p 80:80 -p 7722:22 --restart always --name nginx-forward / -v /root/docker_dir/nginx/www:/usr/share/nginx/html /-v /root/docker_dir/nginx/conf/nginx.conf:/etc/nginx/nginx.conf /-v /root/docker_dir/nginx/logs:/var/log/nginx /-v /root/docker_dir/nginx/conf/conf.d:/etc/nginx/conf.d /nginx
-v
表示要挂载的目录,:前面是宿主机的文件路径,:后面是容器内部文件的真实路径。--restart
表示容器故障之后的重启方式,always表示一直都会重启。--name
表示镜像启动之后,生成的容器的名称。# 宿主机里面的文件夹如下,进入conf文件夹进行配置[root@localhost nginx]# lsconf logs www# 进入conf文件夹[root@localhost conf]# lsconf.d nginx.conf
修改nignx.conf
文件的时候需要注意,如果反向代理的不止是http协议,还有tcp协议的时候需要分开进行配置处理。# 修改nginx.conf文件# 在http代码里面的include文件指定一个专属http的配置文件http { ... include /etc/nginx/conf.d/http/*.conf;}# 如果需要反向代理tcp协议的内容,再增加一个streamstream { # tcp forward include /etc/nginx/conf.d/tcp/*.conf;}
这样就完成了http反向代理和tcp反向代理的初步配置,接下来在conf.d
文件夹里面创建http和tcp文件夹# conf文件夹内容如下[root@localhost conf.d]# lsdefault.conf http tcp
http协议编写方式:# 进入http文件夹,编辑http.conf文件。例如反向代理test.trip-service.com这个域名# 浏览器会根据test.trip-service.com转发到54.221.78.73:80这个地址# 注意:upstream后面的所填写的名称将会变成反向代理的host发送到对方服务器。这里host:testupstream test { server 54.221.78.73:80;}server { listen 80; server_name test.trip-service.com; location / { proxy_pass http://test; }}
tcp协议编写方式:# 进入tcp文件夹,编辑tcp.conf文件。例子如下upstream gitlab_ssh_server { server 192.168.153.207:9922;}server { listen 22; proxy_pass gitlab_ssh_server;}
# 如果是ubuntu系统apt install apache2-utils# 如果是centos系统yum install httpd-tools
4-2、生成鉴权账户# 生成的鉴权文件passwd,存放在/usr/local/src/nginx/这个目录里面htpasswd -c /usr/local/src/nginx/passwd username# 此时需要输入密码并确认一遍密码
4-3、反向代理并鉴权# 根目录是不需要鉴权的,直接可以访问# /authpath是需要鉴权的# yourhostname是你需要反向代理的域名upstream yourhostname { # 反向代理指向的位置 server 127.0.0.1:8001;}server { # 监听的端口 listen 8080; server_name yourhostname; location / { proxy_pass http://yourhostname; } location /authpath { auth_basic "auth"; # auth_basic_user_file鉴权文件位置 auth_basic_user_file /usr/local/src/nginx/passwd; proxy_pass http://yourhostname; }}
关键词:代理