使用云服务器CentOS7.6搭建个人网站

本文详细描述了如何使用云服务器、Nginx和Python的Flask框架搭建个人网站的过程。首先通过Xshell连接远程服务器,安装Nginx和Python,然后配置Python虚拟环境,接着安装Flask和uwsgi。之后,将Flask应用上传至服务器并编辑uwsgi和Nginx配置文件以实现反向代理。最后,打开防火墙端口并启动服务,成功访问网站。
摘要由CSDN通过智能技术生成

为扩展个人知识面以及满足我对网站建设的好奇心,以及在课程的推动下,我开始搭建属于自己的个人网站。

一 实验材料:

       硬件:云服务器(可用虚拟机代替)

       软件:(VMware),VScode, Pycharm, Xshell, Xftp

二实验过程:

1.使用Xshell连接远程服务器

使用xshell建立一个对话,添加主机地址(远程服务器公网IP地址)端口22,使用密码连接

使用root以及登录密码登录

2.安装Nginx以及Python

yum install nginx -y
yum install python3 -y

 3.配置python虚拟环境

pip3 install virtualenv 
pip3 install virtualenvwrapper 

4.创建虚拟环境

选择一个我喜欢的目录,或创建一个目录

mkdir $HOME/.virtualenvs

然后进行配置

在vim ~/.bashrc中添加行

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

执行 .bashrc

source ~/.bashrc

创建虚拟环境

mkvirtualenv -p /usr/bin/python3 虚拟环境名称

自动进入虚拟环境

退出虚拟环境,以及其他管理命令

deactivate            离开虚拟环境
workon                列出虚拟环境列表
lsvirtualenv          列出虚拟环境列表
mkvirtualenv          新建虚拟环境
workon [虚拟环境名称]   进入虚拟环境
rmvirtualenv          删除虚拟环境

5.进入虚拟环境后安装Flask+uwsgi

pip3 install flask
pip3 install uwsgi

6.创建示范程序(使用Xftp)将已经建好的示例项目上传到服务器(项目为PyCharm开发,自动创建虚拟环境venv)示例代码如下

from flask import Flask, request, jsonify, session, send_file, render_template, url_for

app = Flask(__name__, template_folder='./templates', static_folder="./static", )
app.secret_key = 'asxefdwqefwefgwefwefwefwefwq234hujkwefwefwefzxfcq1230938i90x4uj0819u401jxo1u094xi90'  # 设置一个用于加密会话数据的密钥
print('''
    ____ _   _    _    _     _   _ 
  / ___| | | |  / \  | |   | \ | |
 | |   | |_| | / _ \ | |   |  \| |
 | |___|  _  |/ ___ \| |___| |\  |
  \____|_| |_/_/   \_\_____|_| \_|                                 
''')

users = []


@app.route('/favicon.ico')
def icon():
    return send_file("./static/favicon.ico")


@app.route('/')
def main():
    return render_template('index.html')


@app.route('/show', methods=['GET'])
def show():
    return 'Hello World!'


@app.route('/register', methods=['POST'])
def register():
    data = request.get_json()
    username = data['username']
    password = data['password']

    # 检查用户名是否已存在
    for user in users:
        if user['username'] == username:
            return jsonify({'message': 'Username already exists'}), 400

    user = {'username': username, 'password': password}
    users.append(user)
    session['username'] = username  # 在会话中存储当前用户的用户名
    return jsonify({'message': 'Registration successful'})


@app.route('/login', methods=['POST'])
def login():
    data = request.get_json()
    username = data['username']
    password = data['password']

    # 遍历用户列表,检查用户名和密码是否匹配
    for user in users:
        if user['username'] == username and user['password'] == password:
            session['username'] = username  # 在会话中存储当前用户的用户名
            return jsonify({'message': 'Login successful'})

    return jsonify({'message': 'Invalid credentials'}), 400


@app.route('/logout', methods=['POST'])
def logout():
    session.pop('username', None)  # 从会话中移除当前用户的用户名
    return jsonify({'message': 'Logout successful'})


@app.route('/check_session', methods=['GET'])
def check_session():
    if 'username' in session:
        return jsonify({'logged_in': True, 'username': session['username']})
    else:
        return jsonify({'logged_in': False})


if __name__ == '__main__':
    app.run()

7.编辑配置nginx和uwsgi

创建配置文件

touch uwsgi.ini

配置如下

socket = 127.0.0.1:5000
chdir = /home/[项目地址]
virtualenv =/home/[项目地址]/venv
wsgi-file = /home/[项目地址]/app.py
callable = app
#plugins = python
master = true
vacuum = true
chmod-socket = 664
processes = 5
daemonize = /home/[项目地址]/uwsgi.log
pidfile = /home/[项目地址]/uwsgi.pid

启动uwsgi

uwsgi uwsgi.ini

 其他操作

ps -ef|grep uwsgi  查看进程是否启动
重启uwsgi:  uwsgi --reload uwsgi.pid
停止: uwsgi --stop uwsgi.pid
启动: uwsgi --ini uwsgi.ini

修改nginx配置实现反向代理  vim /etc/nginx/nginx.conf



        listen       [::]:80;
        server_name  [公网IP];
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location /static{

                root /usr/share/nginx/html;#这里写上项目地址就可以了,不用再加/static

        }

        location / {
                proxy_pass http://localhost:5000;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;

        }
        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
  

 设置nginx为开机自启,并启动nginx

systemctl enable nginx
systemctl start nginx

重启以及停止命令

systemctl restart nginx
systemctl stop nginx

8.打开防火墙80端口,并    重新启动防火墙 

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=80/udp
firewall-cmd --reload

9.启动项目

python3 app.py

9.浏览器访问 [公网IP]/show 出现Hello World便可大获成功!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
搭建 KVM 虚拟机需要先确保您的服务器支持虚拟化技术,可以通过以下命令来检查: ``` egrep -c '(vmx|svm)' /proc/cpuinfo ``` 如果输出结果大于0,则表示您的服务器支持虚拟化技术。 接下来,您需要安装 KVM 虚拟化软件包。在 CentOS 7.6 中,可以通过以下命令来安装: ``` yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install ``` 安装完成后,启动 libvirtd 服务: ``` systemctl start libvirtd systemctl enable libvirtd ``` 现在,您可以使用 virt-manager 工具来创建和管理虚拟机。如果您需要在命令行中创建虚拟机,可以使用 virt-install 命令。以下是一个创建 CentOS 7 虚拟机的示例命令: ``` virt-install --name centos7 --ram 2048 \ --disk path=/var/lib/libvirt/images/centos7.qcow2,size=20 \ --vcpus 2 --os-type linux --os-variant rhel7 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://mirrors.aliyun.com/centos/7/os/x86_64/' \ --extra-args 'console=ttyS0,115200n8 serial' ``` 其中,--name 参数指定虚拟机的名称,--ram 参数指定虚拟机的内存大小,--disk 参数指定虚拟机的磁盘路径和大小,--vcpus 参数指定虚拟机的 CPU 核心数,--network 参数指定虚拟机的网络配置,--graphics 参数指定虚拟机的显示方式,--console 参数指定虚拟机的控制台输出方式,--location 参数指定虚拟机的安装源,--extra-args 参数指定虚拟机的额外启动参数。 完成虚拟机的创建后,您可以使用 virsh 命令来管理虚拟机,例如启动虚拟机: ``` virsh start centos7 ``` 停止虚拟机: ``` virsh shutdown centos7 ``` 重启虚拟机: ``` virsh reboot centos7 ``` 删除虚拟机: ``` virsh destroy centos7 virsh undefine centos7 rm /var/lib/libvirt/images/centos7.qcow2 ``` 希望这些命令可以帮助您在 CentOS 7.6搭建 KVM 虚拟机。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰雨生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值