Ubuntu下简单的nginx反向代理https
1、前言
利用nginx实现http网站https访问。自从改用edge浏览器后,访问内网的http服务总会看到网址栏目那“不安全”三个大字,这些应用自身没有https服务,只能通过反向代理实现。所以能简单的配置nginx反向代理就十分的重要。
2、Ubuntu安装nginx
sudo apt update
sudo apt install nginx
安装完成后输入nginx查看nginx状态。
nginx
3、导入ssl证书到/etc/nginx/ssl/
可以利用FinalShell这样的ssh软件将ssl证书上传到Ubuntu下的/etc/nginx/ssl/目录,博主不展开说明。
4、配置反向代理文件
在/etc/nginx/conf.d/下创建任意名称的(*.conf)*为任意名称,博主习惯为nginx.conf。
5、在创建的nginx.conf文件里输入以下内容
#反向代理的第一个端口。
server {
listen 443 ssl;#反向代理到的端口。
server_name shuuokonet.ltd;#替换成自己的域名。
ssl_certificate /etc/nginx/ssl/server.pem;#存放证书的位置。
ssl_certificate_key /etc/nginx/ssl/server.key;#存放证书秘钥位置。
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 500M;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost:8080/;需要代理的网站和端口。
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
#反向代理的第二个端口,后继复制改端口或者域名都可以,只代理一个可以将下面的全部删除。
server {
listen 7000 ssl;#反向代理到的端口。
server_name shuuokonet.ltd;#替换成自己的域名。
ssl_certificate /etc/nginx/ssl/server.pem;#存放证书的位置。
ssl_certificate_key /etc/nginx/ssl/server.key;#存放证书秘钥位置。
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 500M;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost:9000/;#需要代理的网站和端口。
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
6、保存并退出
输入一下命令验证是否配置成功。
nginx -t
结果为test is successful的话说明已经成功配置,但目前还不能通过反向代理的端口进行访问,输入一下命令需要刷新nginx。
nginx -s reload
7、配置Ubuntu防火墙
如果刷新完成nginx仍然不可访问一般为防火墙未开放端口,输入一下命令添加防火墙端口,7000为打开的防火墙端口。
sudo uft allow 7000
查看防火墙状态,是否成功添加。
ufw status verbose
也可以输入以下命令关闭一些端口。
ufw deny 7000
8、这个时候应该就能实现https访问了
部分参考如何在 Ubuntu 20.04 上安装 Nginx - 知乎 (zhihu.com)
如有错误或者是更好的方法,请留下您高明的见解。