一、安装
sudo apt get install nginx
二、检查启动
ps -ef | grep nginx
展示四个工作进程和一个守护进程表示正常启动。
三、修改配置
位置:/etc/nginx/sites-available/default
很多文章都说是/etc/nginx/nginx.conf 但我改的是这里 暂时不清楚什么区别
#指向服务器
server {
listen 80; # http默认端口 但是需要备案才能开通 https默认端口是443
# 服务器的外部域名,使用地址也可以
server_name localhost;
location / {
# 指向gunicorn host的服务地址 我这里使用的是gunicorn + flask 监听8080端口
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
#指向网站 静态页面
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
四、重启测试
检查配置:sudo nginx -t
重新加载并重启:sudo service nginx reload
客户端测试 如果是网页直接http://www.xxxx.com 看是否跳转nginx的欢迎界面
五、配置SSL证书
1 证书生成:https://www.lddgo.net/encrypt/ssl
2 下载证书解压得到 cert.pem , private.key 文件
3 将cert.pem private.key两个文件复制到 nginx目录: /etc/nginx/
4 修改配置
server {
listen 443 ssl;
#服务器的外部域名,使用地址也可以
server_name xxxx.com;
#填写证书文件名称
ssl_certificate cert.pem;
#填写证书私钥文件名称
ssl_certificate_key private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#默认加密套件
ssl_ciphers HIGH:!aNULL:!MD5;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
location / {
# 指向gunicorn host的服务地址
proxy_pass http://127.0.0.1:8088;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置HTTP请求自动跳转HTTPS
server {
listen 80;
#填写证书绑定的域名
server_name xxxx.com;
#将所有HTTP请求通过rewrite指令重定向到HTTPS。
rewrite ^(.*)$ https://$host$1;
location / {
#同上
}
}
六、重启测试
配置ssl 请求的是https 看是否正常返回或者跳转
完结