为了实现谷歌镜像站。
但是不好用,我的账户硬盘登不上,视频网站打不开。。。能搜索
域名购买:
国内要备案的,又要身份证什么的,还要审核。
便宜的域名一般到二手拍卖看看呢?
但是不太好的地方就是要审核,可以买到3块钱大半年,但是就是一个随机数的域名了都。(点击一口价,然后排名,购买之后要过户,要建立模板,又要审核等等,点击拍卖那就是很慢了,要等到拍卖结束日期)
国外就不要,所需要的就是一个邮箱。然后交钱就行。自己可以注册一个域名,自己也有几块钱一年的,看美元价格了。
如果说是商用,那就不要考虑钱的事了吧,注册com域名即可,如果是国内的话,备案要搞定。
域名和IP绑定:
购买以后管理DNS,进去以后
找一下A记录做一下,名称为@表示当前的根域名,不是@那就顺延二级域名。值为IP地址,或者定向到的位置。值为@表示当前的根域名。
TTL为存活时间(可能是域名刷新时间吧我觉得),简单配置就是第一行就可以。
CNAME用来配一个内部的重定向吧可能,这里把www.xxx.xxx解析到xxx.xxx呢我觉得。
找找看帮助,都是中文呢。https://sg.godaddy.com/zh/help/cname-19236
测试:
怎样让它早点生效呢?或者10分钟以后看看自己配置的对不对。
我是把TTL做成10分钟,然后手动把本地DNS改成了他们的DNS服务器。应该是我配完,他们的DNS服务器里应该是存有了,
等十分钟,ping一下域名看看,会不会解析到IP。
HTTPS的SSL证书:
现在还有谁在用http呢,可能还在上高中的学生吧。。。用用可以,但是还是把http改成https好点呢。
我们需要一个SSL证书。这个证书是机构颁发和许可的。如果是腾讯云?也许会送SSL证书呢?我用的是国外免费的证书。
这个和申请地址有关:https://letsencrypt.org/zh-cn/docs/
在https://certbot.eff.org/ 界面,选择自己的服务器操作系统,服务器用的web服务类型,然后看下面的专用教程。
中间遇到什么报错,直接百度搜就好了,无非是缺包,软链接没设置之类的(应该,一定会出现这个问题吧),很快就能搞定。
在certbot生成证书之前呢,要缺包nginx配置是正确和正常的。即:域名和IP已经绑定,能够访问HTTP服务。
Choose how you'd like to run Certbot这个步骤生成证书的时候,一般是这样的:
https://sebastianblade.com/certbot-add-new-domain-to-certificate/
就是说要用一个证书,有限制的使用一个跟域名,好多个二级域名可以共用一个证书。最多支持20个域名?反正是有限制的。
(建议先摸索一下,老老实实certbot --nginx 能不能成功,看看自动生成了什么代码)
主要的命令就是:
certbot certificates certbot --cert-name foo.com -d foo.com,bar.com,baz.com
HTTP转HTTPS配置
就是修改一个nginx.conf文件就好。给一个有价值配置,
这个文件直接做了反向代理了,不做反向代理去掉upstream www.google.com
然后修改location里面的就可以吧
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; upstream www.google.com { server 172.217.5.68:443 weight=1; #use nslookup tools to find more ip address } server { listen 80 default_server; listen [::]:80 default_server; server_name DOMAN; rewrite ^(.*) https://$host$1 permanent; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name DOMAN; # managed by Certbot root /usr/share/nginx/html; ssl_certificate /etc/letsencrypt/live/xxxxx/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/xxxxxx/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_redirect off; proxy_cookie_domain google.com DOMAN; proxy_pass https://www.google.com; proxy_connect_timeout 60s; proxy_read_timeout 5400s; proxy_send_timeout 5400s; proxy_set_header Host "www.google.com"; proxy_set_header User-Agent $http_user_agent; proxy_set_header Referer https://www.google.com; proxy_set_header Accept-Encoding ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Accept-Language "zh-CN"; proxy_set_header Cookie "PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=en-US:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2W1IQ-Maw"; subs_filter https://www.google.com.hk HTTPSDOMAN; subs_filter https://www.google.com HTTPSDOMAN; #subs_filter_types text/css text/xml text/javascript; sub_filter_once off; } error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } }
nginx配置文件让80端口访问的域名直接转443,实现的http到https,如果说之前ssl配置成功,网址就是可信的网址了。
然后是这个文件要改掉域名DOMAN,然后是,nginx要手动添加模块安装。
顺便说一下,这边的免费证书是pem呢,不是crt和key后缀,我不知道这个的区别,反正是能用的。
nginx安装过程
交叉编译即可。但是要选择一个正确的版本。(手动编译版本和yum版本要一致,便于后面用systemctl命令)
首先yum安装一下,看一下nginx -V,是啥版本,用的编译命令是啥。
然后再从nginx上下载对应的release代码,手动编译源码。手动编译时候,给configure脚本添加--add-module配置,里面加进去要添加编译的模块源码路径。
需要的模块在下面这里网址上写有了,其它地方也有人写,不说了。
手动编译时候:make -j4, make一下看看。最后的执行文件为./objs/nginx,将它覆盖掉原来的ngxin文件即可。(用whereis nginx看看yum安装的nginx文件在哪呢,手动覆盖一下cp一下即可)
然后systemctl restart nginx看看行不行。最好是nginx -t先检查一下配置什么的。ok了以后再继续。
反向代理
和正向代理代理客户端请求,向服务器发送申请不一样,反向代理是客户端向代理服务器发送请求,代理服务器根据自己的设置把信息给客户端,客户端想要的信息由代理服务器配置。
注意nginx是基本必要手动编译的。因为其中要把代理服务器返回给客户端的数据中的一部分网址替换,以便于能够再次让客户端在代理的域名上访问。
后记
应该是一下午就能搞定的事。不熟悉的话,可能要一天。
其实呢,也许,对生产力提高没什么用呢
哦,对了,后面要是需要好好用一下nginx,建议配置分开呢,nginx.conf所在路径包括其他配置路径,然后../conf.d/路径下放置各种server.conf文件,然后../default.d/下放置所有文件都要生效的地方。