nginx 配置域名 http https 80+443端口

本文介绍了如何在Linux系统中安装Nginx并配置HTTP和HTTPS服务。对于HTTP,需要删除默认的80端口配置,并设置代理到指定端口。对于HTTPS,文章提供了配置SSL证书以及实现http到https重定向的步骤。配置完成后,通过重启Nginx服务使更改生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装nginx

apt-get install -y nginx

如果希望直接使用ip访问(即直接使用80端口),需要删除默认文件。不使用80端口、有域名、使用https等其他方式则跳过此步(不用删除)。

rm /etc/nginx/sites-enabled/default # 删除默认80端口配置

1. http方式

编辑配置文件 /etc/nginx/conf.d/http.conf:

server {

listen 80;

server_name lduoj.com; # 请替换为你的域名

client_max_body_size 40m; # 请求体上限

location / {

proxy_pass http://127.0.0.1:8080/; # 代理web端口

proxy_redirect off;

proxy_set_header Host $host; # 监听非80端口时,填写$host:$server_port

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

2. https方式

编辑配置文件 /etc/nginx/conf.d/lduoj_https.conf:

server{

listen 80;

server_name lduoj.com;

rewrite ^(.*)$ https://$host$1 permanent; # http转https

}

server {

listen 443 ssl http2;

server_name lduoj.com; # 请替换为你的域名

client_max_body_size 40m; # 请求体上限

# ssl的一些配置

ssl_certificate conf.d/fullchain.crt; # 请务必替换成你的ssl证书路径

ssl_certificate_key conf.d/private.pem; # 请务必替换成你的ssl证书路径

ssl_protocols TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_ciphers on;

ssl_session_cache shared:SSL:10m;

ssl_session_timeout 10m;

location / {

proxy_pass http://127.0.0.1:8080/;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

}

然后执行 service nginx restart 使配置生效。

如果重启报错或无法访问,请尝试在云服务器官网控制台安全组中,为该端口添加入方向的规则。注意,有些云服务商,如天翼云,未备案时禁用80/443/8080等端口。

————————————————

版权声明:本文为CSDN博主「雪的期许」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/winter2121/article/details/107783085

### 配置 Nginx 使用 HTTP (80) HTTPS (443) 端口 为了使 Nginx 同时支持 HTTP HTTPS 请求,需要创建两个监听不同端口的服务配置。对于 HTTP 流量,默认情况下会通过端口 80 接收请求;而对于 HTTPS,则是在端口 443 上处理加密通信。 #### 创建基本的服务器块定义 在 `/etc/nginx/sites-available/default` 或者自定义站点文件中加入如下所示的基础结构: ```nginx server { listen 80; server_name example.com www.example.com; location / { # 处理来自HTTP客户端的请求逻辑... } } ``` 这段代码设置了针对域名 `example.com` 的 HTTP 服务[^2]。 #### 添加 SSL 支持 为了让网站能够安全地传输数据,还需要设置用于 HTTPS 的部分,在同一文件内追加下面的内容来启用 SSL/TLS 加密连接: ```nginx server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /path/to/cert.pem; # 替换成实际路径下的证书位置 ssl_certificate_key /path/to/key.pem; # 替换成私钥的位置 location / { # 对于HTTPS流量的具体响应方式可以在这里编写 } } ``` 这里指定了 SSL 证书及其对应的私钥所在目录,并启用了对这两个资源的安全访问控制[^1]。 #### 自动重定向至 HTTPS 如果希望强制所有的 HTTP 请求都被导向到更安全的 HTTPS 版本页面上,可以在第一个 `server{}` 块内部添加一条返回指令实现永久性重定向功能: ```nginx server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } ``` 这行命令告诉浏览器将任何尝试过 HTTP 方式的链接都转换成相同 URL 结构但是采用 HTTPS 协议的形式重新加载一次。 以上就是完整的关于如何让 Nginx 同时服务于未加密(HTTP/80)以及已加密(HTTPS/443)两种类型的网络请求的方法说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值