reactjs - 重新部署 React 应用程序时 Nginx 服务器经常停机?
问题描述
我正在将我的代码部署到 Jenkins 的 nginx 服务器上,我已经遵循这个过程几个月了。我的服务器框上有一个构建脚本,在 Jenkins 中配置的一个作业会在下拉我的最新更改并重新构建时知道它。在我的 nginx 配置中如下所示。因此,您会看到当前在我的根目录中获取构建文件夹。而我的构建脚本只是 cp /var/www/example
、npm run build
和nginx restart
. 就像我知道这个问题一样,但我对正确的步骤感到困惑,因为在这个脚本运行时 nginx 不应该获取我的构建文件夹,这就是500 internal server
我在运行 Jenkins 作业时看到错误的原因。
server_name example.com www.example.com;
#return 301 https://$host$request_uri;
#ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
#ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
#include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
#ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
root /var/www/example/build/;
index index.html;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location / {
try_files $uri $uri/ /index.html;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|eot|ttf|woff|woff2)$ {
expires max;
add_header Cache-Control public;
add_header Access-Control-Allow-Origin *;
access_log off;
try_files $uri $uri/ /index.html;
}
解决方案
推荐阅读
- python - Python3嵌套字典覆盖
- python - 需要帮助以减少所提到功能的复杂性或重复性
- monaco-editor - 使用 esbuild 捆绑时出现意外使用
- php - 如何根据 Laravel 中的其他列在数据库中添加唯一记录
- reactjs - 我没有很好地关闭 --yarn dev- (端口 4444 已经在使用中。)
- jmeter - 如何让 JMeter 为具有令牌的 N 个用户中的每一个运行多个操作
- junit - 如何使用 JUnit、Spring Boot 和 Flyway 进行测试?
- flutter - 如何检查一个元素是否存在于 xml RSS 提要中
- apache - 哪个是正确的 ALPN 行为?
- apache-kafka - Kafka 消费者静态成员资格的 group.instance.id 应该是什么?