Migrate blog from GCP —> WordPress.com! 😀😀
Tagged: Blog Toggle Comment Threads | Keyboard Shortcuts
-
Wang
-
Wang
Website down
Today I received alert email suddenly which said my blog site went down…😂😂😂
So I logged in server and checked containers’s status, everything looked fine
[root@blog xiaowang]# docker stack ps blog ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS qwsjjol3jk2f blog_mysql.1 mysql:5.7 blog Running Running 15 days ago n9gbil4zcavy blog_nginx.1 nginx:1.13.8 blog Running Running 15 days ago hg778gcc35vz blog_wordpress.1 wordpress:4.9.1 blog Running Running 15 days ago
When I checked the port, everything also looked fine
[root@blog xiaowang]# netstat -tuapn | egrep '80|443' tcp6 4 0 :::80 :::* LISTEN 12146/dockerd tcp6 2 0 :::443 :::* LISTEN 12146/dockerd tcp6 74 0 ::1:80 ::1:47352 CLOSE_WAIT - tcp6 3 0 ::1:80 ::1:47348 CLOSE_WAIT - tcp6 74 0 ::1:80 ::1:47402 CLOSE_WAIT - tcp6 78 0 ::1:443 ::1:56994 CLOSE_WAIT - tcp6 78 0 ::1:443 ::1:56944 CLOSE_WAIT - tcp6 74 0 ::1:80 ::1:47350 CLOSE_WAIT -
But when I executed “curl http://localhost“, it was blocked, so I guess something wrong with local network.
After checking I executed “sysctl -w net.ipv4.ip_forward=1” to enable ip forward, and I finally could access the port. So I executed “echo “net.ipv4.ip_forward=1″ >> /etc/sysctl.conf” to make it permanent.
I’m using google cloud, I guess maybe they have reset the network which I didn’t make it permanent before.
-
Wang
Test https on blog
After applying certification on Let’s Encrypt, I tested the certification and generated the report.
-
Wang
not good..
-
Wang
Proxy AliCloud’s domain to AWS’s server
I registed my domain “wanghongmeng.com” on Aliyun, and applied free EC2 server for one year on AWS.
After building my blog on AWS, I set A parse to the server’s IP of AWS.
But yesterday I received email from Aliyun which said that my server was not in Aliyun after they checking, it was not allowed, I have to miggrate my blog server to Aliyun, otherwise they will undo my authority number.
After thinking about this, for saving money(Aliyun is not free for one year), I solved it by the way below:
1.Set A parse to my friend’s server ip which was bought in Aliyun
2.Add a piece of configuration in his nginx.conf:
server { listen 80; server_name wanghongmeng.com www.wanghongmeng.com; location / { rewrite ^/(.*)$ https://$server_name/$1 permanent; } } server { listen 443; server_name wanghongmeng.com www.wanghongmeng.com; ssl on; ssl_certificate "Location of Pem File"; ssl_certificate_key "Location of Key File"; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "Your Algorithm"; ssl_session_cache shared:SSL:50m; ssl_prefer_server_ciphers on; location / { proxy_pass http://AWS's IP:443/; } }
3.Expose 443 port on my AWS, and only accept requests from my friend’s server IP:
server { listen 443; set $flag 0; if ($host = 'www.wanghongmeng.com') { set $flag 1; } if ($host = 'wanghongmeng.com') { set $flag 1; } if ($flag = 0){ return 403; } location / { allow "My Friend's Server IP"; proxy_pass http://blog-ip; } }
Things done! 😀😀
-
Wang
Build blog with Docker/WordPress with https
1.install docker
1.1.update yum
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
1.2.install docker
sudo yum update -y sudo yum install -y docker-engine sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
1.3.start docker
sudo systemctl enable docker sudo systemctl start docker
2.https/nginx configuration
2.1.replace certificate
replace domain.key/chained.pem with your certificate, you could apply free certificate on Let’s Encrypt
2.2.nginx configuration
replace wanghongmeng.com with your domain in nginx.conf
3.initialize
3.1.wordpress initialize
login http://xxx.com, setup wordpress
3.2.install https plugin
install Really Simple SSL plugin, setup whole site covered by https
3.3.test
-
Wang
Build blog with Docker/WordPress
1.install docker
1.1.update yum
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
1.2.install docker
sudo yum update -y sudo yum install -y docker-engine sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
1.3.start docker
sudo systemctl enable docker sudo systemctl start docker
2.start wordpress by docker-compose
sudo docker-compose -f blog-compose.yml up -d
3.test wordpress
P.S. start container by docker instead of docker-compose
docker run --name blog-mysql -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=blog -e MYSQL_USER=blog -e=MYSQL_PASSWORD=blog -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci docker run --name blog-wordpress --link blog-mysql:mysql -e WORDPRESS_DB_USER=blog -e WORDPRESS_DB_PASSWORD=blog -e WORDPRESS_DB_NAME=blog -p 8080:80 -d wordpress:4.9.1
Reply