服務器部署問題(以阿里雲ECS爲例)

在Docker中部署Mysql與Wordpress

阿里雲ECS設置鏡像加速

進入網址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

按照操作提示,更改加速地址:

在這裏插入圖片描述

在Docker中創建持久化的Mysql Container

我這裏使用了root權限創建,但是大家不要這麼做

執行命令:

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=$PASSWORD_HERE -v /root/web/mysql_data:/var/lib/mysql -p 3306:3306 mysql:5.6

這會創建一個Mysql Container,它的數據將被存放在/root/web/mysql_data/目錄下,這個容器會佔用3306端口。

在Docker中創建與Mysql關聯的Wordpress Container

執行命令:

docker run -d --name wordpress -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=$PASSWORD_HERE --link mysql:mysql -p 8080:80 wordpress

注意,這個容器將佔用8080端口,這個端口號務必記住,在後面的Nginx反向代理會用到。此外,我們用WORDPRESS_DB_HOST變量指明瞭Wordpress使用我們的Mysql Container作爲其數據庫,數據庫密碼務必與上述的Mysql Container中的一致。–link參數將會連接這兩個容器。

在Nginx中設置反向代理

反向代理的設置並不複雜,安裝Nginx後,進入其配置目錄:

cd /etc/nginx/
ls

會看到:

在這裏插入圖片描述
然後我們進入site-enabled目錄,新建一個文件,名字爲blog,這個名字可以隨意設置,在site-enabled目錄下的所有文件都會被視爲Nginx配置文件。

修改blog文件爲以下內容:

server {
        listen 80;
        server_name blog.xxxxx.com;
        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_set_header HOST $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                index index.html index.htm;
        }
}

這裏我會對設置一一講解:

首先是listen 80;,這個配置用以說明監聽80端口。

其次是server_name blog.xxx.com;,這個配置用於標識你的服務名,理應配置成你的持有域名。

然後位於**location / {}**大括號中的內容:

對於proxy_pass,理應設置爲本機的服務器地址,用於反向代理轉發(基本就設置成http://127.0.0.1:端口號)。

但是這樣設置後有一部分應用,在安裝過程中可能會出現一些問題(例如Wordpress),即網站地址會被設置爲127.0.0.1:8080

此時應設置proxy_set_header,傳入由Browser提供的Header給我們的應用。三句原封不動抄上即可。

至此,服務部署完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章