下面是Ubuntu下搭建与配置Nginx服务的完整攻略,包含两条示例说明:
确定Ubuntu版本并安装Nginx
首先,要确定已经安装了Ubuntu,可以通过命令lsb_release -a
查看版本。然后,使用以下命令安装Nginx:
- 更新Ubuntu软件包列表:
sudo apt-get update
- 安装Nginx:
sudo apt-get install nginx
安装完成后,就可以通过以下命令启动Nginx服务:sudo systemctl start nginx
。如果需要开机自启动,则可以使用以下命令:sudo systemctl enable nginx
。
配置Nginx服务器块
Nginx服务器块可以帮助区分不同域名下的不同网站,可以根据实际需要进行配置。
- 在
/etc/nginx/sites-available/
目录下创建一个新的配置文件,命名为域名的名称,例如example.com
。 - 打开该文件并进行编辑。将以下配置内容粘贴进去:
server {
listen 80;
listen [::]:80;
root /var/www/example.com/html;
index index.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
在上述配置文件中,server_name
指定域名,root
指定该域名对应网站的路径,location
指定请求的处理方式。
- 创建一个符号链接到
/etc/nginx/sites-enabled/
目录,如下所示:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
- 检查Nginx配置是否正确,使用以下命令进行检查:
sudo nginx -t
。如果没有问题则显示nginx: configuration file /etc/nginx/nginx.conf test is successful
。 - 重启Nginx服务,使用以下命令:
sudo systemctl restart nginx
示例一:使用Nginx搭建静态网站
假设有一个名为example.com
的域名,该域名需要提供一个简单的静态网站。那么,可以按照以下步骤进行配置:
- 在
/var/www/
目录下创建一个名为example.com
的目录,然后在该目录下创建一个名为html
的子目录。 - 将静态网站的内容放置在
/var/www/example.com/html/
目录下。 - 根据上述“配置Nginx服务器块”的步骤,在
/etc/nginx/sites-available/
目录下创建一个名为example.com
的配置文件,并在其中指定该网站的路径,例如:
server {
listen 80;
listen [::]:80;
root /var/www/example.com/html;
index index.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
最后,重启Nginx服务即可通过example.com
访问静态网站。
示例二:使用Nginx搭建动态网站
如果需要提供一个动态的网站,Nginx可以与后端Web应用程序进行集成,以使其能够动态生成内容。以下示例演示如何使用Nginx与Python应用程序一起工作。
- 搭建Python虚拟环境,安装Flask框架:
python3 -m venv myprojectenv
source myprojectenv/bin/activate
pip install flask
- 创建一个Python应用程序,在
/var/www/example.com/
目录下创建一个名为myapp
的目录,并在该目录下创建一个名为__init__.py
的文本文件,内容如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
if __name__ == '__main__':
app.run()
- 在
/etc/nginx/sites-available/
目录下创建一个名为example.com
的配置文件,内容如下:
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
在该配置文件中,proxy_pass
指定将请求转发到本地服务器的5000端口(这是Flask应用程序运行的端口),proxy_set_header
指定NGINX将请求的Host和X-Real-IP头传递给Python应用程序。
- 创建一个符号链接到
/etc/nginx/sites-enabled/
目录:sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
- 重启Nginx服务:
sudo systemctl restart nginx
- 运行Python应用程序:
python /var/www/example.com/myapp/__init__.py
现在,Flask应用程序已经在本地127.0.0.1的5000端口上运行。使用Web浏览器访问example.com
,就可以看到“Hello World!”的响应。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu下搭建与配置Nginx服务 - Python技术站