Nginx反向代理、使用OneinStack配置Nginx、多网站配置、多域名配置

(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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
PPO等大厂,18年进入阿里一直到现在。**

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-23zr46z8-1715575471216)]

[外链图片转存中…(img-yLH9WUbR-1715575471216)]

[外链图片转存中…(img-tuw3RT3i-1715575471216)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值