1.购买及解析域名
2.安装Nginx
sudo apt update
sudo apt install nginx
3.创建新的配置文件
在/etc/nginx/sites-available/目录下创建一个新的配置文件,比如yourdomain.com。
vim /etc/nginx/sites-available/yourdomain.com
把以下内容复制到文件中(记得替换yourdomain.com、your_port、ssl_certificate_file和ssl_certificate_key_file为你的域名、程序监听的端口和SSL证书文件路径):
SSL证书文件一般放在 /etc/nginx/ssl/ 目录
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate ssl_certificate_file;
ssl_certificate_key ssl_certificate_key_file;
location / {
proxy_pass http://localhost:your_port;
proxy_set_header Host $host;
}
}
上述配置中,我们定义了两个server块。第一个监听80端口(HTTP),当用户访问http://yourdomain.com时,会自动重定向到https://yourdomain.com。第二个监听443端口(HTTPS),并设置了SSL证书。
(localhost不需要改。在配置文件中,localhost通常指向服务器本机,用于表示当前计算机自己的网络地址。)
4.创建符号链接
创建一个到/etc/nginx/sites-enabled/目录的符号链接,使得Nginx能够读取到这个配置文件
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
5.检查Nginx配置
检查Nginx配置文件是否有语法错误
sudo nginx -t
如果返回nginx: configuration file /etc/nginx/nginx.conf test is successful,那么表示没有语法错误。
6.重启Nginx
sudo systemctl restart nginx
7.示例:同时运行两个程序:比如geoserver和前端页面
如果你的服务器同时运行了前端和后端代码,你可以使用不同的路径(location)为他们提供服务。
mkdir /var/www/wkun
vim /var/www/wkun/index.html
server {
listen 80;
server_name wkun.cc;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name wkun.cc;
ssl_certificate /etc/nginx/ssl/wkun.cc_bundle.pem;
ssl_certificate_key /etc/nginx/ssl/wkun.cc.key;
location / {
root /var/www/wkun;
index index.html;
try_files $uri $uri/ =404;
}
location /geoserver {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
}
}
含义:
-
当用户访问 yourdomain.com 时,Nginx 会在 /var/www/your_dir 目录中查找并提供文件。如果请求的是目录(比如 http://yourdomain.com/),Nginx 将返回 /var/www/your_dir/index.html 文件。
-
在这个配置中,location /会处理访问根路径yourdomain.com/的请求,Nginx会在/var/www/your_dir目录下查找并提供文件。而location /api会处理所有以/api开始的路径,例如yourdomain.com/api,这些请求会被代理到你在本地的后端服务上(监听在8080端口)。
8.使用域名的无法登录弹出安全检查
设置如下:
<context-param>
<param-name>PROXY_BASE_URL</param-name>
<param-value>https://wkun.cc/geoserver</param-value>
</context-param>