一、安裝部署
1、安裝
# 在Ubuntu上安裝Nginx sudo apt-get update sudo apt-get install nginx
2、配置Nginx
# Nginx配置文件路徑:/etc/nginx/nginx.conf
http {
...
server {
listen 80;
server_name localhost;
...
}
}
3、啟動Nginx
# 啟動Nginx sudo systemctl start nginx # 停止Nginx sudo systemctl stop nginx # 重新加載配置文件 sudo systemctl reload nginx
二、反向代理與負載均衡
1、反向代理
# 配置反向代理
http {
...
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend;
}
}
}
2、負載均衡
# 配置負載均衡
http {
...
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
三、靜態文件服務
1、配置靜態文件服務
# 配置靜態文件服務
http {
...
server {
listen 80;
server_name localhost;
location / {
root /path/to/your/website;
index index.html index.htm;
}
}
}
2、配置緩存
# 配置緩存
http {
...
server {
listen 80;
server_name localhost;
location / {
root /path/to/your/website;
index index.html index.htm;
expires 1d;
}
}
}
四、安全加固
1、訪問控制
# 配置訪問控制
http {
...
server {
listen 80;
server_name localhost;
# 不允許通過ip地址直接訪問
location / {
deny all;
}
# 允許某個ip地址訪問
location /private/ {
allow 192.168.1.100;
deny all;
}
}
}
2、SSL配置
# 配置SSL
http {
...
server {
listen 443 ssl;
ssl_certificate /path/to/your_certificate.pem;
ssl_certificate_key /path/to/your_private_key.pem;
location / {
root /path/to/your/website;
index index.html index.htm;
}
}
}
五、Websocket支持
1、配置Websocket支持
# 配置Websocket
http {
...
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location /ws {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
六、本地開發
1、配置本地開發環境
# 配置本地開發環境
http {
...
server {
listen 80;
server_name localhost;
# 靜態文件服務
location /static/ {
alias /path/to/your/static/files;
}
# API代理
location /api/ {
proxy_pass http://backend;
}
# WebSocket代理
location /ws/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
}
七、小結
nginx是一款高性能的Web服務器,常用於靜態文件服務、反向代理、負載均衡、Websocket支持等場景,同時也能進行安全加固並配置本地開發環境。以上是nginx經典教程的詳細解釋,僅供參考。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237321.html
微信掃一掃
支付寶掃一掃