1.申请域名
可以在域名新网上面申请。
2.申请证书
可以在阿里云上面申请一年免费的证书,来年需要重新申请;申请完成后,验证DNS信息是否填写正确项下面会提示未检测到DNS记录值;将申请信息中的,主机记录和记录值在申请域名处配置上,之后域名验证成功,两天内证书可申请下来。
3.内网机离线安装nginx
参考链接:ubuntu系统离线安装nginx详细教程-CSDN博客
4.配置nginx80端口映射443,并启动nginx
1)打开Nginx配置文件:
sudo nano /etc/nginx/nginx.conf
或
sudo nano /etc/nginx/conf.d/default.conf
请根据自己的Nginx安装方式和文件位置选择(通过查看nginx.conf文件内容)
2)修改配置文件:
3)检查Nginx配置的语法是否正确:
sudo nginx -t
如果配置语法正确,将显示 "nginx: configuration file /etc/nginx/nginx.conf test is successful" 的消息。
4)启动/重启nginx:
5)如果需要80同时映射两个服务的不同端口,conf文件配置方法如下:
需要在Nginx的配置文件中定义不同的server块,每个server块对应一个域名和相应的端口。在配置文件的http块中,添加以下类似的配置:
```
server {
listen 80;
server_name example1.com;
listen 443 ssl;
server_name domain1.com;
ssl_certificate /path/to/domain1_certificate.crt;
ssl_certificate_key /path/to/domain1_private_key.key;
location / {
proxy_pass http://localhost:3000; # 将域名example1.com映射到端口3000
}
}
server {
listen 80;
server_name example2.com;
listen 443 ssl;
server_name domain1.com;
ssl_certificate /path/to/domain1_certificate.crt;
ssl_certificate_key /path/to/domain1_private_key.key;
location / {
proxy_pass http://localhost:4000; # 将域名example2.com映射到端口4000
}
}
```
上述配置中,example1.com会将80端口映射到本地的3000端口,而example2.com会将80端口映射到本地的4000端口。根据实际情况修改`server_name`和`proxy_pass`的值。
保存并重启Nginx,使配置文件生效。此时,访问example1.com会被映射到3000端口,访问example2.com会被映射到4000端口。
注意:配置两个项目与一个不同,两个项目都不走443端口,可以配置https;且证书只有在nginx中配置才好使
6)配置服务的首页地址
要配置nginx访问域名的首页地址,需要进行以下步骤:
1. 打开nginx的配置文件。通常情况下,该文件的路径是`/etc/nginx/nginx.conf`。
2. 在配置文件中找到`server`区块,并在该区块中添加以下代码:
```shell
server {
listen 80;
server_name your_domain_name;
root /path/to/your/index/folder;
index index.html;
}
```
其中,`your_domain_name`是你要配置的域名,`/path/to/your/index/folder`是指向该域名首页文件的文件夹路径,一般是该域名对应网站的根目录。
3. 保存配置文件,并重启nginx服务,使配置生效。
```shell
sudo service nginx restart
```
配置完成后,当访问你的域名时,nginx将自动指向该域名对应的首页地址。注意,这里默认使用`index.html`作为首页文件,如有需要,你可以根据自己的需求修改。同时,还需要确保域名解析正确,并将域名指向你的服务器IP地址。
7)黑名单设置
nginx配置两个项目时,黑名单也只能在nginx中配置,配置方法:在Nginx配置文件的server块中添加以下代码:
location / { allow your-ip-address; deny all; }
将your-ip-address替换为允许访问的IP地址;
5. nodejs项目配置443端口访问,并配置证书信息
var https = require("https")
var options = {
key:fs.readFileSync(./XX/xx.key'),
certifs:readFileSync(./XX/xxx_public.crt),
ca:fs.readFileSync(./XX/xxxx_chain.cot)
}
...
var httpsServer =https.createServe(options,app);
httpsServer. listen (443);