网盘_游戏_博客自动化部署(Nginx多项目部署)

13 篇文章 0 订阅

目录

一.前提介绍

二.环境介绍

三.自述(脚本)

四.关于Nginx多项目部署


一.前提介绍

在我之前的博客里详细介绍了上述项目的部署,那么如何使用简单脚本自动部署和使用Nginx多项目部署是本文来介绍的基础篇章。

二.环境介绍

CentOS Linux release 7.9.2009 (Core)

nginx version: nginx/1.24.0

5.5.68-MariaDB

PHP 7.1.33 

三.自述(脚本)

在无影响版本条件限制下本脚本都会运行成功,各版本会略有不同,原理都是相通的。

首先准备一个虚拟机,要求开启网卡,并可以ping通外网,例如可以ping通百度等。

脚本运行中,会提示让你输入你的静态ip,这里不明白的可以看下文,这里你使用远程工具链接的虚拟机最好输入当前ip作为静态ip的选择,避免执行时,断开连接,所以先记下自己的ip在后续中输入。若不配固定IP可在配固定ip那整快注释掉。

Vm ware虚拟机设置静态IP的方法_vmware虚拟机如何设置静态ip-CSDN博客

代码如下:

#!/bin/bash
# **********************************************************
# * Filename      : install.sh
# * Author        : Elk
# * Email         : zzdict@gmail / elk_deer@foxmail.com
# * Create time   : 2024-04-18 10:30
# * Description   : 选择一个初始话的虚拟机,启动网卡有网即可。
# **********************************************************
start_time=$(date +%s)

echo "1.开始配置YUM源并安装基础包"
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache  > /dev/null 2>&1
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
yum install -y ntpdate vim lresz net-tools wegt tree psmisc bash-completion unzip epel-release  > /dev/null 2>&1
ntpdate time.windows.com

echo "2.开始你的配置静态IP"
sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/' /etc/sysconfig/network-scripts/ifcfg-ens33
read -p "***请输入你的想设置的静态IP: " ip
read -p "***请输入你的子网掩码    : " ym
read -p "***请输入你的网关        : " wg
read -p "***请输入你的DNS1     : " dns1
cat >>/etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
IPADDR=$ip
PREFIX=$ym
GATEWAY=$wg
DNS1=$dns1
EOF
systemctl restart network
ifup ens33

echo "3.在安装新版Nginx"
yum install yum-plugin-priorities -y > /dev/null 2>&1
cat >/etc/yum.repos.d/nginx.repo <<'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
priority=1
EOF
echo "3.1检查是否正确"
cat /etc/yum.repos.d/nginx.repo
yum install nginx -y > /dev/null 2>&1

echo "4.使用我提供的php包安装php与相关插件"
rpm -e $(rpm -qa|grep php)
unzip -o php*.zip  > /dev/null 2>&1
yum localinstall *.rpm -y > /dev/null 
systemctl start php-fpm
systemctl enable php-fpm
echo "4.1开始检查当前PHP服务用户默认配置情况"
grep "apache" /etc/php-fpm.d/www.conf
sed -i 's#apache#nginx#g' /etc/php-fpm.d/www.conf
echo "4.2检查修改后情况如下:"
grep "nginx" /etc/php-fpm.d/www.conf

echo "5.安装数据库并进行配置"
yum install -y mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb
mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
mysql -u root -p1234 -e "CREATE DATABASE IF NOT EXISTS wordpress;"

echo "6.1开始部署小霸王游戏"

unzip -o html.zip -d /usr/share/nginx/  > /dev/null 2>&1

systemctl start nginx
systemctl enable nginx

echo "6.2解决游戏站点不能访问问题"
cat >/etc/nginx/conf.d/01_game.etiantian.org.conf<<'EOF' 
server {
        server_name game.etiantian.org;
        listen 80;
        root /usr/share/nginx/html;
        index index.html;
}
EOF

systemctl restart nginx

echo "7.1开始部署网盘"

cat >/etc/nginx/conf.d/pan.etiantian.org.conf<<'EOF' 
    server {
            server_name pan.etiantian.org;  ## 临时域名。正式搭建需要购买域名。
            listen 80;                      ## 网页服务端口。
            root /data/pan;                 ## 程序存放目录。
            index index.php index.html;     ## 首页,网页总入口。
            ##符合php扩展名结尾抛给PHP服务处理
            location ~ \.php$ {             ## 以.php结尾的程序发给PHP服务(9000)处理。
                fastcgi_pass   127.0.0.1:9000;  ##发给PHP服务处理。
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    }
EOF

cat /etc/nginx/conf.d/pan.etiantian.org.conf
echo "7.2检查语法,正确标志是syntax is ok"

nginx -t
systemctl restart nginx

echo "7.3创建网盘站点目录"

mkdir /data/pan -p
unzip -o k*.zip -d /data/pan  > /dev/null 2>&1

echo "7.4授权【nginx用户】访问网盘/data/pan目录"

chown -R nginx /data/pan;chmod -R 777 /data/pan/

echo "8.1开始部署博客"

cat >/etc/nginx/conf.d/03_blog.etiantian.org.conf<<'EOF'
    server {
            server_name blog.etiantian.org;  ## 博客域名配置。
             listen 80;                       ## 网站的端口。
             root /data/blog;                 ## 程序目录。
              index index.php index.html;      ## 首页文件。
    location ~ \.php$ {                  ## 以.php结尾的所有文件都发给PHP服务(9000)处理。     
        fastcgi_pass   127.0.0.1:9000;   ##把PHP程序抛给PHP服务处理。
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
       }
    }
EOF

cat /etc/nginx/conf.d/03_blog.etiantian.org.conf
echo "8.2检查nginx配置语法,并重启nginx"
nginx -t
echo "成功标志 结尾successful"
systemctl restart nginx
echo "8.3创建博客目录并解压"
mkdir -p /data/blog
unzip -o wordpress*.zip -d /data/blog > /dev/null 2>&1
echo "8.4授权nginx服务和PHP服务得对应nginx用户管理博客目录/data/blog"
mv /data/blog/wordpress/* /data/blog/
chown -R nginx /data/blog/;chmod -R 777 /data/blog/

echo "9.1开始部署博客新增主题"
unzip -o zhutibao.zip > /dev/null 2>&1
cd wordpress主题
unzip -o kratos-main.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o lolimeow-master.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o L-Talk-master.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o origami-master.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o sakura-3.x.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o Sakurairo.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o Sakurairo-main.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
cd 

end_time=$(date +%s)
execution_time=$((end_time - start_time))
clear

cat <<EOF
执行耗时:$execution_time 秒
                                                                    ,----, 
         ,----,       ,----,                                      ,/   .\`| 
       .'   .\`|     .'   .\`|    ,---,       ,---,  ,----..      ,\`   .'  : 
    .'   .'   ;  .'   .'   ;  .'  .' \`\  ,\`--.' | /   /   \   ;    ;     / 
  ,---, '    .',---, '    .',---.'     \ |   :  :|   :     :.'___,/    ,'  
  |   :     ./ |   :     ./ |   |  .\`\\  |:   |  '.   |  ;. /|    :     |   
  ;   | .'  /  ;   | .'  /  :   : |  '  ||   :  |.   ; /--\` ;    |.';  ;   
  \`---' /  ;   \`---' /  ;   |   ' '  ;  :'   '  ;;   | ;    \`----'  |  |   
    /  ;  /      /  ;  /    '   | ;  .  ||   |  ||   : |        '   :  ;   
   ;  /  /--,   ;  /  /--,  |   | :  |  ''   :  ;.   | '___     |   |  '   
  /  /  / .\`|  /  /  / .\`|  '   : | /  ; |   |  ''   ; : .'|    '   :  |   
./__;       :./__;       :  |   | '\` ,/  '   :  |'   | '/  :    ;   |.'    
|   :     .' |   :     .'   ;   :  .'    ;   |.' |   :    /     '---'      
;   |  .'    ;   |  .'      |   ,.'      '---'    \   \ .'                 
\`---'        \`---'          '---'                  \`---\`
EOF

cat <<EOF
===========================================================================================
Successful!
数据库用户名:root
数据库密码:1234
请在你的Windows中用记事本管理员身份打开去编辑C:\Windows\System32\drivers\etc\hosts
这个路径文件新增如下内容,本机进行域名解析后再访问下述域名
$(hostname -I | awk '{print $1}') game.etiantian.org pan.etiantian.org blog.etiantian.org

EOF

注:在这里复制的去配置域名解析的要把 $(hostname -I | awk '{print $1}')替换成你的IP,这段在liunx中执行后就是显示的你的IP

脚本链接:https://pan.baidu.com/s/1U0MRxGmV_m3KrH-JiOJQEg?pwd=ewgb 
提取码:ewgb

四.关于Nginx多项目部署

我这个项目中是把游戏的html替换到nginx的html目录里,然后把博客和网盘的页面挂载到/data里,在data文件夹里分别放着博客的程序和网盘的程序。

在这之上,需要在/etc/nginx/conf.d目录(没有则新建)里挂载着三个项目的server如下图:

这是一个 Nginx 的服务器配置文件片段,它定义了一个服务器块(server block),用于处理来自于 blog.etiantian.org 域名的 HTTP 请求。

同理,在部署多项目时进行相同的原理,做一些引用路径的修改即可。 确保你的文件以 .conf 结尾,并且在修改后检查 Nginx 的配置文件以确保没有语法错误。完成后,重新加载 Nginx 配置使修改生效。

至此就结束啦。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要实现nginx部署前端项目的自动化,你可以使用Docker和Dockerfile文件来完成。首先,你可以创建一个Dockerfile文件,文件内容如下: ``` FROM nginx:latest COPY dist/ /usr/share/nginx/html/ COPY default.conf /etc/nginx/conf.d/default.conf ``` 其中,FROM指令指定了基础镜像为最新版本的nginx,COPY指令将项目根目录下dist文件夹下的所有文件复制到镜像中的/usr/share/nginx/html/目录下,并复制了一个自定义的nginx配置文件default.conf到/etc/nginx/conf.d/目录下。 然后,通过执行以下命令来构建镜像: ``` docker build -t my-nginx-image . ``` 这将会根据Dockerfile文件来构建一个名为my-nginx-image的镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Docker】docker+Nginx部署前端项目](https://blog.csdn.net/weixin_52834435/article/details/126967506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [前端项目自动化部署](https://blog.csdn.net/Yuanyuan__/article/details/128202653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值