安装Nginx
首先执行以下命令更新软件源
更新完成后,安装Nginx
添加配置文件
首先确保你的子域名成功解析到了你的服务器上.可以ping一下你的子域名,如果
切换到/etc/nginx/sites-available
目录下,创建一个新文件filename(根据你所要开启的服务来命名,比如网盘服务就叫pan),并且编辑该配置文件
如果你只是配置一个反向代理,写入以下配置信息即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| server { listen 80; listen [::]:80; #启用IPv6 server_name server.example.com; #将域名更改为你的实际域名 access_log /var/log/nginx/access.log;
location / { proxy_pass http://localhost:port; #将port更改为你的实际端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
|
如果你拥有证书,则使用以下的配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| server { listen 80; listen [::]:80; #启用IPv6 server_name server.example.com; #将域名更改为你的实际域名 access_log /var/log/nginx/access.log;
# 全部http流量重定向到https location / { return 301 https://$host$request_uri; } }
server { listen 443 ssl; listen [::]:443 ssl; server_name server.example.com; # 将域名更改为你的实际域名 access_log /var/log/nginx/access.log;
ssl_certificate <你实际的pem文件的路径>; ssl_certificate_key <你实际的key文件的路径>;
location / { proxy_pass http://localhost:port; #将端口更改为你的实际端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
|
映射文件并准备重新加载Nginx
将/etc/nginx/sites-available/
下的配置文件添加一个链接,使/etc/nginx/sites-enabled/
链接到你刚添加的配置文件
1
| sudo ln -s /etc/nginx/sites-available/filename /etc/nginx/sites-enabled/
|
检查配置文件是否有效
如果输出successful,则配置文件有效.如果输出failed,则配置文件有语法错误,检查你的配置文件是否正确.
配置文件有效后,使用如下命令重新加载Nginx
使用一键脚本生成nginx配置文件
在/etc/nginx/sites-available
目录下创建一个脚本文件,添加以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| #!/bin/bash
# 提示用户输入文件名 echo "请输入要创建的配置文件名:" read filename
# 检查用户是否输入了文件名 if [ -z "$filename" ]; then echo "文件名不能为空!" exit 1 fi
# 提示用户输入域名和端口 echo "请输入域名:" read domain
echo "请输入代理的端口:" read port
# 检查域名和端口是否为空 if [ -z "$domain" ] || [ -z "$port" ]; then echo "域名和端口不能为空!" exit 1 fi
# 创建Nginx配置文件 config_path="/etc/nginx/sites-available/$filename"
cat << EOF > "$config_path" server { listen 80; listen [::]:80; server_name $domain; #域名 access_log /var/log/nginx/access.log;
location / { return 301 https://\$host\$request_uri; } }
server { listen 443 ssl; listen [::]:443 ssl; server_name $domain; #域名 access_log /var/log/nginx/access.log;
ssl_certificate "你的证书文件的目录"; ssl_certificate_key "你的密钥文件的目录";
add_header Strict-Transport-Security "max-age=31536000";
location / { proxy_pass http://localhost:$port; #端口 proxy_http_version 1.1; proxy_set_header Upgrade \$http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host \$host; proxy_cache_bypass \$http_upgrade; } } EOF
# 在sites-enabled目录创建符号链接 ln -s "/etc/nginx/sites-available/$filename" "/etc/nginx/sites-enabled/"
# 检查Nginx配置是否正确 nginx -t if [ $? -ne 0 ]; then echo "Nginx配置错误,请检查配置文件!" exit 1 fi
# 重新加载Nginx nginx -s reload if [ $? -eq 0 ]; then echo "Nginx配置成功,已重新加载!" else echo "Nginx重载失败!" exit 1 fi
|
使用chmod
命令赋予可执行权限
执行脚本,根据提示输入文件名,域名,希望代理的端口即可。