Ubuntu 安装Nginx并配置https
作者 workyhx@126.com
2023年7月6日
Nginx 下载地址 https://nginx.org/en/download.html
服务器系统 Ubuntu
安装
- 在下载页面找到需要下载的版本,并上传至服务器
或者使用下载命令
wget http://nginx.org/download/nginx-1.25.1.tar.gz
sudo tar -zxvf nginx-1.25.1.tar.gz
命令解压缩文件cd nginx-1.25.1
进入解压后的文件夹sudo apt-get install gcc libssl-dev libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
安装需要的工具sudo ./configure --with-http_ssl_module
预编译时将https模块添加至编译过程中sudo make && sudo make install
安装sudo chmod -R a+rw /usr/local/nginx/
赋予权限cd /usr/local/nginx/conf
进入该目录- 给公钥和秘钥所有人可访问权限(公钥、秘钥需要有特定的工具或者公司给与,如阿里云、腾讯云等)
`chmod 777 公钥文件路径 秘钥文件路径
- 配置nginx代理
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 443 ssl;
# 域名为想要代理的域名
server_name 域名;
charset utf-8;
ssl_certificate 公钥文件路径;
ssl_certificate_key 秘钥文件路径;
location / {
proxy_pass http://127.0.0.1:端口;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 这两个配置为访问页面时需要用户名密码,如果需要则删除前面的#,不需要则不用管或者删除;下文会讲
#auth_basic "login";
#auth_basic_user_file /usr/local/nginx/conf/passwd/passwd;
}
}
server {
listen 80;
# 域名为想要代理的域名
server_name 域名;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 这两个配置为访问页面时需要用户名密码,如果需要则删除前面的#,不需要则不用管或者删除下文会讲
#auth_basic "login";
#auth_basic_user_file 用户密码文件路径(需要该文件为777访问权限);
}
}
}
/user/local/nginx/sbin/nginx
运行nginx- 打开域名即可访问
给页面设置用户密码
安装密码生成工具
apt install apache2-utils
安装工具- 密码工具介绍
htpasswd -c 文件名 用户名
创建该文件并且添加一个用户
htpasswd 文件名 用户名
给该文件追加一个用户
之后会让输入两次一样的密码
需要注意的是:该文件需要在ngxin配置文件中配置
- 配置中的
proxy_pass http://127.0.0.1:端口;
必须为http协议,因为nginx与服务器内部的通信协议为http