虚拟机、docker部署nginx及web服务

------- 虚拟机安装Nginx ------

到home目录下,
1.上传安装包

alt + p
#进入sftp, 进行文件传输
put D:\nginx-1.17.5.tar.gz

2.解压安装包

#进入到上传的目录
mv nginx-1.17.5.tar.gz /home/
cd /home/
tar -zxvf nginx-1.17.5.tar.gz

3.进入Nginx目录

cd nginx-1.17.5


4.安装依赖环境

yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

5.安装Nginx

./configure
make
make install
安装后在/usr/local下就会有一个nginx目录

注意: 执行./configure可能会报c compiler cc is not found,
这是没有c++编译环境, 执行以下代码即可: yum -y install gcc-c++
虚拟机、docker部署nginx及web服务_第1张图片

6.启动Nginx

cd /usr/local/nginx/sbin
#启动
./nginx
#停止
./nginx -s stop
#重启
./nginx -s reload

7.查看服务状态

ps -ef | grep nginx

8.测试Nginx服务是否成功启动

http://ip地址:80

------- 发布项目 ------

主机上准备了一个nginx_demo项目,npm run build生成dist目录, 压缩dist.zip包
上传,移到/home目录下
1.创建一个demo目录

cd /home
unzip dist.zip

2.将项目上传到dist目录

3.解压项目

unzip dist.zip

虚拟机、docker部署nginx及web服务_第2张图片

4.编辑Nginx配置文件nginx-1.17.5/conf/nginx.conf
找到server ,找到里面的location, 将root改成/home/dist,保存

server {
	listen       80;
	server_name  localhost;

	#charset koi8-r;

	#access_log  logs/host.access.log  main;

	location / {
		root   /home/dist;
		index  index.html index.htm;
	}

5.关闭nginx服务

./nginx -s stop

6.启动服务并加载配置文件

/usr/local/nginx/sbin/nginx -c /home/nginx-1.17.5/conf/nginx.conf

7.此时可以现在虚拟机中访问

curl http://192.168.23.121/

以上会返回html信息

7.在主机浏览器打开网址: 虚拟机ip

http://192.168.23.121/
#此时发现无法访问, 虚拟机上明显成功部署,可能是
#1.虚拟机防火墙未将端口暴露出去外面访问,
[root@localhost sysconfig]# firewall-cmd --permanent --add-port=80/tcp
success
[root@localhost sysconfig]# firewall-cmd --reload
success
#2.关闭防火墙也可以访问
[root@localhost sysconfig]# systemctl stop firewalld.service
[root@localhost sysconfig]# systemctl start firewalld.service

------- docker容器发布nginx项目 ------

1.虚拟机安装docker,并运行

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
# 6、 配置docker镜像,可查看阿里云配置
systemctl start docker
docker search nginx
docker pull nginx

2.查看镜像
docker images

虚拟机、docker部署nginx及web服务_第3张图片
3.创建数据卷

#在/root目录下创建nginx目录用于存储nginx数据信息
cd ~
mkdir nginx
cd nginx
mkdir conf
cd conf
#在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf


user  nginx;
worker_processes  1;

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


events {
    worker_connections  1024;
}


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

    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;

    #gzip  on;

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

#创建日志目录和web服务文件目录
cd ~/nginx/
mkdir logs
mkdir html
#将web项目的dist.zip中的前端代码解压至html目录下

虚拟机、docker部署nginx及web服务_第4张图片

4.起容器服务

cd ~/nginx

docker run -id --name=d_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx

参数说明:

  • -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
  • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
  • -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录

#查看nginx容器是否启动
docker ps 查看正在运行的容器
docker ps -a 查看所有的容器
在这里插入图片描述

5.使用外部主机访问

浏览器打开虚拟机ip访问: http://192.168.23.121/

docker stop d_nginx

你可能感兴趣的:(http,nginx,vue.js,nginx,docker,centos,linux)