Nginx相关笔记
一、常用命令
检查Nginx状态:
systemctl status nginx
启动Nginx:
sudo systemctl start nginx
停止Nginx:
sudo systemctl stop nginx
重启Nginx:
sudo systemctl restart nginx
重载Nginx:
sudo systemctl reload nginx
强制停止所以进程:
sudo pkill -f nginx
二、nginx配置
root和alia区别:
alia将对应路径进行替换,例如这里将/static直接替换成/www/wwwroot/SOU-test-/static这一串。完整路径/www/wwwroot/SOU-test-/static
location /static {
alias /www/wwwroot/SOU-test-/static; # 静态文件路径
}
root不会进行替换,而是直接拼接,例如这里将/static前拼接/www/wwwroot/SOU-test-/static。完整路径/www/wwwroot/SOU-test-/static/static
location /static {
root /www/wwwroot/SOU-test-/static; # 静态文件路径
}
ssl证书配置:
通常使用这样的两行进行证书及其密钥的读取
ssl_certificate /www/server/panel/vhost/cert/SOU-test-/fullchain.pem; # SSL 证书
ssl_certificate_key /www/server/panel/vhost/cert/SOU-test-/privkey.pem; # SSL 私钥
三、对nginx配置的理解
例如有一个python项目,使用uwsgi和nginx进行代理,使用http进行外网访问(通常是80端口),本地项目使用8000端口。那么运行原理是:
nginx在外网监听80端口,然后将其再转发到127.0.0.1:8000端口(本地8000端口),然后Uwsgi在本地监听8000这个端口,如果连接成功就完成打通。而防护墙需要对80端口进行放行。
nginx配置如下:(这里nginx监听80端口,然后使用uwsgi_pass将其转发到本地8000端口)
server {
listen 80; # 监听端口
server_name xxxxxxxx; # 域名
location / {
uwsgi_pass 127.0.0.1:8000; # 确保与 uWSGI 配置一致
include uwsgi_params;
}
location /static {
alias /www/wwwroot/SOU-test-/static;
}
}
而在uwsgi配置中,会对8000端口进行监听,并转发到程序实际运行的端口(例如flask在5000端口进行运行)
# 指定ip及端口
# 默认http模式,可切换至socket模式
http=0.0.0.0:8000
#socket=0.0.0.0:8000