首先,我要说一下,我是系统管理方面的新手,这是一个我用来获得实践和经验的网站。
我有一个通过cloudflare 获得的 SSL,并且我已将其上传到/var/ssl/ssl.pem
和/var/ssl/ssl.key
。我将文件夹权限更改为 chmod 700 /var/ssl。
我可以通过以下方式访问我的网站http://165.227.182.40/和http://aaronstone.io/但不是https://aaronstone.io/
sudo ufw status
返回:
WARN: / is group writable!
Status: active
To Action From
-- ------ ----
22 LIMIT Anywhere
443 ALLOW Anywhere
80 ALLOW Anywhere
443/tcp ALLOW Anywhere
22 (v6) LIMIT Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
netstat -atpn
节目
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1392/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6504/nginx -g daemo
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1621/sshd
tcp 0 0 127.0.0.1:60484 127.0.0.1:3306 ESTABLISHED 5338/sshd: root
tcp 0 0 165.227.182.40:22 63.131.219.239:58963 ESTABLISHED 5338/sshd: root
tcp 0 0 127.0.0.1:3306 127.0.0.1:60484 ESTABLISHED 1392/mysqld
tcp 0 332 165.227.182.40:22 63.131.219.239:58846 ESTABLISHED 2096/sshd: aaron [p
tcp 0 0 165.227.182.40:80 108.162.216.205:14411 TIME_WAIT -
tcp 0 0 127.0.0.1:60486 127.0.0.1:3306 ESTABLISHED 5338/sshd: root
tcp 0 0 127.0.0.1:3306 127.0.0.1:60486 ESTABLISHED 1392/mysqld
tcp6 0 0 :::80 :::* LISTEN 6504/nginx -g daemo
tcp6 0 0 :::22 :::* LISTEN 1621/sshd
我的 NginX 配置如下:
server {
listen 80;
listen [::]:80;
# SSL configuration
#
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /var/ssl/ssl.pem;
ssl_certificate_key /var/ssl/ssl.key;
root /var/www/html/;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name aaronstone.io www.aaronstone.io;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
nginx状态:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-02-07 19:22:19 UTC; 14min ago
Process: 6492 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
Process: 5588 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, stat
Process: 6500 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCES
Process: 6497 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status
Main PID: 6504 (nginx)
Tasks: 2
Memory: 3.5M
CPU: 505ms
CGroup: /system.slice/nginx.service
├─6504 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─6505 nginx: worker process
Feb 07 19:22:19 aaronstone systemd[1]: Starting A high performance web server and a reverse proxy server
Feb 07 19:22:19 aaronstone systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Inval
Feb 07 19:22:19 aaronstone systemd[1]: Started A high performance web server and a reverse proxy server.
答案1
Nginx不听到端口 443,如您的 netstat 输出所示。您的 nginx 配置似乎是正确的,事实上我试过了,它对我来说是有效的。您有其他 Web 服务器正在运行吗?我怀疑端口 80 上运行着某些东西(例如 Apache/httpd),而 nginx 无法启动。
nginx 启动时是否没有任何错误消息?
如果您有 nginx 作为服务运行,那么输出是什么sudo service nginx status
?
如果添加参数页对于 netstat 命令,例如sudo netstat -atpn
,它显示监听地址的进程名称(有关man netstat
详细信息,请参阅)。该行tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
属于 nginx 吗?
答案2
我的问题是我没有从/sites-available
到的符号链接/sites-enabled
$ cd /etc/nginx/sites-enabled
$ sudo ln -sf ../sites-available/default .
$ sudo service nginx reload