用域名访问服务器部署的程序

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>

你可能感兴趣的:(linux,服务器,运维)