前一段时间为了给微信小程序搭建后台,域名必须采用https,所以踩坑无数,终于布置完成。
关于nginx的安装,我就不写了,网上有很多。
先贴上我的nginx配置。
server {
listen 443 ssl;
listen [::]:443 ssl;
root /web/hxp;
index index.html;
server_name hxp.xyz www.hxp.xyz;
ssl_certificate /web/ssl/1_www.hxp.xyz_bundle.crt;
ssl_certificate_key /web/ssl/2_www.hxp.xyz.key;
location /mina/ {
proxy_pass http://127.0.0.1:6100/;
}
location ~ .*\.(gif|jpg|jpeg|png)$ {
expires 24h;
root /web/hxp1024/img/;#指定图片存放路径
#access_log /usr/local/websrv/nginx-1.9.4/logs/images.log;#日志存放路径
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_temp_path /web/hxp1024/img;#图片访问路径
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
client_max_body_size 10m;
client_body_buffer_size 1280k;
proxy_connect_timeout 900;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 40k;
proxy_buffers 40 320k;
proxy_busy_buffers_size 640k;
proxy_temp_file_write_size 640k;
if ( !-e $request_filename)
{
proxy_pass http://127.0.0.1;#默认80端口
}
}
}
一、Nginx配置文件
我用的操作系统是ubuntu,nginx的目录在/etc/nginx。
nginx的配置文件在/etc/nginx/sites-available。
把default文件下载到本地,用记事本打开。
默认的监听80端口的server不要动。
在下面重新写一个server,就是开篇的那个。
这两句是监听443端口。
listen 443 ssl;
listen [::]:443 ssl;
根目录,主页面,这里改成你自己的域名。
root /web/hxp;
index index.html;
server_name hxp.xyz www.hxp.xyz;
ssl文件存放的位置。
ssl_certificate /web/ssl/1_www.hxp.xyz_bundle.crt;
ssl_certificate_key /web/ssl/2_www.hxp.xyz.key;
我后端用的是flask,端口开的是6100,这句代码的意思是当我(外网)访问https://www.hxp.xyz/mina的时候,就相当于在本机(ubuntu服务器端)访问http://127.0.0.1:6100/。
我之前折腾了好久,最后去B站找了个专门讲解location的视频才把这个问题解决,我太菜了。
location /mina/ {
proxy_pass http://127.0.0.1:6100/;
}
这个是说访问https://www.hxp.xyz/test.jpg的时候,可以访问到ubuntu服务器上的/web/hxp1024/img/test.jpg这个图片。
location ~ .*\.(gif|jpg|jpeg|png)$ {
...
root /web/hxp1024/img/;#指定图片存放路径
...
}