代码改变世界

阿里云部署 (二)

2021-04-11 23:43  qgbo  阅读(51)  评论(0编辑  收藏  举报

接着上一篇(安装完docker 和 SQL server 之后,  为了可以在服务器上build, 那个dotnet 也需要装上)

1.自定义网络:

 docker network ls

 docker network create --subnet 192.168.0.0/16  --gateway 192.168.0.1  mynet 

  docker run --name mynginx -p 80:80 -p 443:443 -d --net mynet  -v /nginxdata:/usr/share/nginx -v /ngnixconf:/etc/nginx/conf.d2/  nginx

在Linux 系统下,放 /nginxdata/html/index.html,公网IP 可以访问到nginx 了, 这里放公司 主页。 

原来docker 的  /etc/nginx/conf.d/ 下有default.conf。 我们不用这个。

修改 nginx 的根配置。

在宿主机中:docker cp mynginx:/etc/nginx/nginx.conf /

编辑之后(修改最后一行的include 路径),执行:docker cp /nginx.conf  mynginx:/etc/nginx/nginx.conf

在 /ngnixconf 中添加 a.conf 文件: 这里的一个Server 大概相当于IIS的一个站点

server {
  	listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。

        server_name ryrkj.com;  #将localhost修改为您证书绑定的域名,例如:www.example.com。
        ssl_certificate  /usr/share/nginx/5153330_ryrkj.com.pem;   #将domain name.pem替换成您证书的文件名。
        ssl_certificate_key  /usr/share/nginx/5153330_ryrkj.com.key;   #将domain name.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
        ssl_prefer_server_ciphers on;
        location / {
                root /usr/share/nginx/html; # 静态站点的文件路径
                index index.html index.htm; # 默认文档
        }
}
root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~

root实例:

location ^~ /t/ {
     root /www/root/html/;
}
location ^~ /t/ {
     root /www/root/html/;
}
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。

alias实例:

location ^~ /t/ {
 alias /www/root/html/new_t/;
}

location ^~ /t/ {
 alias /www/root/html/new_t/;
}
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

注意:
1. 使用alias时,目录名后面一定要加"/"。
3. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
4. alias只能位于location块中。(root可以不放在location中)

添加 rewrite.conf 文件:

server {
    listen 80;
    rewrite ^(.*)$ https://$host$1; 
    location / {
        index index.html index.htm;
    }
}

进入docker ,nginx -s reload

https/http 都可以正常访问。