如果我执行 systemctl start nginx,它只会转到下一个空行,而不让服务器工作,如下所示:
[[/home/sc/pro]]# systemctl start nginx
[[/home/sc/pro]]#
如果我执行 nginx -t:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果我执行 netstat -ntlp,我会看到以下内容:
N 1684/nginx: master
tcp6 0 0 :::465 :::* LISTE
在/etc/nginx/nginx.conf中:
server{
listen 80;
#listen [::]:80 ipv6only=on; <- I tried it too
server_name "my_ip_address";
location = /favicon.ico {access_log off; log_not_found off;}
location /static/ {
root /home/sc/pro/projects/sc/sc_site;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/home/sc/pro/sc_project/sc_project.sock;
}
}
此外,如果我执行以下命令,系统会告诉我以下内容:
(sc_project) [ [/home/sc/pro/projects/sc]]# gunicorn --bind 0.0.0.0:8000 sc.wsgi:application
[2020-09-08 14:05:16 +0000] [4209] [INFO] Starting gunicorn 20.0.4
[2020-09-08 14:05:16 +0000] [4209] [INFO] Listening at: http://0.0.0.0:8000 (4209)
[2020-09-08 14:05:16 +0000] [4209] [INFO] Using worker: sync
[2020-09-08 14:05:16 +0000] [4211] [INFO] Booting worker with pid: 4211
但是无论如何我都无法访问我的网站...尽管之前我刚安装 gunicorn 并执行此命令时我就能访问该网站...
我使用以下命令终止了 httpd 进程:
sudo kill -2 <PID>
... 占用了 80 端口... 我之前尝试过使用 apache,但是没有用... 现在我不确定它是 httpd 还是 http 进程,也不知道我是否需要它... 但是通过 journalctl -x 它不允许 gunicorn 使用 80 端口...
另外我不确定我是否正确地做了限制:我是我的网站的根...我为 sc 使用了这些命令,它是我的项目的根文件夹(如:/home/sc)并且应该是一个用户的名称,它保存了树下的所有项目:usermod -a -G sc nginx chmod 710 /home/sc
答案1
您已将 nginx 配置为尝试通过 UNIX 套接字连接到 gunicorn,但您将 gunicorn 配置为监听 TCP 端口 8080。因此它们无法通信。您必须更改其中一个配置以使它们匹配。