SSL证书与IP地址
对于大多数使用场景,我们通常为域名(如 example.com
)获取SSL证书,而不是直接为IP地址获取。
1. URL重定向
一些域名提供商提供URL重定向服务。例如,你可以将 example.com
重定向到 http://example.com:8080
。但在这种情况下,用户在浏览器中看到的URL将是带有端口的地址。
2. 使用反向代理
使用如 Nginx 或 Apache 这样的服务器来作为反向代理。
反向代理的概念
当客户端发送请求到服务器时,反向代理服务器将这些请求转发到一个或多个后端服务器。后端服务器再将数据返回给代理服务器,再由代理服务器返回给客户端。这种方式为应用程序提供了一个额外的保护层,还可以实现负载均衡、缓存等功能。
Nginx 作为反向代理
当用户访问 example.com
时,Nginx 会代替用户将请求转发到 localhost:8080
。
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
配置文件解释
server { ... }
: Nginx的server块,定义服务器配置。listen 80;
: Nginx监听的端口,这里是HTTP的默认端口。server_name example.com;
: 响应的域名。location / { ... }
: 定义如何响应特定的URL路径。这里/
是匹配所有路径。proxy_pass
: 指定请求应被代理到的地址。proxy_set_header
: 修改或添加在代理请求中的头部信息。
在 CentOS 中修改 Nginx 配置
Nginx的默认配置文件在 /etc/nginx/nginx.conf
,但主配置文件通常会包含 /etc/nginx/conf.d/
下的其他配置文件。
-
使用文本编辑器打开或创建配置文件:
sudo nano /etc/nginx/conf.d/example.com.conf
-
粘贴并修改配置。
-
保存并退出编辑器。
-
测试Nginx配置:
sudo nginx -t
如果没有错误,会显示配置正确。
-
重新加载Nginx:
sudo systemctl reload nginx