下面就是 Ubuntu 下的 Nginx 服务器配置详解的完整攻略。
准备工作
在开始 Nginx 服务器的配置之前,你需要在 Ubuntu 系统上安装 Nginx。可以使用以下命令在命令行中进行安装:
sudo apt update
sudo apt install nginx
安装完成后,你可以使用以下命令检查 Nginx 是否成功安装:
nginx -v
详解配置
配置文件路径
在 Ubuntu 系统上,Nginx 的主配置文件位于 /etc/nginx/nginx.conf
。在该文件中,你可以进行全局的 Nginx 配置。
此外,每个 Nginx 虚拟主机的配置都保存在 /etc/nginx/sites-available/
目录中,而现有的虚拟主机的配置链接则保存在 /etc/nginx/sites-enabled/
目录中。你可以创建新的虚拟主机配置或者修改现有的虚拟主机配置来实现你的需要。
常用配置
以下是常用的 Nginx 配置,可以根据需要进行修改。
端口配置
默认情况下,Nginx 的监听端口为 80。如果需要更改端口,可以在主配置文件中添加以下内容:
http {
server {
listen 8080;
...
}
...
}
上面的示例配置了 Nginx 监听 8080 端口。
基本的虚拟主机
以下是一个基本的 Nginx 虚拟主机的配置示例:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
}
该配置表示 Nginx 监听 80 端口,并将所有的请求都转发到 /var/www/example.com
目录下的 index.html
文件中。
反向代理
以下是一个使用 Nginx 实现反向代理的示例配置:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
该配置表示 Nginx 监听 80 端口,并将所有的请求转发到运行在本地的另一台服务器上(默认端口为 8080)。
配置文件的语法
在 Nginx 配置文件中,可以使用许多关键字和指令,以实现不同的功能。以下是常用的 Nginx 指令:
listen
指令:用于指定 Nginx 监听的端口号。server_name
指令:用于指定 Nginx 虚拟主机的域名。access_log
指令:用于指定 Nginx 访问日志的名称和位置。autoindex
指令:用于指定是否开启目录列表。root
指令:用于指定虚拟主机的根目录。location
指令:用于指定请求的 URI 和处理方法。proxy_pass
指令:用于指定反向代理的转发地址。
更多的指令可以参考 Nginx 官方文档。
示例说明
以下是两个示例,用于说明 Nginx 经常用到的配置:
示例一:配置 SSL 加密
配置 SSL 证书是 Nginx 经常使用的特性之一,可以对通过 HTTP 传输的数据进行加密传输。以下是一个示例:
server {
listen 443 ssl;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
server_name example.com;
root /var/www/example.com;
index index.html;
}
该配置表示 Nginx 监听 443 端口,并且使用 /etc/nginx/cert.crt
和 /etc/nginx/cert.key
两个证书文件来进行 SSL 加密。
示例二:配置反向代理
Nginx 的另一个常用特性是反向代理,可以将请求转发到其他服务器上。以下是一个示例配置:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
该配置表示 Nginx 监听 80 端口,并将所有的请求转发到运行在本地的另一台服务器上(默认端口为 8080)。同时,该示例还使用了 proxy_set_header
指令来传递请求头信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ubuntu 下的nginx服务器配置详解 - Python技术站