跳转至

🔥AI副业赚钱星球

点击下面图片查看

郭震AI

从零搭建远程服务器网站步骤

编辑日期: 2024-07-18 文章阅读:

从零开始在新的 Amazon EC2 服务器上搭建完整环境的详细步骤。 服务器是Ubuntu类似系统。

包括安装 Miniconda、Apache2、GitHub、配置 HTTPS 访问、应用程序代理到 8099 端口、复制 Let's Encrypt 证书以及设置负载均衡。

1. 准备工作

登录到新服务器

2. 安装 Miniconda

下载并安装 Miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh

source ~/.bashrc

创建和激活环境

conda create -n myenv python=3.9

conda activate myenv

3. 安装 Apache2 和配置 GitHub

安装 Apache2

sudo apt-get update
sudo apt-get install apache2

安装 Git

sudo apt-get install git

克隆 GitHub 仓库

git clone https://github.com/yourusername/yourrepository.git /var/www/yourrepository

4. 配置 HTTPS 访问

安装 Certbot

sudo apt-get install certbot python3-certbot-apache

获取 Let's Encrypt 证书

sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

按提示完成证书的获取和配置。

Certbot 将自动配置 Apache 以使用这些证书。

复制证书到另一台服务器

假设另一台服务器的 IP 为 123.21.21.2,执行以下命令将证书复制到另一台服务器:

scp -i /path/to/your.pem /etc/letsencrypt/live/yourdomain.com/* ubuntu@123.21.21.2:/etc/letsencrypt/live/yourdomain.com/

scp -i /path/to/your.pem /etc/letsencrypt/archive/yourdomain.com/* ubuntu@123.21.21.2:/etc/letsencrypt/archive/yourdomain.com/

scp -i /path/to/your.pem /etc/letsencrypt/renewal/yourdomain.com.conf ubuntu@123.21.21.2:/etc/letsencrypt/renewal/

5. 配置应用程序代理到 8099 端口

配置 Apache 虚拟主机

编辑 Apache 虚拟主机配置文件:

sudo vim /etc/apache2/sites-available/yourdomain.com.conf

添加以下内容:

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =yourdomain.com [OR]
    RewriteCond %{SERVER_NAME} =www.yourdomain.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com

    DocumentRoot /var/www/yourrepository

    <Directory /var/www/yourrepository>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

    ProxyPreserveHost On
    ProxyPass / http://localhost:8099/
    ProxyPassReverse / http://localhost:8099/

    ErrorLog ${APACHE_LOG_DIR}/yourdomain.com_error.log
    CustomLog ${APACHE_LOG_DIR}/yourdomain.com_access.log combined
</VirtualHost>
</IfModule>

这里一定不要错:

ProxyPass / http://localhost:8099/
ProxyPassReverse / http://localhost:8099/

还有这里,下面文件若没有,手动创建,标准内容,从申请域名的最原始服务器那里拷贝:

Include /etc/letsencrypt/options-ssl-apache.conf

启用新站点并重启 Apache:

sudo a2ensite yourdomain.com.conf
sudo systemctl reload apache2

6. 设置负载均衡

在两台服务器上安装并配置 Apache 的负载均衡模块。

安装并启用模块

在两台服务器上执行:

sudo a2enmod proxy
sudo a2enmod proxy_balancer
sudo a2enmod proxy_http
sudo a2enmod lbmethod_bybusyness

配置负载均衡

编辑负载均衡器服务器上的配置文件,例如 loadbalancer.conf

sudo vim /etc/apache2/sites-available/loadbalancer.conf

添加以下内容:

<Proxy "balancer://mycluster">
    BalancerMember http://123.21.21.1:8099 route=1
    BalancerMember http://123.21.21.2:8099 route=2
    ProxySet lbmethod=bybusyness
</Proxy>

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{BALANCER_WORKER_ROUTE}e" proxy_combined
    CustomLog ${APACHE_LOG_DIR}/yourdomain.com_access.log proxy_combined

    ErrorLog ${APACHE_LOG_DIR}/yourdomain.com_error.log

    <IfModule mod_status.c>
        <Location /server-status>
            SetHandler server-status
            Require all granted
        </Location>
    </IfModule>

    ProxyPreserveHost On
    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =yourdomain.com [OR]
    RewriteCond %{SERVER_NAME} =www.yourdomain.com
    RewriteRule ^/(.*)$ balancer://mycluster/$1 [P,L]
</VirtualHost>

启用新站点并重启 Apache:

sudo a2ensite loadbalancer.conf
sudo systemctl reload apache2

7. 验证配置

通过浏览器访问 https://yourdomain.com,确保可以正确访问您的应用程序,并通过 https://yourdomain.com/server-status 查看负载均衡状态。

这样,您就成功配置了一个从零开始的完整环境,包括 Miniconda、Apache2、GitHub、HTTPS 访问、应用程序代理和负载均衡。

京ICP备20031037号-1