“Tiêu đề máy chủ lưu trữ không hợp lệ” khi chạy máy chủ phát triển Angular / cli c9.io


84

Lệnh hiện tại: ng serve --host --public $IP:$PORT

Kết quả trên trang web của tôi:

Tiêu đề máy chủ lưu trữ không hợp lệ


nó giống như ở trên ... cùng một kết quả
Olejs

Câu trả lời:


103

Các --disable-host-checklá cờ hoạt động tốt nếu bạn cần phải chạy từ Cloud9.

Tôi sử dụng lệnh sau:

ng serve --open --host $IP --port $PORT --disable-host-check

Nó sẽ hoạt động nhưng nếu bạn sử dụng, --disable-host-checkbạn sẽ nhận được một cảnh báo trong bảng điều khiển. WARNING: Running a server with --disable-host-check is a security risk. See medium.com/webpack/… để biết thêm thông tin.
Krishnadas PC

1
tùy chọn này không khả dụng nữa
edi


19

Xem vấn đề này

Chỉnh sửa dòng sau trong node_modules/webpack-dev-server/lib/Server.js(dòng 425), đổi thành:

return true;

Tôi đang sử dụng Cloud9 IDE sau đó chạy: ng serve --port 8080 --host 0.0.0.0. Bây giờ hoạt động tốt.


27
Bạn có thể chạy mà không cần chỉnh sửa code của append --disableHostCheck ng đúng phục vụ --host 0.0.0.0 --port 8080 --disableHostCheck đúng
Tarn

3
thay đổi dòng sau trong node_modules / webpack-dev-server / lib / Server.js: if (this.disableHostCheck) return true; thay đổi để trả về true;
rakesh kashyap

Hãy xem vấn đề Angular CLI GitHub này liên quan đến những rủi ro tiềm ẩn của disableHostCheck, chỉ để biết bạn đang làm gì.
jmq

Câu trả lời của Adetiloye hay hơn nhiều
Matthew Dolman

3
Runng serve --host 0.0.0.0 --disable-host-check
Ubaid Azad

15

Điều này phù hợp với tôi:

ngrok http --host-header=rewrite PORT

ví dụ :

ngrok http --host-header=rewrite 4200

Không phải câu trả lời mà OP cần, nhưng dù sao cũng cảm ơn vì đã thêm nó. Hoạt động để đào hầm mà không cần thay đổi cài đặt dự án.
LuizLoyola

13

Trong trường hợp của tôi, tôi sử dụng tên máy chủ của mình để cập nhật tệp / etc / hosts.

vi /etc/hosts

và thêm dòng họ tên máy chủ của bạn.

127.0.0.1 myHostName.com

để kết nối máy chủ của tôi,

ng serve -o

Đã xảy ra lỗi khi kết nối với myHostName.com:4200 .

vì vậy, tôi đã làm như thế này,

ng serve --host 0.0.0.0 --disableHostCheck true

Đang kết nối lại với myHostName.com:4200 :)


1
điều này làm việc cho tôi ng phục vụ --host 0.0.0.0 --disableHostCheck true. cảm ơn bạn @CookAtRice
Vinay Pandya

11

Bạn cần chạy sau:

ng serve --port 8080 --publicHost 123.34.56.78 // your server ip or host name.

Làm việc cho tôi.


ng phục vụ
Nitin.

8

Sử dụng lệnh dưới đây phù hợp với tôi.

ng serve --host 0.0.0.0 --port 8080  --public ipAddress

1
Nó hoạt động. Nhưng tôi có thể tìm hiểu giải thích về tùy chọn '--public' trực tuyến ở đâu? Tôi chỉ phát hiện ra tùy chọn '--public-host'
niaomingjian.

8

Trong angle.json, thêm phần sau vào tùy chọn kiến ​​trúc -> phục vụ ->

"disableHostCheck": true

Có câu trả lời từ Trang sự cố Github này


1
Chỉ muốn chỉ ra rằng điều này giải quyết vấn đề chạy cục bộ trên máy. Tôi không chắc liệu nó có giải quyết được nó cho Cloud9 hay không theo câu hỏi gốc OP ở trên.
Tom Doe

Đây là giải pháp sạch phù hợp nếu bạn muốn bật nó trên mọi ng serve(và có thể bạn muốn phát triển)
jowey

6

Tôi đã gặp phải lỗi tương tự sau khi triển khai ứng dụng góc cạnh của mình trên phiên bản AWS EC2 có hình ảnh bitnami. Sau đó, tôi đã khởi chạy ứng dụng của mình bằng lệnh dưới đây và nó hoạt động tốt.

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true

6

Sử dụng lệnh bên dưới phù hợp với tôi cho Angular CLI: 6.0.7

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck

4

Đã thử nghiệm trên phiên bản Angular và máy chủ Amazon bên dưới.

Angular CLI: 6.0.8
Node: 8.11.3
OS: linux x64
Angular: 5.2.8

ng tùy chọn lệnh đã được thay đổi, bây giờ sử dụng configurationthay vì env. Lệnh phù hợp với tôi là

 ng serve --configuration=dev  --port 4009 --host 0.0.0.0 --publicHost myhost.com

Không bao giờ sử dụng --disable-host-checktrên máy chủ công cộng. Angular sẽ cảnh báo bạn nếu bạn sử dụng nó. Nó có thể hoạt động nhưng nó là một vấn đề bảo mật nghiêm trọng. Bạn sẽ nhận được thông báo này nếu bạn sử dụng cờ đó.

CẢNH BÁO: Chạy máy chủ với --disable-host-check là một rủi ro bảo mật. Xem https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a để biết thêm thông tin.

Hãy dành chút thời gian để đọc bài viết đó rất đáng đọc.


điều này làm việc với tôi, nhưng cần phải bao gồm tên miền phụ chính xác được sử dụng trong trình duyệt cho máy chủ lưu trữ công cộng:ng serve --host 0.0.0.0 --public-host sub.myhost.com
Cel

3

Điều này thực sự đã được giải quyết trong một trong những bình luận video trên youtube nhờ Mateusz Sawa

Tới đây để kiểm tra xem nó ra.

- chỉ định một máy chủ trong package.json không hoạt động nữa -

chỉ cần lưu ý rằng không cần thiết phải sử dụng lệnh đã được sử dụng trong video, các hướng dẫn dưới đây là đủ để làm cho ứng dụng hoạt động bình thường angular-cli phát triển

trước tiên bạn cần tìm các máy chủ trong vv / thư mục

cd ..vào bảng điều khiển cho đến khi bạn đến thư mục gốc của máy linux và luôn kiểm tra bằngls những gì được liệt kê

nếu bạn thấy tệp máy chủ lưu trữ , bạn đang ở đúng vị trí và sau đó sử dụngsudo vi hosts để chỉnh sửa nó

thêm dòng bên dưới tất cả các địa chỉ ip "0.0.0.0 yourworkspace-yourusername.c9users.io " (tất nhiên không có dấu ngoặc kép :-))

cũng trong package.json thay đổi "start": "ng serve -H yourworkspace-yourusername.c9users.io "

sau đó bạn chỉ cần đi tới thư mục ứng dụng và khởi động ứng dụng trong thiết bị đầu cuối với npm start

kiểm tra nó ngay bây giờ và nó đã hoạt động


2

Sử dụng lệnh bên dưới với phiên bản Angular CLI mới nhất phù hợp với tôi.

ng serve --host 0.0.0.0 --public-host <workspace>-<username>.c9users.io

2

Dưới đây cả hai giải pháp sẽ hoạt động. Trong dòng lệnh:

ng serve --public --host yourip --port yourportnumber

ng serve --host 0.0.0.0 --port yourport --disableHostCheck true


1

Tôi gặp lỗi tương tự. Tùy chọn công khai đã giải quyết vấn đề cho tôi như dưới đây:

ng serve --host 0.0.0.0 --port 8080 --live-reload-port 8081 --public $C9_HOSTNAME

1

ng phục vụ --host 0.0.0.0 --port 1234 --public-host mydomain.com

Điều này làm việc cho tôi.



0

Bạn chỉ nên thay đổi 0.0.0.0 thành địa chỉ IP cục bộ của mình như 192.168.1.42 và nó sẽ hoạt động.

ng serve --host 192.168.1.42

0

Vấn đề là bạn chỉ có thể truy cập vào liên kết mà bạn đã chỉ định trong tham số --public. Trong trường hợp của tôi, tôi đã cung cấp địa chỉ IP trong --public và cố gắng truy cập địa chỉ đó bằng miền mà tôi đã đăng ký với IP đó. Nhưng ng ràng buộc nó cho máy chủ duy nhất được cung cấp trong --public.

Để giải quyết vấn đề này, tôi cung cấp một tham số hơn: disable-host-check. Hoàn thành lệnh:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

Để biết thêm, bấm vào đây


0

Tôi đã gặp lỗi này khi cố gắng truy cập ứng dụng của chúng tôi bằng localtunnel tiện ích.

Đề xuất của @tarn (từ một nhận xét về câu trả lời được chấp nhận) về việc thêm --disableHostCheck truevào ng servelệnh đã thực hiện một mẹo nhỏ.


0

Đây là giải pháp nếu ai đó vẫn còn mắc kẹt trong invalid host header vấn đề:

Chạy ng ejectnó sẽ tạo ra webpack.config.js. Chạy npm installnếu nó đang yêu cầu. Thêm bên dưới "disableHostCheck":trueđể devServerwebpack.config.js. Như bên dưới:

"devServer": {
    "historyApiFallback": true,
    "disableHostCheck" : true //<-- add this line
  }

Sau đó, trong tùy chọn package.jsonthay đổi tệp startdưới ngnhư thế này

"start": "webpack-dev-server --host 0.0.0.0 --port YOURPORT --public YOURIP:YOURPORT"

Bây giờ chạy góc với npm startlệnh. Đó là nó.


0

cảm ơn vì tất cả các cách giải quyết, --disable-host-check phù hợp với tôi, nhưng tôi không hiểu tại sao tôi phải sử dụng cách giải quyết đó, tại sao tôi không thể phục vụ như bất kỳ ứng dụng mới nào khác.


-1

Thử cái này đi

ng serve --host <private IP> --port <host port> --public-host <public IP>

-3

Thay đổi dòng 425 trong tệp "node_modules / webpack-dev-server / lib / Server.js" từ false thành true. I E,

Before: trả về false;

Đã cập nhật: return true;


Thêm một số mô tả khác.
Mathews Sunny

bạn không nên chạm vào các nhà cung cấp nút
Pablo W.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.