(Default directory: /data/wwwroot/www.ahoh.club):
提示输入站点根目录,因为我们是使用 Nginx 的反向代理,所以这个目录是没有必要配置的,我们直接使用默认的即可(直接回车)。
4. 是否添加其他域名
Do you want to add more domain name? [y/n]: y
是否需要添加其他域名,按照需要选择即可,如果不需要,输入 n 即可,这里我们选择`y`。
> 强调:正常情况下,我们不仅仅希望使用地址 `www.ahoh.club` 访问网站,同时还希望使用 `ahoh.club` 也可以访问我们的网站,所以这里需要选择 `y`,把 `ahoh.club` 也要加进去。
>
> `ahoh.club`属于根域名,`www.ahoh.club`属于子域名,如果你有类似于`forum.ahoh.club`,这里同样需要选择`y`,从而把所有希望跳转网站的域名都加进去。
5. 添加新域名
Type domainname or IP(example: example.com other.example.com): ahoh.club
这里我们就把 `ahoh.club` 输进去。
6. 域名跳转
Do you want to redirect from ahoh.club to www.ahoh.club? [y/n]: y
这里是决定 是否需要将 [ahoh.club]( ) 自动跳转到 [www.ahoh.club]( ) ,本例中选择`y`。
> 提示: 原则上,这里跳不跳转都是可以的,但是在安装 NodeBB 期间,遇到了一个奇怪的BUG,当使用 `ahoh.club` 访问贴子的时候,外网连接图片就显示不出来,而使用 `www.ahoh.club` 访问就可以。所以本例选择了跳转。
7. `HTTP`跳转`HTTPS`
Do you want to redirect all HTTP requests to HTTPS? [y/n]: y
这里决定是否将`HTTP` 访问跳转到`HTTPS`,这里跳不跳都行,但是既然都选择了`SSL`,跳转当然更 `Fashion`,推荐选择 `y`。
8. 位置信息询问
不想填可以直接回车,建议好好填写。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
Country Name (2 letter code) [CN]:
State or Province Name (full name) [Shanghai]: Beijing
Locality Name (eg, city) [Shanghai]: Haidian
Organization Name (eg, company) [Example Inc.]: Ahoh
Organizational Unit Name (eg, section) [IT Dept.]:
9. 防盗链
Do you want to add hotlink protection? [y/n]: n
是否需要做防盗链处理,按照需要选择即可,本例我们选择 `n`。(如果是自己搭的小网站,不建议选择,可能导致图片不显示,确有需要可以选择,如有问题可以再解决。)
10. 路径重写
Allow Rewrite rule? [y/n]: n
路径重写配置,我们不需要,选择 `n` 回车确定即可。
11. 请求日志
Allow Nginx/Tengine/OpenResty access_log? [y/n]: y
Nginx 的请求日志,建议选择 `y`。
这样就完成了 vhost 站点的创建,最终会输出站点的相关信息:
#######################################################################
OneinStack for CentOS/RedHat 7+ Debian 8+ and Ubuntu 16+
For more information please visit https://oneinstack.com
#######################################################################
Your domain: www.ahoh.club
Virtualhost conf: /usr/local/nginx/conf/vhost/www.ahoh.club.conf
Directory of: /data/wwwroot/www.ahoh.club
Self-signed SSL Certificate: /usr/local/nginx/conf/ssl/www.ahoh.club.crt
SSL Private Key: /usr/local/nginx/conf/ssl/www.ahoh.club.key
SSL CSR File: /usr/local/nginx/conf/ssl/www.ahoh.club.csr
Nginx 的配置文件即 /usr/local/nginx/conf/vhost/www.ahoh.club.conf。
> 别忘了把SSL证书中的文件复制到上面的指定位置!
> SSL证书压缩包中通常有四个文件,只需要复制其中的三个就行了
> 在复制的时候以后缀名为区分
> 复制示例如下:
> `sudo cp ~/ssl/ahoh.club_bundle.crt /usr/local/nginx/conf/ssl/ahoh.club.crt`
五、 修改 Nginx 配置文件
上方创建 `vhost` 的过程并没有创建反向代理的配置,所以需要我们自己修改一下配置文件。
使用你熟悉的工具打开配置文件,此教程使用 `vim`。
sudo vim /usr/local/nginx/conf/vhost/www.ahoh.club.conf
1. 删除一些不必要的配置
location ~ [^/].php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
此段配置是针对 php 应用的,删不删都可以,但是本着极致的极客精神,本例中决定删掉。
2. 添加 `upstream` 配置
在`server` 的同级节点添加如下配置:
upstream ahoh {
server 127.0.0.1:8090;
}
> 提示,127.0.0.1指的是服务器的本机地址不需要改,后面的8090端口号需要改成自己的。
> `upstream` 后面的名字 `ahoh` 可以自己决定,然后记下来,后面的对应节点改成一致就行。
3. 在 server 节点添加`/`配置
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ahoh;
}
> 提示: `proxy_pass http://ahoh;` 中的网址,指向的就是上面一步 `upstream` 后面的名字,如果修改了那个名字,这里要对应修改。
4. 修改 `location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$` 节点
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
proxy_pass http://ahoh; # 和上面一样修改
expires 30d;
access_log off;
}
5. 修改 `location ~ .*\.(js|css)?$` 节点
location ~ .*.(js|css)?$ {
proxy_pass http://ahoh; # 和上面一样修改
expires 7d;
access_log off;
}
如果不按照第4、5 以上两步操作,请求一些图片或者样式文件不会经过 `ahoh`,也就是你的网站,所以请不要忽略此配置。
6. 添加 `acme.sh` 续签验证路由
`OneinStack` 使用的 `acme.sh` 管理证书,如果你在创建 `vhost` 的时候选择了使用 `Let's Encrypt` 申请证书,那么 `OneinStack` 会在系统内添加一个定时任务去自动续签证书,`acme.sh` 默认验证站点所有权的方式为在站点根目录生成一个文件(`.well-known`)来做验证,由于配置了反向代理,所以在验证的时候是无法直接访问到站点目录下的 `.well-known` 文件夹下的验证文件的。需要添加如下配置:
location ^~ /.well-known/acme-challenge/ {
default_type “text/plain”;
allow all;
root /data/wwwroot/www.ahoh.club/;
}
> 提示:如果第一步中,你没有选择`3`,就不用操作这一步。
至此,配置修改完毕,保存即可。最终你的配置文件可能如下面配置一样:
upstream ahoh{
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /usr/local/nginx/conf/ssl/www.ahoh.club.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www.ahoh.club.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
server_name www.ahoh.club ahoh.club;
access_log /data/wwwlogs/www.ahoh.club_nginx.log combined;
index index.html index.htm index.php;
root /data/wwwroot/www.ahoh.club;
if (KaTeX parse error: Expected '}', got 'EOF' at end of input: …rn 301 https://host$request_uri; }
if ($host != www.ahoh.club) { return 301 s c h e m e : / / w w w . a h o h . c l u b scheme://www.ahoh.club scheme://www.ahoh.clubrequest_uri; }
include /usr/local/nginx/conf/rewrite/none.conf;
#error_page 404 /404.html;
#error_page 502 /502.html;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ahoh;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
proxy_pass http://ahoh;
access_log off;
}
location ~ .*.(js|css)?$ {
expires 7d;
proxy_pass http://ahoh;
access_log off;
}
location ~ /(.user.ini|.ht|.git|.svn|.project|LICENSE|README.md) {
deny all;
}
location /.well-known {
allow all;
}
}
六、 重载 Nginx 使配置生效
1. 验证 `nginx` 配置
> `Nginx`默认安装在 `/usr/local/nginx`,由于本文未配置环境变量,需要进入可执行文件目录下操作。
cd /usr/local/nginx/sbin
sudo ./nginx -t
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
PPO等大厂,18年进入阿里一直到现在。**
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-23zr46z8-1715575471216)]
[外链图片转存中…(img-yLH9WUbR-1715575471216)]
[外链图片转存中…(img-tuw3RT3i-1715575471216)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!