一、常用命令

检查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