最近公司在开发一台基于vuejs+springCloud+SpringBoot + docker 的项目。要使用nginx作为反向代理工具,记录一下搭建的过程。
由于要在专网上进行nginx搭建,专网上无法上网,只能在自己本地机器上使用vmware搭建了虚拟机,虚机上安装了centos系统。
对网路这块不是很熟悉,所以在虚拟的网络设置上耽误了很多时间这里不做详细说明。
docker 服务搭建
拉取镜像
nginx 反向代理设置
验证
Docker 安装
docker 的安装参考了
https://www.cnblogs.com/yufeng218/p/8370670.html 博客
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install
8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
10、卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
拉取镜像
1: 在docker镜像仓库中查询nginx:docker search nginx
2:拉取镜像:docker pull jwilder/nginx-proxy
3:运行镜像:
命令启动:docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
yml文件启动:我将/usr/share/nginx/html和/etc/nginx/nginx.conf映射了出来,方便修改
version: '3'
services:
nexus:
image: '192.168.11.11:5000/jwilder/nginx-proxy:latest'
networks:
- network-hh
ports:
- "8999:80"
volumes:
- /usr/share/nginx/html:/usr/share/nginx/html
- /etc/nginx/nginx.conf:/etc/nginx/nginx.conf
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
fd-netword:
external: true
4: 将原来的配置ngnix.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
server {
listen 80 default_server;
listen [::]:80 default_server;
# 如果你把dist放在了其他目录下,那么这里就要改成那个目录
root /usr/share/nginx/html;
# server_name是你网站的域名,如果没有域名就写ip
server_name 1.2.3.4;
index index.html;
location / {
try_files $uri $uri/ @rewrites;
}
location @rewrites {
rewrite ^(.+)$ /index.html last;
}
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires max;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
}
5:将dist目录下所有的文件copy到/usr/share/nginx/html目录下(不包含dist)
6:重启docker,访问相应的地址ip:port/indes.html。出现部署的页面就ok!