Loading... ## 引言 这里我整理了几种`web`网站`http`配置文件的写法,仅供参考。 > 注意,具体要怎么进行配置,或者怎么设置结果,请移步另一篇博客内容 > > <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://hw13.cn/298.html" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-image bg" style="background-image: url(https://aliyun-yuesha-public-oss.oss-cn-zhangjiakou.aliyuncs.com/usr/uploads/2023/12/365133895.png);background-size: cover;"></div> <div class="inner-content" > <p class="inser-title">使用Nginx在一台Linux服务器上部署多个站点域名</p> <div class="inster-summary text-muted"> 引言恩……这篇文章的起因嘛,主要还是贫穷。唉,哪有后端不想一个项目一台服务器的呢?无奈之举而已实现方法1. 有Ng... </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> ## 常规只允许`http`访问`80`端口 ```nginx # 网站 http 访问 server{ listen 80; server_name 域名; root 项目目录; index index.php index.html index.htm; # 所有请求全部重定向到index.php location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME 项目目录$fastcgi_script_name; include fastcgi_params; } } ``` 注意,上面这里的配置内容需要修改一些东西: 1. 域名 2. 项目目录 如果你的项目比较特殊,也可以修改上面`listen 80`,监听对应的端口号,而不是我这里写的`80`端口。 还有就是这里的`php-fpm`服务端口是转发给到了`9000`端口,如果你的`fpm`是多版本或监听了其他端口,可以在这里修改 ## 同时允许访问`http`和`https` ```nginx # 网站 http 访问 server{ listen 80; server_name 域名; root 项目目录; index index.php index.html index.htm; # 所有请求全部重定向到index.php location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME 项目目录$fastcgi_script_name; include fastcgi_params; } } # 网站 https 访问 server { listen 443 ssl; server_name 域名; root 项目目录; index index.php index.html index.htm; ssl_certificate 证书目录/域名.pem; ssl_certificate_key 证书目录/域名.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; # 所有请求全部重定向到index.php location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME 项目目录$fastcgi_script_name; include fastcgi_params; } } ``` 我这里跟上面一样,也是需要修改一些你对应的配置信息的 1. 域名 2. 项目目录 3. 证书目录 我这儿的证书文件是`证书目录/域名.pem`,你也可以按照你的喜好和放置位置进行设置。 阿里云下载的证书一般是个压缩包,,解压后的名称里带有域名,我就直接按照这种方式进行配置了。 ### `http`访问进来直接自动跳转到`https` ```nginx # 网站 http 访问 server{ listen 80; server_name 域名; rewrite ^(.*)$ https://$host$1 permanent; } ``` 这里会产生一个`302`跳转,直接跳到`https`,但要注意,一定要配置好`https`的解析 欢迎关注拓行公众号,分享各种技术博客文章拓行——奋勇进取,开拓未来,砥砺前行 最后修改:2024 年 04 月 25 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~