From 5f21b7972da1b97c065e548562bb69dd257e98b8 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Fri, 17 Aug 2018 05:52:27 +0000 Subject: [PATCH] Docs: update Pages IP address change + other DNS updates --- .../pages/getting_started_part_three.md | 40 +++++++++++++----- .../dns_add_new_a_record_example_updated.png | Bin 10578 -> 0 bytes ..._add_new_a_record_example_updated_2018.png | Bin 0 -> 7704 bytes 3 files changed, 30 insertions(+), 10 deletions(-) delete mode 100644 doc/user/project/pages/img/dns_add_new_a_record_example_updated.png create mode 100644 doc/user/project/pages/img/dns_add_new_a_record_example_updated_2018.png diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index 61af1d2ab27..e1eede8bbed 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -1,5 +1,5 @@ --- -last_updated: 2018-02-16 +last_updated: 2018-08-16 author: Marcia Ramos author_gitlab: marcia level: beginner @@ -28,7 +28,7 @@ Let's start from the beginning with [DNS records](#dns-records). If you already know how they work and want to skip the introduction to DNS, you may be interested in skipping it until the [TL;DR](#tl-dr) section below. -## DNS Records +### DNS Records A Domain Name System (DNS) web service routes visitors to websites by translating domain names (such as `www.example.com`) into the @@ -64,22 +64,28 @@ for the most popular hosting services: If your hosting service is not listed above, you can just try to search the web for `how to add dns record on `. -### DNS A record +#### DNS A record In case you want to point a root domain (`example.com`) to your GitLab Pages site, deployed to `namespace.gitlab.io`, you need to log into your domain's admin control panel and add a DNS `A` record pointing your domain to Pages' server IP address. For projects on -GitLab.com, this IP is `52.167.214.135`. For projects living in +GitLab.com, this IP is `35.185.44.232`. For projects living in other GitLab instances (CE or EE), please contact your sysadmin asking for this information (which IP address is Pages server running on your instance). **Practical Example:** -![DNS A record pointing to GitLab.com Pages server](img/dns_add_new_a_record_example_updated.png) +![DNS A record pointing to GitLab.com Pages server](img/dns_add_new_a_record_example_updated_2018.png) -### DNS CNAME record +NOTE: **Note:** +Note that if you use your root domain for your GitLab Pages website **only**, and if +your domain registrar supports this feature, you can add a DNS apex `CNAME` +record instead of an `A` record. The main advantage of doing so is that when GitLab Pages +IP on GitLab.com changes for whatever reason, you don't need to update your `A` record. + +#### DNS CNAME record In case you want to point a subdomain (`hello-world.example.com`) to your GitLab Pages site initially deployed to `namespace.gitlab.io`, @@ -112,14 +118,14 @@ If the domain has multiple uses (e.g., you host email on it as well): | From | DNS Record | To | | ---- | ---------- | -- | -| domain.com | A | 52.167.214.135 | +| domain.com | A | 35.185.44.232 | | domain.com | TXT | gitlab-pages-verification-code=00112233445566778899aabbccddeeff | If the domain is dedicated to GitLab Pages use and no other services run on it: | From | DNS Record | To | | ---- | ---------- | -- | -| subdomain.domain.com | CNAME | gitlab.io | +| subdomain.domain.com | CNAME | namespace.gitlab.io | | _gitlab-pages-verification-code.subdomain.domain.com | TXT | gitlab-pages-verification-code=00112233445566778899aabbccddeeff | > **Notes**: @@ -129,9 +135,11 @@ If the domain is dedicated to GitLab Pages use and no other services run on it: > - **Do not** add any special chars after the default Pages domain. E.g., **do not** point your `subdomain.domain.com` to `namespace.gitlab.io.` or `namespace.gitlab.io/`. -> - GitLab Pages IP on GitLab.com [has been changed](https://about.gitlab.com/2017/03/06/we-are-changing-the-ip-of-gitlab-pages-on-gitlab-com/) from `104.208.235.32` to `52.167.214.135`. +> - GitLab Pages IP on GitLab.com [was changed](https://about.gitlab.com/2017/03/06/we-are-changing-the-ip-of-gitlab-pages-on-gitlab-com/) in 2017 +> - GitLab Pages IP on GitLab.com [has been changed](https://about.gitlab.com/2018/07/19/gcp-move-update/#gitlab-pages-and-custom-domains) +from `52.167.214.135` to `35.185.44.232` in 2018 -## Add your custom domain to GitLab Pages settings +### Add your custom domain to GitLab Pages settings Once you've set the DNS record, you'll need navigate to your project's **Setting > Pages** and click **+ New domain** to add your custom domain to @@ -165,6 +173,18 @@ will fail and attempts to visit your domain will respond with a 404. Read through the [general documentation on GitLab Pages](introduction.md#add-a-custom-domain-to-your-pages-website) to learn more about adding custom domains to GitLab Pages sites. +### Redirecting `www.domain.com` to `domain.com` with Cloudflare + +If you use Cloudflare, you can redirect `www` to `domain.com` without the need of adding both +`www.domain.com` and `domain.com` to GitLab. This happens due to a [Cloudflare feature that creates +a 301 redirect as a "page rule"](https://gitlab.com/gitlab-org/gitlab-ce/issues/48848#note_87314849) for redirecting `www.domain.com` to `domain.com`. In this case, +you can use the following setup: + +- In Cloudflare, create a DNS `A` record pointing `domain.com` to `35.185.44.232` +- In GitLab, add the domain to GitLab Pages +- In Cloudflare, create a DNS `TXT` record to verify your domain +- In Cloudflare, create a DNS `CNAME` record poiting `www` to `domain.com` + ## SSL/TLS Certificates Every GitLab Pages project on GitLab.com will be available under diff --git a/doc/user/project/pages/img/dns_add_new_a_record_example_updated.png b/doc/user/project/pages/img/dns_add_new_a_record_example_updated.png deleted file mode 100644 index 2661a497b91f785210a379ac26562c4e97a9e7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10578 zcmds7^+Qx$x2B|}yN6B@hL-MbDHZ9G4(Vp-k}l~X3_?)4TRK!!YK9y^8l<_$*H^z! z?)?ky4-7MF&aAWdT6?ekJkL5Y+L}tYv8k|;kdSVxD9h_2A)%E3?|m>)fY+isWlg|8 zWDi{>S){5l8U*kG%T?Lf0|^O-_~#!oQcfNP5)%6l6?qwbALQ@Py<189PNTxZEXZ~A z30mZ9;%F7NSok81h+2?I`*LjL6fC6^`1pDgsr;*JONtfy@Eo>6XbGsz$Q6RL_zT7_ z`XyGkMH%MW)cHa}_ZEE@vz-J3&kpHNQ$x_08IZA*rBR5If4&VRlP^4? zc4?gq%dyn^>l@&rB_)r+-xvP*jR^&Ex+zXep^(zQE`EO_DY5hW?eBZ=B!)<~k$I~) zCI7bkbJvMoG=0C@!8n+IJGXNK%sksEUl{%~KEPuk46EXh>WYlu@1ak?F)I#D=2+g! z{F=$X_m=J<)puDEe|2dFQbjIC2^2e>GYq_sY-hTV?_6e%s z*D}?A$35YL#>v?R>xnWfs@?0S9vA%d@IEe;FZt!*r^msxC@-tq&x+&j

L#xWVIi z+h>d9qV5|$5*!ugLB`T&+x=`?AaS~qI_vmmh}G#!{SbxJ#ct1Hz=1}C^L&PpMa)Rm z$XcV@GCCfO$WH5lsUHHG{mA+Ey%|C?y3Y zsWRUIUPR40LuMSeW^32;{kJ2johzo)YO^w=Q_;S>bMjwJHw@YzV#DF7*Z#3Rujk+U zH5nu~2!p8}XsG>8OsFEOwhrR^o8ddtFrQtS3V3)T(| zg*1IZ^WJxoFW0M?kI|tG^H0C_4OR@LvT0@WLv)UBkw3g^Axjyw+lAqHr**g6=R$c} z^vS0x+SBEMB-^_|+142#JI*fyy;1Z*(a3G}K(YeHMAzd_A)21sbEnU}7n)X5)IJ(n zCIBg{_IqGB+)*`i4rCJw1sIcsnNRRh4CbbV~X2|TDPQn(e(VvnMluoCvROA zB_$0W2VV;AG>EQcF$Gfat+k44i>HgvAB;-{m$3`8{H_nub&Nn{?^m;2zTT|v2tq(J zC70vD#j9M^t?u1eY=zs=MaA?_dkK{a`7|X@SM)SRSKEFp^u*sMc>2|;VWG``KyE@7 z$TjQp^5pO_(T&1z17quSJMFpNj0euXKjytldZSmizBaf(BgKzq^b8+)eQ4Qfr@sC1 zflHelz66Qq3d8qAiR0N(p|7~C>p+}_5dRU>~o7VHcI@W2-9#*5pDu)Q_Pgv3i9!`3UOEhdZZ$`52;=#zpgFxkH z;BD@X2$n(9d_;&l8cWsht}^{q+X|-`{>RRTQ@JY3BG{ zW)48w>xN`Pivb?}9XfU{ZAS)RT6fKu*zZu4HBpvP$CpnNyG5JG=4{GWkKlDaz4lDbSoH8l0Lj;HtA zC{m&i6rj1aE)$LpI&fVD?Y{fsz(ukIAvdMCJ=LwDR>+Pjni=5kZ})|+7m9wq-jwe;>V<_u!Gq@>54iCdyO#kZE9Nc9uHa*Ps`Sunb0aucRrra^=PpQ zAsDgVgM-hQERk%r{Z3lZo!iE8_9Zue^9|Ljmcu4-+*`;S|?yohI-R8J}+4ytw7?d%1?7*&v6C1^Ugz zvum7*^*(4noKlN;962bBrsAmu`BKNI=BP+>vBpk<6a2Z)@HIdEyR(zv)4d8=Hf?8M zPu_c$dNOS!dNo<9Eqw|M7OB(L=$1BzY5jTelJcQm)go$eGP+2|pTuU~Uz2830E_L0Ma&;b z>4yOEa3?U^yd^a#>$>iQ7u#Pw> zp>QLb$xMQc=F7-Y!f5qTb}SQXz!-B?TedMtEJo~pj0^+Wb42ytL)JelR@#GA`&wMW zq%U@Tbr`?T;FP@xYPRCv6LNUai*$~M_Yol9 zDQgQ)f)gq46H~; z0Z{ymZLj0X)gU%!*eoSGed`H7jTTDC2iAxY&PPv=4cR^Nz*zj6KzAO-kC zcf9PrA<4|?8`<8%pv9R^&v2d5QF=Bme3o=w6>G4QB4V7gb%MS9|>ZOW)G2_PAI+$47PS0z}X4F-FDV*EQXU@`8Nh zRlCjC4U)&RmOx5A`^?sui(DFU2-hvyg3+wgf3G4tE0ot++x$%5m859g2SE{!_o0>B z^DX5HeAt?EtbweOYyH?57w|8+mBz};qn25DwI2G95epg5douBjh=@f1sF;o5vA$vs z)T4>C_Bv6QdVWi_P?VrzIU8% zc?r+~W~(~6g7O1WvWQa4Uf$91((L`rA^SXyfLy7$Ong@jt5)I!)Q=fL+@Zi+S@G+H zbW?lTvsuh@1g3wZLu4$VjCgTM%+Lr5gQh`Hk_-G6=IKtGP$s#QHJ*?_WtnGl|n|elM(l$A~Q_4K>VC zvsUh^iA;%H||8*h*dOb_8*-4&yYg93A7QUYr4id zH{6H<9LzmzO8xIpNSgy34BMmfRmBZAc>t3Wm9c02Lu3A#c;Q{Z3~ACg(7)kE6NR%a zuTbCyIn|~B%-s(;xj6rJ!@vemB2Dd|82-N}#f}S@&F`d>rvJsln3GebUsmdsuL*p( zG5QcRY#HeSQ_!8%^t8W!qKyi;x?Ll1!;>~9Fd*57tX%&&R)5V49k5fG+20svA;Hh- zHmV!w{x!~I>Dz!^uyg8W6hJ?N>6ZPf^hPkL0J}p7wDN{o_GhZ#{KhIbQY8r3KOm{; z-7rHKfQ8U&{U+tVV+JJM0kFSB&M3QK20{Zhj2^aPxv|V$2L2^92RP89N)!{$&NizbIG{RZ{&(W25~MdTZeJaL zb#ZBgMZW!LvN<4i<#tt4?|6l#7*FB$o}=8=?Vi`SnTsb+ZnNBFLc2OBxNiNi;Qzqs z?T2_0{<@1)mb9ukXIPbOhc7Fy8r3Jgw{R9&|Qc@Xq1G z3s1wbZ*ElprGPx0Y@U*p9a|Ynb?LY~CN+HM29V|oE8_jrD6i|wAKu$@O#t4Z9QFnv z#!qs4Fe)rM3Gne21OO3iX}~rk!@M1NqE@LILdHHY2sryUj>-`YjlI@Z+q|5R!@s=T z2?ki{(YW}*$W+_f&thkHg=QLfbiesTkfW_(!SBhW0{L^7_S0{6w8eJa5m%^Q5GRylQkIIX1x&{u$+XFVF`t{X|?(EAABd$Z%D;EUzUAB*E@WJ1HS^?4tD z&Zh#r?>NlUpzdY3CLau>hTdl>wBT~f_Cq?IAkAH~P8{CWn)B_Ja@C|rTuS~G04JEZ zcHO$?{Y}6eF2CZu4izi#IyR;i^Tb?l29nAP@Rbo?-li3zbkoR~+<*4q#0Az&;o(mP z1pu<`A+`c5`PO>diHlr^+dntmR!tAyV<0RVGz6e~-|O`PRq=NSwo54W{q!VH4-Grc zK6GKw)4Y7%JSNij;$>BA^OMDP3G~K3Jh6>JsY`@bbgEr}%EQ2;54Ht?LhY{rX~_0z zEmlE$;F;#R^A`YwaEMwWC8*;qbOZtvy|#~x>*YkwE4p&vUemiBPQaqI8&-!Q)@Z%w z_O|NAg|H3)Tp@XNvV7|Dq3Th~q3hH`d53#;6NRR2eqG6jB}tNJQBoJ7u;H$742)%! zR93vowj1 z2?Eowb|A7@a$)9M>a6I4_TpFo9n|1KWcGgcWMzogSvfswJJw?BK2&8*ty{1-T)jolFhMu<469;b5c)B0|NS1z{%Zc6;C)B~h)@EkwBOCJuwoSy@Bt&ZQt!JSJslR}&8iTl<@m!+wi zvdyl=fR=LpspIMh*b}$-;El(hZRyJb@_gViMR=ab2$xBx%XO*iAuEbzj)*}?pf1Vq zPWGIv@&@}3f}+qY&%}TwjuSpQQfc`Pcffs+H)t;o5O)rnH>*k_3gHwZtosfSQUgpS zw?Sazc73Kix(0;EK`ZSGVEb7LVA>!SRgbisEOJyt;xB&|h}yA3sH`WApcT0nP77vm zH*c3!z7MxokFiW}+yWh~o?r5Oi?#$O#A|Xf39UmSw zeWox#Lczz>38-DBtC@I0FXU)6Axhz@chTx^qDHS0-L)2=h5 z9F?~5`@64IZ{BlKEZNDDKWl`?a)kw6UtPwm1Y90{DgYvKm#jylTtYI^~rx*yxNntNaJAo}!JH>5G$M^*x&T*v>LoJ{Zq_jS@ zNCo#(JJnADa^u*A0BfoB(^{4E-4my_qmR8|8QVO$s5FcUp8$R3jlUWg{9*ZM&_85J zMc=K`ZBT~v;JrnLh+FQbhaMU%;C2o^9H}UWb#h`ITnwLbW*l3#v7RY)*u%s+btrA99 zk!LeEu4qYiB|4$OVFQ6njkU+s>AG!vfi}Cm;OwL_u+mu$)Wh5=j&+o1`(TGQuAAnr zAMP7YT9-bE@mulqR3|hH$GF|T0gtl)BW4L7C`6NxnjK!ogU1RZfrH8Nb2i)kZ}d3o z#Ce&bd7hsrQp&S?U%Uo%tS+Rc^PS*pYA+>^3Z7}p=-lF+;gxJ7l-s2S>SVH$lV96` z_~YN(x*I?%l5F@m(2JR#F*%WcIzrX5)&j&z6@jFM;f)DTU{DXR?%kKzA7o;NOC#Z= zG8BI_wxxBZ$deMu&VH(}_#7Fc8tr4H?JaeEI_?$+V!&E&Ir{jZiLD8w!>i1_5ENft zsKp+t6e;%5|NGk!Q%fWW!nF6EE6KQFS-{i1K`?tbyx8@)xcwx~eK|u>yXcHPbs*F> zVj!EX;?*opk8oOlJilhbi&xt-a1wxOix;!E>hizE&XvK0UJcpxmkflESo&^RS3v0B z7T0!Rk&RlQ_@a9hvsh}T#;6}r$gK?MSZ@-m%7IJ9!x!-O8{ZqtZoVL=z*E9r@Lhi% z&#+q-dka3jd^?gU^K0Y-#v>#p>fak*mS7Nin5C~Z38 zQsNJr^rNyUkCbjrxRX%0W76SZJ>>E+3p&VM)P^QcL)FO7-p)jLT@(-YK9))CVZBsy z7Q!oiH0w%2>wFPvXQL^fcb|QrBSAfcntK7OF~6}P=5pDq*CEw&&bTUECd2hWIwoJN z8FRJ&L;-sGXt4b9_$xjKM4|*symb(K;e{)}z1u;5x|INX#(w8w)(0j06OK&Q-Wud( zPu&RUVzn}9;0=x~13V!VSAaTq?i4qGKr@D(sFplY<9dIvW{8-OU+1Adu5i$zt*#U%yfukBuQ0&aDO1ijr#S!#T>&~iU@uqe zjmaIW(L>yC`j#cD2HR7&R>`7jIYON&gDG>9pfFNge%=*=hL{amX~poYLA`4`^)P3y zV5~}2uw2eIYs~CAUbYeA_bENShKjSAF4CUI0U=%a9Sm@nFL{l_@~A{hA2l8%Y{@La zA{kRZzZSP!DMdfAP3C&FRA5tv0CX+%Y;yi^26^c+A$zK>9uIE-g)Qx<9(a^Z=84x- zI&>3jKIh;;6SaL`B&jZH`H|)e>L)THyrRKb?6FheY$fO%&}2tw1?{I!wfVYJ1a-$B zfbLWOoBV}4|4RBj?B9KQ`QI$O-;-KMO(w{Cew!W8n^3z zY`5%aF4kg78Jx5N0w^U8)5k)~@-lXCPJ3SL{3Q3FAGubJfis;#A zYJdC{41Cn*oN2ljiNpg$-&8z_O(p%@2f?Lgh%+CVK`5j_l?<+SU`d5cISrC2;J=^c z<}!AsdtdrInYS*|7A( zS=MQo7fJaSbbmOew%=fpKB8!D_hheXSb6nLc}2CK$h9c%@IAgt5wf@!^k6?+os#H< znN#}P4yqHn=<^f(jSw|b5e33gHEs0N0(;ppwTF7Q1Tuc94;QXzIof`Q!-#>qT&%>+ z;p4H^3W^C-q$sz78_!6qtj@5_J*5&UGlfEHxH3p=2{qx3oyzhC8=QQuiRWpvW1jKi zBU2narDb{e3)e341{Z_`eN7f3&LeEk%C9OVUJ5QPuNr>&S^`$(O>m|p&W3}yAIs!? z_U0RiKyzU1Bz_ht8AZ%-k$)QQt&o2U-#>iGTkcK$r zK^{~}?{8Mo5whf^iR=gzC2$KzT|479*0nvZ z|CJ4F_(HFfsJZCDo2*p~HhCC35Kxasqyz?Uf|wlFb>6EY6Q2E9t_k+TO?#gp<{ z!1xH$tkzh&Qtq*VQ#t7@WKlGT24D4!M{vRY<>+alz4LwFpObZ~CSj(iV|qGhOVH*I z6!yM1ad!xk!AYlb^;t8rS=cWvA7@H*;~YA>1JZ7)Pgci+XY3TpH&Bbk;@2`LV0x-A z((SS58!+q5y~;22<0k8)(4fNX#2C%a$qMog^+CIE4DfH;@+<1~?XMFsZnHDaF;ltU zy#$u(k1_fbtKRD*!YuK~9;C5$w>?thtO#;QU^*Fa9Eq4XMfIHS`P~<{VG3mp0M=3r ziEOjgi@`9)5qRhPkFSeY?`E=7`JC%DEGmp1wJjoF8r3G))A`hH4y;4^{sg=)u=t_Ok`-ye~4<6Q8LLq72X;Nq% z_rf$d}K>$v3t%I5Y+%7JqAZ;^}lG(wDp!flE} zIXWDJ>m98}(xfAio{e+=crPo7X2nm^Jw5Z%u=+$H6yWXIjgqDh=R$i`iczzVV*NSQ zpN*2F+omde1)Zdws0j#$McHOo$iD9-kHGD`gp4e6us@*6cgjexPG?1zB*>$Yr9s-owgO6VrhQcToZ6_`{6e0$fE{m(_zK4S46`^W{B@$pkSs+d87{g^*k$*(J zp*C}*5Ns5YI+-y73s~e&4n=)+lFL_7uL7Y=X0#{>6?gQ}*=-`PQ1qt@ zZfB3SZFfZT5z%qQTB|hWe%CJV*UYN6bi8y;6jDr-9-c4%(yGlmK9b8Ia(`h&t$<*Ofa8Q zTu^tFC}$BfeP$n@O3hf)e<9Unc^IY2G|HYQmibzUr#L(}dtJ{@(SunVf@Ge}jn*fE ziBBSnLfS=p-@cM`!BJ$c@#{+xqv<>Pl$NG4kKGs`%QLcTZap3@hP>EOPnSQ>7^LrV``o(-4{>a?`O0F8zP2;kbxS>(6u$Ud%nCgDH**Cxj zv}m2Gw4)nMfaJ^&RbF0>?>BljBoJVb?1u0CZb;gLYCyXtGwtaO9X(bS(98eN!2s|q0+8wQ>^*7r!B!Id2 pA;;#8?g#@f5a0hR?4j4FMEaNuk11!if#)KTR1`Gjt7Of>{s*9ypJ)I8 diff --git a/doc/user/project/pages/img/dns_add_new_a_record_example_updated_2018.png b/doc/user/project/pages/img/dns_add_new_a_record_example_updated_2018.png new file mode 100644 index 0000000000000000000000000000000000000000..fa72df665874a14af38bee5b1d358c0192f0937d GIT binary patch literal 7704 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 Hf&c#l_QuE_ literal 0 HcmV?d00001