我希望通过路径中的第一项为我的项目提供服务,例如,http://example.com/projectname应该为/usr/share/nginx/html/projectname中的项目提供服务。
下面是我的配置:
server {
listen 80;
server_name example.com www.example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate "/etc/ssl/XX.pem";
ssl_certificate_key "/etc/ssl/XX.key";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
server_name example.com/$1 www.example.com/$1;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location /projectname {
root /usr/share/nginx/html/projectname ;
index index.html;
try_files $uri $uri/ /index.html?$args;
}
}观察:当我访问配置的域名时,它会路由到nginx defualt页面,而不是显示预期的项目。
发布于 2021-04-27 01:35:30
3个变化:
在第二个服务器数据块中,不要重写,而是在第二个服务器数据块中返回301
/$1的末尾从location /projectname block
返回/$1
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com/$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate "/etc/ssl/XX.pem";
ssl_certificate_key "/etc/ssl/XX.key";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
server_name example.com www.example.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location /projectname {
root /usr/share/nginx/html/projectname ;
try_files $uri $uri/ /index.html?$args;
}
}试试这个,它应该会起作用。
发布于 2021-04-23 14:21:45
主机1:在您的机器中打开 sudo vi /etc/hosts文件
2: 127.0.0.1 example.com www.example.com
3:保存并退出。
https://stackoverflow.com/questions/67224669
复制相似问题